Page MenuHomePhabricator

[mxn multi widget] Restructure QmitkSynchronizedNodeSelectionWidget and QmitkAbstractNodeSelectionWidget
Open, NormalPublic

Description

As discussed in https://phabricator.mitk.org/D773#inline-11235 the newly introduced widget for selecting synchronized node selections inside the render windows (QmitkSynchronizedNodeSelectionWidget) should be revised: It is based on QmitkAbstractNodeSelectionWidget because it uses the synchronize-selection mechanism, based on QmitkAbstractNodeSelectionWidget::HandleChangeOfInternalSelection. This function calls different functions that can be overridden by subclasses (such as QmitkSynchronizedNodeSelectionWidget) to customize the selection behavior.

However, QmitkAbstractNodeSelectionWidget also provides many different functions and functionality, which is not necessarily required for many subclasses (because they may be irrelevant or could be handled by a separate class). The additional functionalities are for example:

  • providing info strings for the user (e.g. QmitkAbstractNodeSelectionWidget::GetInvalidInfo,
  • reacting on node / data storage events (e.g. QmitkAbstractNodeSelectionWidget::OnNodeModified or QmitkAbstractNodeSelectionWidget::NodeAddedToStorage)
  • optional selection
  • selecting only visible nodes / external selection

Other classes that are based on QmitkAbstractNodeSelectionWidget and need to be considered for this task are:

  • QmitkSingleNodeSelectionWidget
  • QmitkMultiNodeSelectionWidget