HomePhabricator
Diffusion MITK 77eaee663ab1

Decouple TimeNavigation from SliceNavigationController

Description

Decouple TimeNavigation from SliceNavigationController

Summary:
Add TimeNavigationController

This class is a replacement for the SliceNavigationController inside
the RenderingManager.

Modify the SliceNavigationController to remove time-related data

Introducing the TimeNavigationController allows to remove time-related
functions / and variables / settings from the SliceNavigationController
for a clean separation of concerns.

Modify BaseController to only hold a single stepper

Since the time was decoupled from the SliceNavigationController
the time-stepper is not required anymore.
It is enough for the TimeNavigationController to hold a stepper
from which the current slider position (the time) can be retrieved.

Remove unnecessary / unused functions / variable

These functions and data members are not used and can safely be removed.

Replace the SliceNavigationController inside the RenderingManager

The newly introduced TimeNavigationController is now always
available and accessible through the RenderingManager-singleton.

Replace SliceNavigationController with TimeNavigationController

This is required due to the change of the used class inside
the RenderingManager.

Refactor class to work with the new TimeNavigationController

Only a single, global time point exists, which can be retrieved from
the time navigation controller.
The time point can be stored in a member variable to be accessible
inside each member function.

Remove unnecessary controller / controller-connections

Removing the connection between the time and the slice navigation
controller is required to decouple the time from the slice.

Remove TimeNavigationController parameter / member

A local instance of a time navigation controller is not required,
since the newly introduced TimeNavigationController is always
available and accessible through the RenderingManager-singleton.
Thus the QmitkSegmentationUtilityWidget is not required anymore.

Test Plan:
manual testing

  • open MITK workbench, load image
  • use navigation sliders to test slicing of image slices / time
  • load multiple images, perform "Reinit", "Global Reinit"
  • use "2D", 3D and 4D images

Reviewers: floca, kislinsk, O1 MITK Reviewer Group I, O3 MITK Reviewer Group II, kalali

Reviewed By: floca, O1 MITK Reviewer Group I, O3 MITK Reviewer Group II

Subscribers: s434n, kislinsk, floca, kalali

Maniphest Tasks: T29273

Differential Revision: https://phabricator.mitk.org/D705

Details

Provenance
s434nAuthored on Jul 13 2023, 1:09 PM
s434nPushed on Aug 24 2023, 4:28 PM
Reviewer
O1: MITK Reviewer Group I
Differential Revision
Restricted Differential Revision
Parents
rMITK013da8c575c1: remove unused/outdated QmitkFFmpegWriter import
rMITK03ce52d72b6c: Manually add content of D646.
Branches
Unknown
Tags
Unknown
Tasks
T29273: Decouple TimeNavigation from SliceNavigationController

Merged Changes