diff --git a/Source/Editor/Windows/Search/ContentFinder.cs b/Source/Editor/Windows/Search/ContentFinder.cs index 5b7ec18df..06b5852dd 100644 --- a/Source/Editor/Windows/Search/ContentFinder.cs +++ b/Source/Editor/Windows/Search/ContentFinder.cs @@ -139,8 +139,8 @@ namespace FlaxEditor.Windows.Search { var item = items[i]; SearchItem searchItem; - if (item.Item is AssetItem assetItem) - searchItem = new AssetSearchItem(item.Name, item.Type, assetItem, this, itemsWidth, itemHeight); + if (item.Item is ContentItem contentItem) + searchItem = new ContentSearchItem(item.Name, item.Type, contentItem, this, itemsWidth, itemHeight); else searchItem = new SearchItem(item.Name, item.Type, item.Item, this, itemsWidth, itemHeight); searchItem.Y = i * itemHeight; diff --git a/Source/Editor/Windows/Search/SearchItem.cs b/Source/Editor/Windows/Search/SearchItem.cs index 780b43346..577f75dc0 100644 --- a/Source/Editor/Windows/Search/SearchItem.cs +++ b/Source/Editor/Windows/Search/SearchItem.cs @@ -113,17 +113,17 @@ namespace FlaxEditor.Windows.Search } /// - /// The for assets. Supports using asset thumbnail. + /// The for assets. Supports using content item thumbnail. /// /// /// - internal class AssetSearchItem : SearchItem, IContentItemOwner + internal class ContentSearchItem : SearchItem, IContentItemOwner { - private AssetItem _asset; - private FlaxEditor.GUI.ContextMenu.ContextMenu _cm; + private ContentItem _asset; + private ContextMenu _cm; /// - public AssetSearchItem(string name, string type, AssetItem item, ContentFinder finder, float width, float height) + public ContentSearchItem(string name, string type, ContentItem item, ContentFinder finder, float width, float height) : base(name, type, item, finder, width, height) { _asset = item; @@ -136,31 +136,41 @@ namespace FlaxEditor.Windows.Search /// public override bool OnShowTooltip(out string text, out Float2 location, out Rectangle area) { - if (string.IsNullOrEmpty(TooltipText) && Item is AssetItem assetItem) + if (string.IsNullOrEmpty(TooltipText) && Item is ContentItem contentItem) { - assetItem.UpdateTooltipText(); - TooltipText = assetItem.TooltipText; + contentItem.UpdateTooltipText(); + TooltipText = contentItem.TooltipText; } return base.OnShowTooltip(out text, out location, out area); } + /// + public override bool OnMouseDown(Float2 location, MouseButton button) + { + if (base.OnMouseDown(location, button)) + return true; + if (button == MouseButton.Right && Item is ContentItem) + return true; + return false; + } + /// public override bool OnMouseUp(Float2 location, MouseButton button) { if (base.OnMouseUp(location, button)) return true; - if (button == MouseButton.Right && Item is AssetItem assetItem) + if (button == MouseButton.Right && Item is ContentItem contentItem) { // Show context menu - var proxy = Editor.Instance.ContentDatabase.GetProxy(assetItem); + var proxy = Editor.Instance.ContentDatabase.GetProxy(contentItem); ContextMenuButton b; - var cm = new FlaxEditor.GUI.ContextMenu.ContextMenu { Tag = assetItem }; + var cm = new ContextMenu { Tag = contentItem }; b = cm.AddButton("Open", () => Editor.Instance.ContentFinding.Open(Item)); cm.AddSeparator(); - cm.AddButton(Utilities.Constants.ShowInExplorer, () => FileSystem.ShowFileExplorer(System.IO.Path.GetDirectoryName(assetItem.Path))); - cm.AddButton("Show in Content window", () => Editor.Instance.Windows.ContentWin.Select(assetItem, true)); - b.Enabled = proxy != null && proxy.CanReimport(assetItem); - if (assetItem is BinaryAssetItem binaryAsset) + cm.AddButton(Utilities.Constants.ShowInExplorer, () => FileSystem.ShowFileExplorer(System.IO.Path.GetDirectoryName(contentItem.Path))); + cm.AddButton("Show in Content window", () => Editor.Instance.Windows.ContentWin.Select(contentItem, true)); + b.Enabled = proxy != null && proxy.CanReimport(contentItem); + if (contentItem is BinaryAssetItem binaryAsset) { if (!binaryAsset.GetImportPath(out string importPath)) { @@ -172,14 +182,17 @@ namespace FlaxEditor.Windows.Search } } cm.AddSeparator(); - cm.AddButton("Copy asset ID", () => Clipboard.Text = FlaxEngine.Json.JsonSerializer.GetStringID(assetItem.ID)); - cm.AddButton("Select actors using this asset", () => Editor.Instance.SceneEditing.SelectActorsUsingAsset(assetItem.ID)); - cm.AddButton("Show asset references graph", () => Editor.Instance.Windows.Open(new AssetReferencesGraphWindow(Editor.Instance, assetItem))); - cm.AddSeparator(); - proxy?.OnContentWindowContextMenu(cm, assetItem); - assetItem.OnContextMenu(cm); - cm.AddButton("Copy name to Clipboard", () => Clipboard.Text = assetItem.NamePath); - cm.AddButton("Copy path to Clipboard", () => Clipboard.Text = assetItem.Path); + if (contentItem is AssetItem assetItem) + { + cm.AddButton("Copy asset ID", () => Clipboard.Text = FlaxEngine.Json.JsonSerializer.GetStringID(assetItem.ID)); + cm.AddButton("Select actors using this asset", () => Editor.Instance.SceneEditing.SelectActorsUsingAsset(assetItem.ID)); + cm.AddButton("Show asset references graph", () => Editor.Instance.Windows.Open(new AssetReferencesGraphWindow(Editor.Instance, assetItem))); + cm.AddButton("Copy name to Clipboard", () => Clipboard.Text = assetItem.NamePath); + cm.AddButton("Copy path to Clipboard", () => Clipboard.Text = assetItem.Path); + cm.AddSeparator(); + } + proxy?.OnContentWindowContextMenu(cm, contentItem); + contentItem.OnContextMenu(cm); cm.Show(this, location); _cm = cm; return true;