Skip to content

Planning Session Overview on the timeline; drop Edit Targets button; cap targets table height #642

Description

@peterhollender

Design correction from smoke-testing SlicerOpenLIFU#641. I introduced new patterns instead of using the reference.

What I got wrong

  1. Session Overview is not on the timeline. The reference design has Session Overview as the FIRST page of the workflow timeline, followed by Target Selection. I put only Target Selection on the timeline, leaving Overview as an off-timeline page users had to navigate to via a bespoke button.

  2. "Edit Targets…" button on Session Overview is spurious. I added an Actions group to Planning Session Overview with an "Edit Targets…" button that navigates to Target Selection. That's not the right pattern -- Overview is itself the first workflow step, and the timeline strip is how the user moves to Target Selection. Users navigate the timeline; they don't tap page-specific navigation buttons.

  3. Targets table is uncapped-tall. The outer.addWidget(build_targets_group(), 1) stretch factor plus the table's own stretch inside the group means the table grows to fill all available vertical space. The user has to scroll the page to see the Add Target button. Table should be fixed / capped at ~3-4 rows and scroll internally when there are more targets.

Fix

PAGE_DEFS (host/page_registry.py)

Put Planning Session Overview on the timeline, before Target Selection:

PAGE_DEFS: List[Page] = [
    Page("OpenLIFUHome",                       "Home",                        on_timeline=False),
    Page("OpenLIFUDataManager",                "Data Manager",                on_timeline=False),
    Page("OpenLIFUSonicationSessionOverview",  "Sonication Session Overview", on_timeline=False),
    Page("OpenLIFUPlanningSessionOverview",    "Planning Session Overview",   on_timeline=True),
    Page("OpenLIFUTargetSelection",            "Target Selection",            on_timeline=True),
]

Sonication Session Overview stays off-timeline for now because the Sonication workflow pages (Localization / Sonication Control) don't exist yet. When they land, Session Overview registration for that workflow branches into a mode-switch (still deferred per SlicerOpenLIFU#633). For now, Planning workflow gets the timeline treatment first.

Planning Session Overview

  • Remove the build_actions_group() method and the "Edit Targets…" button entirely.
  • Remove the on_edit_targets_button_clicked() handler.
  • Remove the navigate_to_host_page import (no longer needed here).
  • Overview stays information-only; users advance via the timeline strip's Target Selection circle in the footer or the Next button.

Target Selection

  • Cap the targets table's height so it shows ~3-4 rows and scrolls internally when there are more.
  • Drop the stretch factor on the targets group so it doesn't expand vertically past its natural size.
  • Add a stretch at the bottom of the page's outer QVBoxLayout so the group hugs the top of the available space.

Docs

  • docs/pages/planning-session-overview.md: drop the Actions section from the screen layout, update the Public API table, remove the Edit Targets handler row.
  • docs/pages/target-selection.md: note that navigation into this page is via the timeline strip (or the Next button on Overview) rather than an in-page button.
  • docs/architecture.md: block diagram drops the Edit Targets… edge; the timeline is the sole navigation surface for the workflow.

Non-goals

  • No changes to TimelineWidget, Workflow, or WorkflowControls. The existing infrastructure is fine.
  • No changes to the header / footer layout. hostFooterContainer already sits outside the scrollable pageStack -- the fixed-footer semantics were there all along.
  • No Sonication workflow timeline yet. Follow-up when Sonication Localization + Sonication Control pages land.

Acceptance

  1. Load a PlanningSession from Home. Planning Session Overview opens with the timeline strip in the fixed footer showing two circles: "Planning Session Overview" (current, ring around it) and "Target Selection" (reachable, hollow).
  2. Overview has no Edit Targets… button. Only the info-only groups (Session, Context, Summary).
  3. Click the Target Selection circle in the footer timeline → Target Selection page opens.
  4. Target Selection page fits inside the viewport without scrolling to see Add Target. Targets table shows at most ~3-4 rows; scrolls internally when a session has more.
  5. Add / Import / Edit / Remove buttons are visible without scrolling the page.
  6. Timeline circles reflect visited (filled) vs current (with ring) vs reachable (hollow).

Relates to SlicerOpenLIFU#641, SlicerOpenLIFU#640, SlicerOpenLIFU#631.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions