Skip to content

Conversation

waaake
Copy link
Contributor

@waaake waaake commented Jan 13, 2025

Description

This PR introduces various methods to remove Node edges within the Graph. These methods enhance the usability of the Node Graph by providing users with multiple options to managed node egde connections.

Details of the Change:

The various methods include,

  • Context Menu Change -> Right click on an edge now shows a popup.
  • Fix -> Alt + Click on the Edge was not working after Qt6 Migration and is now fixed.
  • Added functionality to remove all incoming and outgoing connections of nodes which are not present in the current selection
    • This feature can be accessed using various ways, Right click on Node > Disconnect Node(s)
    • Selecting Node(s) and Pressing X on the Keyboard
    • Selecting Node(s) and shaking them.
  • Another way is to Press and Hold Ctrl and Alt on the Keyboard and Left click + Drag on the edges, this generates the EdgeSelectionLine and whatever edges this has intersected with will get removed.

@waaake waaake self-assigned this Jan 13, 2025
Copy link

codecov bot commented Jan 13, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 78.46%. Comparing base (64f806b) to head (a20c1e7).
Report is 16 commits behind head on develop.

✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff            @@
##           develop    #2644   +/-   ##
========================================
  Coverage    78.46%   78.46%           
========================================
  Files           47       47           
  Lines         6542     6542           
========================================
  Hits          5133     5133           
  Misses        1409     1409           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@waaake waaake changed the title [ui] [ui]: Introduction of multiple ways to remove Node Edges Jan 13, 2025
@cbentejac cbentejac added the feature new feature (proposed as PR or issue planned by dev) label Mar 18, 2025
@cbentejac cbentejac added this to the Meshroom 2025.1.0 milestone Mar 18, 2025
waaake added 12 commits June 8, 2025 00:17
With PySide6 the modifiers are now enum.Flag based. Updated type ensures the alt+mouse click removes edges from graphs
This function is responsible to disconnect any edges incoming and outgoing edges from the nodes which do not lie in the current selection
Node shake is detected when the node starts changins positions after being clicked and it is tracked via a timer to consider a shake.

Emits the shaked signal when the node is shaked
…agonal agasint the Edge Path

If an edge or shape were to cut the edge, the intersection of the shake is detected by this function
This method allows removal of edges from the graph by index of the edge
The drawn edge is checked for intersection with individual node edges and any edge found interesecting is emitted when the selection ends
Upon selection end the found intersected edges gets removed
@fabiencastan fabiencastan marked this pull request as ready for review June 7, 2025 22:23
@fabiencastan fabiencastan added UI majorFeature and removed feature new feature (proposed as PR or issue planned by dev) labels Jun 7, 2025
Fix a bug related to the SelectionLine, as the Rect was converted within
a mapItem to use positive width/height.
As a result the wrong diagonal of the Rect was sometimes used for the
intersection test.
@fabiencastan fabiencastan merged commit e36804f into develop Jun 9, 2025
5 checks passed
@fabiencastan fabiencastan deleted the dev/EdgesRemoval branch June 9, 2025 14:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants