Skip to content

NodeEditor: Display GroupAttribute as collapsible sections instead of nested key/value pairs#3069

Draft
Copilot wants to merge 1 commit intodevelopfrom
copilot/refactor-key-value-presentation
Draft

NodeEditor: Display GroupAttribute as collapsible sections instead of nested key/value pairs#3069
Copilot wants to merge 1 commit intodevelopfrom
copilot/refactor-key-value-presentation

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 1, 2026

Grouped attributes in the NodeEditor were rendered as nested key/value structures, repeating hierarchy labels and wasting vertical space. This replaces that with collapsible section headers containing child attributes directly.

Description

GroupAttribute entries are now displayed as collapsible section headers (expand/collapse toggle + bold group name) with their children listed below, indented, instead of a flat key → nested-key/value layout. Groups expand by default; users can collapse to reclaim space.

Features list

  • GroupAttribute rendered as a collapsible section (chevron toggle + bold label with tooltip) instead of nested key/value pairs
  • Left label pane hidden for GroupAttribute rows so the section header spans full row width
  • Child AttributeEditor indented (8 px left margin) and collapsed/expanded in sync with the section toggle
  • labelWidth propagated from parent instead of hardcoded 100
  • showInViewer signal now forwarded from nested AttributeEditor (was missing)
  • Fixed attributeDoubleClicked handler to correctly pass both mouse and attr (previously mouse was silently dropped)

Implementation remarks

groupAttributeComponent in AttributeItemDelegate.qml is replaced with a ColumnLayout containing a static header RowLayout and a dynamically-created AttributeEditor (dynamic creation retained to avoid the existing circular-import between AttributeItemDelegateAttributeEditor). The child editor's visible is bound to groupItem.expanded so the ColumnLayout naturally excludes it from height calculation when collapsed.

The left label Pane gains visible: attribute.type !== "GroupAttribute" so it is excluded from the RowLayout layout, letting the group component fill full width without a redundant label column.

…value pairs

Agent-Logs-Url: https://github.com/alicevision/Meshroom/sessions/0e1e67f7-0a33-454b-8a0b-eb604b999520

Co-authored-by: fabiencastan <153585+fabiencastan@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants