Skip to content

Invert selection and isolate objects (hide unselected)#105

Open
dustenhubbard wants to merge 2 commits into
mainfrom
feat/invert-selection-hide-unselected
Open

Invert selection and isolate objects (hide unselected)#105
dustenhubbard wants to merge 2 commits into
mainfrom
feat/invert-selection-hide-unselected

Conversation

@dustenhubbard

Copy link
Copy Markdown
Member

Adds Invert selection to the field (Ctrl+Shift+I) and the object list, and Hide unselected objects / Show all objects to isolate a working set across the whole series. Isolation uses the existing series-wide hide path, so a single undo restores every section.

Closes #71.

Proofreading a dense section (for example auto-segmentation output) often
means working on one or a few traces while many others crowd the field.
An invert-selection action lets the user pick out a working set quickly by
selecting the few traces to exclude and then flipping the selection.

Invert selection (Ctrl+Shift+I) flips which traces are selected on the
current section. Hidden and group-hidden traces are skipped unless show-all
traces (A) is active, and locked objects are never selected, matching the
existing selection paths. Selected ztrace points and flags are left
untouched. Like the other selection operations it is a view convenience and
is not itself undoable.

The action is wired into the field trace context menu next to Select all and
Deselect, registered in the default shortcuts, and listed in the
keyboard-shortcuts help dialog.

Refs #71
Proofreading a large auto-seg ROI is sluggish because every object stays
live. An object spans many sections, so isolating a working set has to
persist as the user pages through the volume, not just on one section.

Object list:
* Invert selection flips which objects are selected in the list. Object rows
  are freely selectable, so nothing is excluded; with no active filter this
  inverts against every object in the series. It lives in a new "Selection"
  menu and is prepended to the object right-click menu (it is a table
  selection operation, so it belongs with the list rather than in the shared
  field object menu).
* Hide unselected objects hides every other object throughout the whole
  series via the existing series-wide Series.hideObjects path, so the
  isolation persists across sections. It is undoable series-wide (the same
  machinery as the existing object Hide), and Show all objects is the clear
  restore. Objects in the complement are hidden regardless of lock state,
  since locking guards edits and quantification rather than visibility. An
  empty selection is a no-op, so the series is never fully blanked.

Hide unselected objects and Show all objects are field methods, so they are
also reachable from the object right-click menu and act on the object(s)
owning the field's selected traces.

Refs #71
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.

Invert selection, and hide everything not selected

1 participant