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)