Remove ability to delete content and source folders. Limit CM options on those folders only to ones that make sense.

This commit is contained in:
2023-11-21 12:03:01 -06:00
parent 98012eb192
commit 317886e893
3 changed files with 24 additions and 6 deletions
@@ -24,6 +24,11 @@ namespace FlaxEditor.Content
/// </summary>
protected ContentFolder _folder;
/// <summary>
/// Whether this node can be deleted.
/// </summary>
protected virtual bool _canDelete => true;
/// <summary>
/// Gets the content folder item.
/// </summary>
@@ -301,7 +306,7 @@ namespace FlaxEditor.Content
StartRenaming();
return true;
case KeyboardKeys.Delete:
if (Folder.Exists)
if (Folder.Exists && _canDelete)
Editor.Instance.Windows.ContentWin.Delete(Folder);
return true;
}
@@ -12,6 +12,9 @@ namespace FlaxEditor.Content
{
private FileSystemWatcher _watcher;
/// <inheritdoc />
protected override bool _canDelete => false;
/// <summary>
/// Initializes a new instance of the <see cref="MainContentTreeNode"/> class.
/// </summary>
@@ -114,18 +114,28 @@ namespace FlaxEditor.Windows
}
}
cm.AddButton("Delete", () => Delete(item));
if (isFolder && folder.Node is not MainContentTreeNode)
{
cm.AddButton("Delete", () => Delete(item));
cm.AddSeparator();
cm.AddSeparator();
cm.AddButton("Duplicate", _view.Duplicate);
cm.AddButton("Duplicate", _view.Duplicate);
cm.AddButton("Copy", _view.Copy);
cm.AddButton("Copy", _view.Copy);
}
else
{
cm.AddSeparator();
}
b = cm.AddButton("Paste", _view.Paste);
b.Enabled = _view.CanPaste();
cm.AddButton("Rename", () => Rename(item));
if (isFolder && folder.Node is not MainContentTreeNode)
{
cm.AddButton("Rename", () => Rename(item));
}
// Custom options
ContextMenuShow?.Invoke(cm, item);