Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
QmitkOverlayController Class Reference

controller that manages the positioning and stacking of QmitkOverlays More...

#include <QmitkOverlayController.h>

Inheritance diagram for QmitkOverlayController:
Collaboration diagram for QmitkOverlayController:

Public Slots

void AdjustAllOverlayPosition ()
 adjusts the position of all overlays to the position of the RenderWindow More...
 
void AdjustOverlayPosition (QmitkOverlay::DisplayPosition displayPosition)
 
void UpdateAllOverlays ()
 
void UpdateOverlayData (QmitkOverlay *overlay)
 

Public Member Functions

 QmitkOverlayController (QmitkRenderWindow *rw, mitk::PropertyList *pl=nullptr)
 constructor with mandatory QmitkRenderWindow and optional mitk::PropertyList More...
 
 ~QmitkOverlayController () override
 
void AddOverlay (QmitkOverlay *)
 adds an instance of QmitkOverlay to the RenderWindow More...
 
void RemoveOverlay (QmitkOverlay *)
 
void RemoveAllOverlays ()
 
void SetOverlayVisibility (bool visible)
 setting the visibility of all overlays More...
 
mitk::PropertyListGetPropertyList ()
 getter for the RenderWindow-specific PropertyList More...
 
void SetPropertyList (mitk::PropertyList *)
 setter for the RenderWindow-specific PropertyList More...
 

Protected Types

typedef std::map< QmitkOverlay::DisplayPosition, QWidget * > OverlayPositionMap
 
typedef std::vector< QmitkOverlay * > OverlayVector
 

Protected Member Functions

void InitializeOverlayLayout ()
 setting up the widgets that will hold all overlays More...
 
virtual void AlignOverlays ()
 re-aligning the overlays - not implemented yet More...
 
void InitializeWidget (QmitkOverlay::DisplayPosition pos)
 initializes one QWidget - internally used by InitializeOverlayLayout() More...
 
void RestackOverlays (QmitkOverlay::DisplayPosition pos)
 
QSize GetMinimumSizeForWidget (QmitkOverlay::DisplayPosition displayPosition)
 

Protected Attributes

OverlayVector m_AllOverlays
 all QmitkOverlays that are currently added More...
 
OverlayPositionMap m_PositionedOverlays
 all possible positions and the QWidgets representing the corresponding QmitkOverlays More...
 
QmitkRenderWindowm_RenderWindow
 RenderWindow that all Overlays will be added to. More...
 
mitk::PropertyList::Pointer m_PropertyList
 PropertyList for RenderWindow-specific properties. More...
 

Detailed Description

controller that manages the positioning and stacking of QmitkOverlays

This controller manages all QmitkOverlays of one QmitkRenderWindow.

When constructed, it creates one QWidget for each possible display-position and sets the appropriate attributes and layouts.

It is possible to add new Overlays using AddOverlay( QmitkOverlay ). This overlay will be added to the correct Widget according to its destined position (stored in QmitkOverlay). If this widget already holds an overlay, the layer-property is taken into account. If no layer has been set, the overlay will be appended at the end.

It is possible to set the visibility of all overlays at a time using SetOverlayVisibility(bool).

RenderWindow specific properties can be set using the internal mitk::PropertyList. This propertyList and the 'default' propertyList of the RenderingManager will be concatenated before the overlay is set up. If one property exists in both propertyLists, the one in the QmitkOverlayController will be used!

See also
QmitkOverlay
QmitkRenderWindow

Definition at line 53 of file QmitkOverlayController.h.

Member Typedef Documentation

◆ OverlayPositionMap

Definition at line 132 of file QmitkOverlayController.h.

◆ OverlayVector

typedef std::vector<QmitkOverlay *> QmitkOverlayController::OverlayVector
protected

Definition at line 133 of file QmitkOverlayController.h.

Constructor & Destructor Documentation

◆ QmitkOverlayController()

QmitkOverlayController::QmitkOverlayController ( QmitkRenderWindow rw,
mitk::PropertyList pl = nullptr 
)

◆ ~QmitkOverlayController()

QmitkOverlayController::~QmitkOverlayController ( )
override

Definition at line 43 of file QmitkOverlayController.cpp.

Member Function Documentation

◆ AddOverlay()

void QmitkOverlayController::AddOverlay ( QmitkOverlay overlay)

adds an instance of QmitkOverlay to the RenderWindow

This method adds the given QmitkOverlay as a sub-widget to the registered RenderWindow. It will be added to the correct position in the RenderWindow as it's defined by the overlays position-variable. The layer-property will only be considered if necessary.

Definition at line 306 of file QmitkOverlayController.cpp.

References AdjustOverlayPosition(), mitk::RenderingManager::GetInstance(), QmitkOverlay::GetPosition(), GetPropertyList(), QmitkOverlay::GetWidget(), m_AllOverlays, m_PositionedOverlays, m_PropertyList, m_RenderWindow, MITK_ERROR, RestackOverlays(), and UpdateOverlayData().

◆ AdjustAllOverlayPosition

void QmitkOverlayController::AdjustAllOverlayPosition ( )
slot

adjusts the position of all overlays to the position of the RenderWindow

This method updates the position of all Widgets according to the position of the RenderWindow and the extend of the overlays.

Definition at line 169 of file QmitkOverlayController.cpp.

References AdjustOverlayPosition(), QmitkOverlay::bottom_Center, QmitkOverlay::bottom_Left, QmitkOverlay::bottom_Right, QmitkOverlay::middle_Left, QmitkOverlay::middle_Right, QmitkOverlay::top_Center, QmitkOverlay::top_Left, and QmitkOverlay::top_Right.

Referenced by QmitkOverlayController().

◆ AdjustOverlayPosition

◆ AlignOverlays()

void QmitkOverlayController::AlignOverlays ( )
protectedvirtual

re-aligning the overlays - not implemented yet

Definition at line 392 of file QmitkOverlayController.cpp.

◆ GetMinimumSizeForWidget()

QSize QmitkOverlayController::GetMinimumSizeForWidget ( QmitkOverlay::DisplayPosition  displayPosition)
protected

◆ GetPropertyList()

mitk::PropertyList* QmitkOverlayController::GetPropertyList ( )

getter for the RenderWindow-specific PropertyList

Referenced by AddOverlay().

◆ InitializeOverlayLayout()

void QmitkOverlayController::InitializeOverlayLayout ( )
protected

setting up the widgets that will hold all overlays

This method sets up the 8 QWidgets that will later hold all QmitkOverlays. This includes the correct setting of layouts, alignments and the widget attributes necessary to achieve a translucent background and correct rendering on all platforms.

Definition at line 47 of file QmitkOverlayController.cpp.

References QmitkOverlay::bottom_Center, QmitkOverlay::bottom_Left, QmitkOverlay::bottom_Right, InitializeWidget(), QmitkOverlay::middle_Left, QmitkOverlay::middle_Right, QmitkOverlay::top_Center, QmitkOverlay::top_Left, and QmitkOverlay::top_Right.

Referenced by QmitkOverlayController().

◆ InitializeWidget()

◆ RemoveAllOverlays()

void QmitkOverlayController::RemoveAllOverlays ( )

Definition at line 349 of file QmitkOverlayController.cpp.

References QmitkOverlay::GetWidget(), and m_AllOverlays.

◆ RemoveOverlay()

void QmitkOverlayController::RemoveOverlay ( QmitkOverlay overlay)

◆ RestackOverlays()

◆ SetOverlayVisibility()

void QmitkOverlayController::SetOverlayVisibility ( bool  visible)

setting the visibility of all overlays

Definition at line 277 of file QmitkOverlayController.cpp.

References m_AllOverlays, and m_PositionedOverlays.

Referenced by QmitkOverlayController().

◆ SetPropertyList()

void QmitkOverlayController::SetPropertyList ( mitk::PropertyList )

setter for the RenderWindow-specific PropertyList

◆ UpdateAllOverlays

void QmitkOverlayController::UpdateAllOverlays ( )
slot

Definition at line 469 of file QmitkOverlayController.cpp.

References m_AllOverlays, and UpdateOverlayData().

◆ UpdateOverlayData

void QmitkOverlayController::UpdateOverlayData ( QmitkOverlay overlay)
slot

Member Data Documentation

◆ m_AllOverlays

OverlayVector QmitkOverlayController::m_AllOverlays
protected

all QmitkOverlays that are currently added

Definition at line 138 of file QmitkOverlayController.h.

Referenced by AddOverlay(), GetMinimumSizeForWidget(), RemoveAllOverlays(), RemoveOverlay(), RestackOverlays(), SetOverlayVisibility(), and UpdateAllOverlays().

◆ m_PositionedOverlays

OverlayPositionMap QmitkOverlayController::m_PositionedOverlays
protected

all possible positions and the QWidgets representing the corresponding QmitkOverlays

Definition at line 143 of file QmitkOverlayController.h.

Referenced by AddOverlay(), AdjustOverlayPosition(), InitializeWidget(), RemoveOverlay(), RestackOverlays(), and SetOverlayVisibility().

◆ m_PropertyList

mitk::PropertyList::Pointer QmitkOverlayController::m_PropertyList
protected

PropertyList for RenderWindow-specific properties.

Definition at line 153 of file QmitkOverlayController.h.

Referenced by AddOverlay(), QmitkOverlayController(), and UpdateOverlayData().

◆ m_RenderWindow

QmitkRenderWindow* QmitkOverlayController::m_RenderWindow
protected

RenderWindow that all Overlays will be added to.

Definition at line 148 of file QmitkOverlayController.h.

Referenced by AddOverlay(), AdjustOverlayPosition(), InitializeWidget(), and QmitkOverlayController().


The documentation for this class was generated from the following files: