Skip to content

refactor(gui): move the Hesiod node proxy out of the model (step 3) - #772

Merged
otto-link merged 4 commits into
ottolink-dev:devfrom
barrulus:refactor/hesiod-node-proxy
Sep 19, 2026
Merged

otto-link merged 4 commits into
ottolink-dev:devfrom
barrulus:refactor/hesiod-node-proxy

Conversation

@barrulus

Copy link
Copy Markdown
Collaborator

BaseNode currently supplies GNodeGUI’s proxy interface, pulling Qt into model headers and exposing GUI port directions to model code. This moves that interface into HesiodNodeProxy in the GUI layer while preserving node/port IDs, captions, comments, tooltips and data access.

Step 3 of #751; depends on #771. This branch includes step 2 until that PR merges. Review the step 3 change separately in commit 3a649cbb.

  • Give the widget ownership of the proxy through QObject parenting, with a weak reference to the graph-owned model and safe empty values after model expiry.
  • Use GNode’s existing accessors and port directions in model code, port selection, previews and CLI checks. Reuse GNodeGUI’s default port-ID handling; remove the old model proxy wrappers.
  • Exercise the actual adapter in the editor integration suite and compile BaseNode, GraphNode and PortCatalog headers without Qt or GNodeGUI include paths.

This removes the GUI dependency from these model headers. Existing model implementations still use Qt and application services; remaining settings/update paths are a follow-up step.

Validation on upstream dev (f62c18c5): application build and model-header compilation passed; all 29 Qt checks passed.

cmake --build build --target hesiod test_graph_editor -j 12
ctest --test-dir build -R '^graph_editor$' --output-on-failure

@barrulus
barrulus requested a review from otto-link September 18, 2026 20:11
@otto-link
otto-link merged commit dafe668 into ottolink-dev:dev Sep 19, 2026
1 check passed
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