Add Find references utility for graph parameters and methods

This commit is contained in:
Wojtek Figat
2022-05-09 18:10:47 +02:00
parent 8b1e0df222
commit 782c3a0e3e
16 changed files with 364 additions and 118 deletions

View File

@@ -13,6 +13,7 @@ using FlaxEditor.Viewport.Cameras;
using FlaxEditor.Viewport.Previews;
using FlaxEngine;
using FlaxEngine.GUI;
using FlaxEngine.Windows.Search;
using Object = FlaxEngine.Object;
// ReSharper disable UnusedMember.Local
@@ -27,7 +28,7 @@ namespace FlaxEditor.Windows.Assets
/// <seealso cref="AnimationGraph" />
/// <seealso cref="AnimGraphSurface" />
/// <seealso cref="AnimatedModelPreview" />
public sealed class AnimationGraphWindow : VisjectSurfaceWindow<AnimationGraph, AnimGraphSurface, AnimatedModelPreview>
public sealed class AnimationGraphWindow : VisjectSurfaceWindow<AnimationGraph, AnimGraphSurface, AnimatedModelPreview>, ISearchWindow
{
internal static Guid BaseModelId = new Guid(1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
@@ -426,5 +427,8 @@ namespace FlaxEditor.Windows.Assets
base.OnDestroy();
}
/// <inheritdoc />
public SearchAssetTypes AssetType => SearchAssetTypes.AnimGraph;
}
}

View File

@@ -8,6 +8,7 @@ using FlaxEditor.Scripting;
using FlaxEditor.Surface;
using FlaxEditor.Viewport.Previews;
using FlaxEngine;
using FlaxEngine.Windows.Search;
// ReSharper disable UnusedMember.Local
// ReSharper disable UnusedMember.Global
@@ -21,7 +22,7 @@ namespace FlaxEditor.Windows.Assets
/// <seealso cref="Material" />
/// <seealso cref="MaterialSurface" />
/// <seealso cref="MaterialPreview" />
public sealed class MaterialWindow : VisjectSurfaceWindow<Material, MaterialSurface, MaterialPreview>
public sealed class MaterialWindow : VisjectSurfaceWindow<Material, MaterialSurface, MaterialPreview>, ISearchWindow
{
private readonly ScriptType[] _newParameterTypes =
{
@@ -385,5 +386,8 @@ namespace FlaxEditor.Windows.Assets
return base.SaveToOriginal();
}
/// <inheritdoc />
public SearchAssetTypes AssetType => SearchAssetTypes.Material;
}
}

View File

@@ -8,6 +8,7 @@ using FlaxEditor.Scripting;
using FlaxEditor.Surface;
using FlaxEditor.Viewport.Previews;
using FlaxEngine;
using FlaxEngine.Windows.Search;
// ReSharper disable UnusedMember.Local
// ReSharper disable UnusedMember.Global
@@ -21,7 +22,7 @@ namespace FlaxEditor.Windows.Assets
/// <seealso cref="ParticleEmitter" />
/// <seealso cref="ParticleEmitterSurface" />
/// <seealso cref="ParticleEmitterPreview" />
public sealed class ParticleEmitterWindow : VisjectSurfaceWindow<ParticleEmitter, ParticleEmitterSurface, ParticleEmitterPreview>
public sealed class ParticleEmitterWindow : VisjectSurfaceWindow<ParticleEmitter, ParticleEmitterSurface, ParticleEmitterPreview>, ISearchWindow
{
private readonly ScriptType[] _newParameterTypes =
{
@@ -271,5 +272,8 @@ namespace FlaxEditor.Windows.Assets
return base.SaveToOriginal();
}
/// <inheritdoc />
public SearchAssetTypes AssetType => SearchAssetTypes.ParticleEmitter;
}
}

View File

@@ -170,6 +170,9 @@ namespace FlaxEditor.Windows.Assets
base.OnAssetLinked();
}
/// <inheritdoc />
public Asset SurfaceAsset => Asset;
/// <inheritdoc />
public abstract string SurfaceName { get; }

View File

@@ -16,6 +16,7 @@ using FlaxEditor.Surface;
using FlaxEngine;
using FlaxEngine.GUI;
using FlaxEngine.Json;
using FlaxEngine.Windows.Search;
#pragma warning disable 649
@@ -30,7 +31,7 @@ namespace FlaxEditor.Windows.Assets
/// </summary>
/// <seealso cref="VisualScript" />
/// <seealso cref="VisualScriptSurface" />
public sealed class VisualScriptWindow : AssetEditorWindowBase<VisualScript>, IVisjectSurfaceWindow
public sealed class VisualScriptWindow : AssetEditorWindowBase<VisualScript>, IVisjectSurfaceWindow, ISearchWindow
{
private struct BreakpointData
{
@@ -238,6 +239,9 @@ namespace FlaxEditor.Windows.Assets
b.Enabled = window._canEdit;
b.TooltipText = "Changes parameter type to a dictionary.";
}
menu.AddSeparator();
menu.AddButton("Find references...", () => OnFindReferences(index));
}
private void OnChangeType(Action<ItemsListContextMenu.Item> itemClicked)
@@ -257,6 +261,13 @@ namespace FlaxEditor.Windows.Assets
cm.SortChildren();
cm.Show(window, window.PointFromScreen(Input.MouseScreenPosition));
}
private void OnFindReferences(int index)
{
var window = (VisualScriptWindow)Values[0];
var param = window.Surface.Parameters[index];
Editor.Instance.ContentFinding.ShowSearch(window, '\"' + window.Asset.ScriptTypeName + '.' + param.Name + '\"');
}
}
private sealed class PropertiesProxy
@@ -1097,6 +1108,9 @@ namespace FlaxEditor.Windows.Assets
Surface.FocusNode(node);
}
/// <inheritdoc />
public Asset SurfaceAsset => Asset;
/// <inheritdoc />
public string SurfaceName => "Visual Script";
@@ -1431,5 +1445,8 @@ namespace FlaxEditor.Windows.Assets
/// <inheritdoc />
public VisjectSurface VisjectSurface => _surface;
/// <inheritdoc />
public SearchAssetTypes AssetType => SearchAssetTypes.VisualScript;
}
}