1886 feature request mouse selection and dragging of multiple processes#2052
Open
edumeneses wants to merge 9 commits into
Open
1886 feature request mouse selection and dragging of multiple processes#2052edumeneses wants to merge 9 commits into
edumeneses wants to merge 9 commits into
Conversation
Increased hitboxes and interaction areas for various UI components to improve selection and drag-and-drop usability: - Cables: Increased stroke width from 7 to 14. - Intervals: Added a 5-pixel margin and increased drop threshold to 12. - Conditions: Increased stroke width from 1 to 10. - Events: Widened bounding box from 6 to 12. - States: Enlarged visual radii (full: 6->8, point: 3.5->5). - Ports: Expanded interaction area to 20x20. - Slot Headers: Widened drag area and increased drop threshold between slots.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
NodeItem: respect Ctrl modifier on click — adds/removes from the
current selection instead of always replacing it. Uses filterSelections
to follow the standard GUI cumulation pattern.
NodalIntervalView: replace left-drag-to-pan with rubber-band selection.
Left button drag on empty space draws a dashed XOR selection rectangle
and selects all node items whose scene bounding rect intersects it on
release. With Ctrl held the new selection is merged into the existing
one rather than replacing it. Clicking empty space without dragging
deselects everything. Middle-button drag now pans the container,
preserving the previous pan behaviour under that button.
Nodal::View / Nodal::Presenter: same rubber-band logic for the
Nodal-process layer view. The View emits areaSelectRequested(rect,
cumulation) on mouse release; the Presenter collects every NodeItem
whose scene rect intersects the view-local rubber-band rect and pushes
the resulting Selection to the SelectionStack.
After a box or Ctrl+click multi-selection, the existing
copySelectedProcesses / pasteInCurrentInterval paths already serialise
the selected Process::ProcessModel objects as {Processes, Cables} JSON,
so Ctrl+C / Ctrl+V work without further changes.
Fixes #1886
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…lection Use a QGraphicsRectItem overlay (Z=1000) instead of painting in the item's own paint() — which was either skipped due to ItemHasNoContents or rendered beneath child nodes. Box selection now requires Ctrl+drag; plain left-drag restores pan behaviour in NodalIntervalView. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…2.darker) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Bring avendish, libossia, llfio and outcome up to the versions currently on master. The previous "revert" commit had pinned them to older hashes, causing ossia::attribute_semantic and other symbols introduced after that point to be missing — breaking every platform that compiles score-plugin-gfx. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Using SCORE_PLUGIN_DEVICEEXPLORER_EXPORT on a symbol defined in score_plugin_nodal caused an undefined symbol linker error on platforms that build with dynamic plugins (macOS, Flatpak). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…s into a scenario When pasting processes copied from a nodal view into a clean scenario, the old code called loadProcessInSlot() (which assigns new IDs via getStrongId) but then fed cable paths that still referenced the original process IDs — causing an assertion crash in restoreCables(). Fix: track the old→new process ID mapping built during loadProcessInSlot calls, then remap cable endpoint paths before passing them to loadCables(). This keeps loadProcessInSlot (so processes appear as visible timeline slots) while fixing the ID mismatch that caused the crash. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.
Done with Claude
Closes #1886