From 4abe8587f30a4d8a7e39b02d2aa2966bb7bf0194 Mon Sep 17 00:00:00 2001 From: Nils Hausfeld Date: Sun, 16 Jun 2024 13:37:03 +0200 Subject: [PATCH] - Fixed some tooltip regressions - Defined signatures where necessary --- Source/Editor/Surface/ContextMenu/VisjectCMItem.cs | 12 +++++++++++- Source/Editor/Surface/SurfaceNode.cs | 12 +++++++++++- Source/Editor/Surface/SurfaceUtils.cs | 10 ++++------ .../Surface/VisjectSurfaceContext.Serialization.cs | 1 + Source/Editor/Surface/VisualScriptSurface.cs | 6 +++++- 5 files changed, 32 insertions(+), 9 deletions(-) diff --git a/Source/Editor/Surface/ContextMenu/VisjectCMItem.cs b/Source/Editor/Surface/ContextMenu/VisjectCMItem.cs index c0fba5586..370025360 100644 --- a/Source/Editor/Surface/ContextMenu/VisjectCMItem.cs +++ b/Source/Editor/Surface/ContextMenu/VisjectCMItem.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Text; using FlaxEditor.Scripting; using FlaxEditor.Surface.Elements; using FlaxEditor.Utilities; @@ -62,7 +63,7 @@ namespace FlaxEditor.Surface.ContextMenu Group = group; _groupArchetype = groupArchetype; _archetype = archetype; - TooltipText = $"{_archetype.Signature}\n{_archetype.Description}"; + TooltipText = GetTooltip(); } /// @@ -323,6 +324,15 @@ namespace FlaxEditor.Surface.ContextMenu Group.ContextMenu.SetDescriptionPanelArchetype(_archetype); } + private string GetTooltip() + { + StringBuilder sb = new StringBuilder(); + if (!string.IsNullOrEmpty(_archetype.Signature)) + sb.Append(_archetype.Signature + "\n"); + sb.Append(_archetype.Description); + return sb.ToString(); + } + /// public override bool OnMouseDown(Float2 location, MouseButton button) { diff --git a/Source/Editor/Surface/SurfaceNode.cs b/Source/Editor/Surface/SurfaceNode.cs index 07dc4f5e9..1dbb8424b 100644 --- a/Source/Editor/Surface/SurfaceNode.cs +++ b/Source/Editor/Surface/SurfaceNode.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; +using System.Text; using FlaxEditor.Scripting; using FlaxEditor.Surface.Elements; using FlaxEditor.Surface.Undo; @@ -124,7 +125,7 @@ namespace FlaxEditor.Surface Archetype = nodeArch; GroupArchetype = groupArch; AutoFocus = false; - TooltipText = TooltipText = $"{nodeArch.Signature}\n{nodeArch.Description}"; + TooltipText = GetTooltip(); CullChildren = false; BackgroundColor = Style.Current.BackgroundNormal; @@ -851,6 +852,15 @@ namespace FlaxEditor.Surface } } + private string GetTooltip() + { + StringBuilder sb = new StringBuilder(); + if (!string.IsNullOrEmpty(Archetype.Signature)) + sb.Append(Archetype.Signature + "\n"); + sb.Append(Archetype.Description); + return sb.ToString(); + } + /// protected override bool ShowTooltip => base.ShowTooltip && _headerRect.Contains(ref _mousePosition) && !Surface.IsLeftMouseButtonDown && !Surface.IsRightMouseButtonDown && !Surface.IsPrimaryMenuOpened; diff --git a/Source/Editor/Surface/SurfaceUtils.cs b/Source/Editor/Surface/SurfaceUtils.cs index 8e14787b6..6bc834b0a 100644 --- a/Source/Editor/Surface/SurfaceUtils.cs +++ b/Source/Editor/Surface/SurfaceUtils.cs @@ -447,8 +447,7 @@ namespace FlaxEditor.Surface var valueType = member.ValueType; // Getter/setter method of the property - we can return early here - bool isGetterOrSetter = name.StartsWith("get_") || name.StartsWith("set_"); - if (member.IsMethod && isGetterOrSetter) + if (member.IsMethod && (name.StartsWith("get_") || name.StartsWith("set_"))) { var flags = member.IsStatic ? BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly : BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly; var property = declaringType.GetMembers(name.Substring(4), MemberTypes.Property, flags); @@ -470,7 +469,7 @@ namespace FlaxEditor.Surface sb.Append(name); // Is a method and not a property - if (member.IsMethod && !isGetterOrSetter) + if (member.IsMethod) { sb.Append('('); var parameters = member.GetParameters(); @@ -504,8 +503,7 @@ namespace FlaxEditor.Surface var declaringType = member.DeclaringType; // Getter/setter method of the property - we can return early here - bool isGetterOrSetter = name.StartsWith("get_") || name.StartsWith("set_"); - if (member.IsMethod && isGetterOrSetter) + if (member.IsMethod && (name.StartsWith("get_") || name.StartsWith("set_"))) { var flags = member.IsStatic ? BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly : BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly; var property = declaringType.GetMembers(name.Substring(4), MemberTypes.Property, flags); @@ -524,7 +522,7 @@ namespace FlaxEditor.Surface var sb = new StringBuilder(signature); // Tooltip - var tooltip = Editor.Instance.CodeDocs.GetTooltip(member); + var tooltip = GetVisualScriptMemberShortDescription(member); if (!string.IsNullOrEmpty(tooltip)) sb.Append("\n").Append(tooltip); diff --git a/Source/Editor/Surface/VisjectSurfaceContext.Serialization.cs b/Source/Editor/Surface/VisjectSurfaceContext.Serialization.cs index 09147efac..97122f872 100644 --- a/Source/Editor/Surface/VisjectSurfaceContext.Serialization.cs +++ b/Source/Editor/Surface/VisjectSurfaceContext.Serialization.cs @@ -51,6 +51,7 @@ namespace FlaxEditor.Surface { TypeID = originalNodeId, Title = "Missing Node :(", + Signature = ":(", Description = ":(", Flags = NodeFlags.AllGraphs, Size = new Float2(200, 70), diff --git a/Source/Editor/Surface/VisualScriptSurface.cs b/Source/Editor/Surface/VisualScriptSurface.cs index f7fafeef8..e17453b0a 100644 --- a/Source/Editor/Surface/VisualScriptSurface.cs +++ b/Source/Editor/Surface/VisualScriptSurface.cs @@ -238,7 +238,8 @@ namespace FlaxEditor.Surface var node = (NodeArchetype)Archetypes.Function.Nodes[2].Clone(); node.Flags &= ~NodeFlags.NoSpawnViaGUI; - node.Description = Editor.Instance.CodeDocs.GetTooltip(member); + node.Signature = SurfaceUtils.GetVisualScriptMemberInfoSignature(member); + node.Description = SurfaceUtils.GetVisualScriptMemberShortDescription(member); node.DefaultValues[0] = name; node.DefaultValues[1] = parameters.Length; node.Title = "Override " + name; @@ -280,6 +281,7 @@ namespace FlaxEditor.Surface node.DefaultValues[0] = Activator.CreateInstance(scriptType.Type); node.Flags &= ~NodeFlags.NoSpawnViaGUI; node.Title = scriptTypeName; + node.Signature = scriptTypeName; node.Description = Editor.Instance.CodeDocs.GetTooltip(scriptType); // Create group archetype @@ -330,6 +332,7 @@ namespace FlaxEditor.Surface node.DefaultValues[0] = scriptTypeTypeName; node.Flags &= ~NodeFlags.NoSpawnViaGUI; node.Title = "Pack " + scriptTypeName; + node.Signature = "Pack " + scriptTypeName; node.Description = tooltip; ((IList)group.Archetypes).Add(node); @@ -338,6 +341,7 @@ namespace FlaxEditor.Surface node.DefaultValues[0] = scriptTypeTypeName; node.Flags &= ~NodeFlags.NoSpawnViaGUI; node.Title = "Unpack " + scriptTypeName; + node.Signature = "Unpack " + scriptTypeName; node.Description = tooltip; ((IList)group.Archetypes).Add(node); }