Draw the inspector's properties as a property grid - #41
Merged
Conversation
Every property of the selected node is now a row of ktsu.ImGui.Widgets' PropertyGrid rather than an individually labelled control: the names line up in a column of their own, the editors fill the width left over rather than whatever the widest label made room for, and the divider between the two is the user's to drag. Which rows a node has is still AstFields' answer, so the panel offers what it always did. What changed beside the layout is that a whole number and a fraction get the grid's number rows rather than a text box, so the editor steps with the arrow keys and refuses what is not a number before AstFields.TryWrite has to; the value still travels as text between the two, which is what keeps one undoable command able to record any field. Two rows the widget has no method for - a choice between arbitrary labelled values, and a count with the buttons that change it - are composed into the grid's own table, so they sit in the same two columns as the rest. Both are named for the probes the way the grid names its own rows, which is what lets the new panel tests pick an operator by the label it reads as. ktsu.ImGui.Widgets goes to 3.31.0, where the property grid arrived, and ktsu.ImGui.Probes comes with it. The rest of the suite stays at 3.28.0: the releases in between also retuned the force-directed layout enough to move a graph past what Editor_KeepsTheLayoutInsideTheView allows, which is a change to take on its own. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UNhZ9nTJqzyTmCySe2ZE5z
MSTEST0037 through Sonar: Assert.HasCount says what is being counted, where Assert.AreEqual against a Count reports only two numbers when it fails. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UNhZ9nTJqzyTmCySe2ZE5z
main has since taken the suite to 3.30.0 and reshaped Editor_KeepsTheLayoutInsideTheView around the tuned layout it brings, which is the change this branch had held the suite back from. With that on the base there is nothing left to hold back: every package moves to 3.31.0 together, the release the property grid arrived in. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UNhZ9nTJqzyTmCySe2ZE5z
matt-edmondson
force-pushed
the
claude/blissful-wozniak-mnyiso
branch
from
September 9, 2026 07:55
693cb15 to
30c9f81
Compare
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



The node inspector's properties are now rows of
ktsu.ImGui.Widgets' newPropertyGridinstead of individually labelled controls. Names line up in a column of their own, every editor fills the width left over rather than whatever the widest label made room for, and the divider between the two columns is the user's to drag.What changed
AstGraphEditor.DrawInspectoropens oneImGuiWidgets.PropertyGridand draws each property as a row of it. Which rows a node has is stillAstFields' answer, so the panel offers exactly what it did before — only the layout belongs to the widget now.AstFields.TryWritehas to. The value still travels as text between the two, which is what keeps one undoable command able to record any field. Text is still committed when the box is left or enter is pressed, so a rename is one undo step rather than one per character.Enumrow spells an option by its enumeration name, where an operator here reads as its symbol beside its name and an unspecified visibility reads as "(language default)"; and the widget has no row that ends in buttons at all.ktsu.ImGui.Probesthe way the grid names its own rows, so a headless test finds them beside the rest.3.14rather than3.140000.Dependencies
The whole ktsu ImGui suite goes to 3.31.0, the release the property grid arrived in, and
ktsu.ImGui.Probesjoins the list. An earlier revision of this branch held everything but the widgets back at 3.28.0, because 3.29–3.30's retuned layout pushed a node past whatEditor_KeepsTheLayoutInsideTheViewallowed; #40 has since taken the suite to 3.30.0 on main and reshaped that test around the new layout, so this branch merges main and moves every package together.Testing
dotnet buildclean, and the full suite passes on the merged tree: 378 tests, including five new ones inAstGraphEditorInspectorPanelTeststhat drive the panel through the headless rasterizer — a row per property, a typed rename committed on leaving the box as one undo step, a flag committed as it is clicked, an operator picked from the combo by its readable label, and a slot grown and shrunk by its buttons.🤖 Generated with Claude Code
https://claude.ai/code/session_01UNhZ9nTJqzyTmCySe2ZE5z