diff --git a/Source/Editor/Content/Tree/TreeViewPanel.cs b/Source/Editor/Content/Tree/TreeViewPanel.cs index 854bafc7f..44bbfa878 100644 --- a/Source/Editor/Content/Tree/TreeViewPanel.cs +++ b/Source/Editor/Content/Tree/TreeViewPanel.cs @@ -38,7 +38,10 @@ public class TreeViewPanel : Panel }); } - private void Rename() + /// + /// Renames the selected item. + /// + public void Rename() { if (ContentTree == null || !Visible) return; @@ -54,7 +57,10 @@ public class TreeViewPanel : Panel } } - private void Delete() + /// + /// Deletes the selected items. + /// + public void Delete() { if (ContentTree == null || !Visible) return; @@ -75,7 +81,10 @@ public class TreeViewPanel : Panel } } - private void Duplicate() + /// + /// Duplicates the selected items. + /// + public void Duplicate() { if (ContentTree == null || !Visible) return; @@ -96,7 +105,10 @@ public class TreeViewPanel : Panel } } - private void Copy() + /// + /// Copies the items. + /// + public void Copy() { if (ContentTree == null || !Visible) return; @@ -113,7 +125,10 @@ public class TreeViewPanel : Panel UpdateContentItemCut(false); } - private void Paste() + /// + /// Pastes the items. + /// + public void Paste() { if (ContentTree == null || !Visible) return; @@ -126,7 +141,10 @@ public class TreeViewPanel : Panel UpdateContentItemCut(false); } - private void Cut() + /// + /// Cuts the items. + /// + public void Cut() { if (ContentTree == null || !Visible) return; diff --git a/Source/Editor/Windows/ContentWindow.ContextMenu.cs b/Source/Editor/Windows/ContentWindow.ContextMenu.cs index ad5a8caf2..f4985eb7a 100644 --- a/Source/Editor/Windows/ContentWindow.ContextMenu.cs +++ b/Source/Editor/Windows/ContentWindow.ContextMenu.cs @@ -67,12 +67,28 @@ namespace FlaxEditor.Windows b = cm.AddButton("Open", () => Open(item)); b.Enabled = proxy != null || isFolder; - if (_view.SelectedCount > 1) - b = cm.AddButton("Open (all selected)", () => + if (_showAllContentInTree) + { + var selection = _tree.Selection; + if (selection.Count > 0) { - foreach (var e in _view.Selection) - Open(e); - }); + b = cm.AddButton("Open (all selected)", () => + { + foreach (var e in _tree.Selection) + if (e is ContentItemTreeNode contentNode) + Open(contentNode.Item); + }); + } + } + else + { + if (_view.SelectedCount > 1) + b = cm.AddButton("Open (all selected)", () => + { + foreach (var e in _view.Selection) + Open(e); + }); + } cm.AddButton(Utilities.Constants.ShowInExplorer, () => FileSystem.ShowFileExplorer(System.IO.Path.GetDirectoryName(item.Path))); @@ -137,12 +153,21 @@ namespace FlaxEditor.Windows { cm.AddButton("Delete", () => Delete(item)); cm.AddSeparator(); - cm.AddButton("Duplicate", _view.Duplicate); - cm.AddButton("Cut", _view.Cut); - cm.AddButton("Copy", _view.Copy); + if (_showAllContentInTree) + { + cm.AddButton("Duplicate", _treeOnlyPanel.Duplicate); + cm.AddButton("Cut", _treeOnlyPanel.Cut); + cm.AddButton("Copy", _treeOnlyPanel.Copy); + } + else + { + cm.AddButton("Duplicate", _view.Duplicate); + cm.AddButton("Cut", _view.Cut); + cm.AddButton("Copy", _view.Copy); + } } - b = cm.AddButton("Paste", _view.Paste); + b = _showAllContentInTree ? cm.AddButton("Paste", _treeOnlyPanel.Paste) : cm.AddButton("Paste", _view.Paste); b.Enabled = _view.CanPaste(); if (isFolder && folder.Node is MainContentFolderTreeNode)