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

Provides a widget with a slider to change the level and window value of the current image. More...

#include <QmitkSliderLevelWindowWidget.h>

Inheritance diagram for QmitkSliderLevelWindowWidget:
Collaboration diagram for QmitkSliderLevelWindowWidget:

Public Member Functions

 QmitkSliderLevelWindowWidget (QWidget *parent=nullptr, Qt::WindowFlags f=nullptr)
 constructor More...
 
 ~QmitkSliderLevelWindowWidget () override
 destructor More...
 
void SetLevelWindowManager (mitk::LevelWindowManager *levelWindowManager)
 sets the manager who is responsible to collect and deliver changes on Level/Window More...
 
void SetDataStorage (mitk::DataStorage *ds)
 sets the DataStorage which holds all image-nodes More...
 
mitk::LevelWindowManagerGetManager ()
 returns the manager who is responsible to collect and deliver changes on Level/Window More...
 

Public Attributes

mitk::LevelWindow m_LevelWindow
 
mitk::LevelWindowManager::Pointer m_Manager
 manager who is responsible to collect and deliver changes on Level/Window More...
 

Protected Slots

void HideScale ()
 Hide the scale if "Hide Scale" is selected in the context menu. More...
 
void ShowScale ()
 Shows the scale if "Show Scale" is selected in the context menu. More...
 

Protected Member Functions

virtual void Update ()
 recalculate the size and position of the slider bar More...
 
void paintEvent (QPaintEvent *e) override
 
void mouseMoveEvent (QMouseEvent *mouseEvent) override
 
void enterEvent (QEvent *event) override
 
void mousePressEvent (QMouseEvent *mouseEvent) override
 
void mouseReleaseEvent (QMouseEvent *mouseEvent) override
 
void resizeEvent (QResizeEvent *event) override
 

Protected Attributes

QRect m_Rect
 
QPoint m_StartPos
 
bool m_Resize
 
bool m_Bottom
 
bool m_MouseDown
 
bool m_Leftbutton
 
bool m_CtrlPressed
 
int m_MoveHeight
 
bool m_ScaleVisible
 
QRect m_LowerBound
 
QRect m_UpperBound
 
unsigned long m_ObserverTag
 
bool m_IsObserverTagSet
 
QFont m_Font
 
QmitkLevelWindowWidgetContextMenum_Contextmenu
 

Detailed Description

Provides a widget with a slider to change the level and window value of the current image.

This documentation actually refers to the QmitkLevelWindowWidget and is only put in this class due to technical issues (should be moved later).

The QmitkLevelWindowWidget is a kind of container for a QmitkSliderLevelWindowWidget (this is the cyan bar above the text input fields) and a QmitkLineEditLevelWindowWidget (with two text input fields). It holds a reference to a mitk::LevelWindowManager variable, which keeps the LevelWindowProperty of the currently selected image. Level/Window is manipulated by the text inputs and the Slider to adjust brightness/contrast of a single image. All changes on the slider or in the text input fields affect the current image by giving new values to LevelWindowManager. LevelWindowManager then sends a signal to tell other listeners about changes.

Which image is changed is determined by mitkLevelWindowManager. If m_AutoTopMost is true, always the topmost image in data tree (layer property) is affected by changes. The image which is affected by changes can also be changed by QmitkLevelWindowWidgetContextMenu, the context menu for QmitkSliderLevelWindowWidget and QmitkLineEditLevelWindowWidget. There you have the possibility to set a certain image or always the topmost image in the data tree (layer property) to be affected by changes.

The internal mitk::LevelWindow variable contains a range that is valid for a given image. It should not be possible to move the level/window parameters outside this range. The range can be changed and reset to its default values by QmitkLevelWindowWidgetContextMenu, the context menu for QmitkSliderLevelWindowWidget and QmitkLineEditLevelWindowWidget.

Now for the behaviour of the text inputs: The upper one contains the value of the level (brightness), the lower one shows the window (contrast).

The behaviour of the cyan bar is more obvious: the scale in the background shows the valid range. The cyan bar in front displays the currently selected level/window setting. You can change the level by dragging the bar with the left mouse button or clicking somewhere inside the scalerange with the left mouse button. The window is changed by moving the mouse on the upper or lower bound of the bar until the cursor becomes an vertical double-arrowed symbol. Then you can change the windowsize by clicking the left mouse button and move the mouse upwards or downwards. The bar becomes greater upwards as well as downwards. If you want to change the size of the window in only one direction you have to press the CTRL-key while doing the same as mentioned above. This information is also presented by a tooltip text when moving the mouse on the upper or lower bound of the bar.

Definition at line 77 of file QmitkSliderLevelWindowWidget.h.

Constructor & Destructor Documentation

◆ QmitkSliderLevelWindowWidget()

QmitkSliderLevelWindowWidget::QmitkSliderLevelWindowWidget ( QWidget *  parent = nullptr,
Qt::WindowFlags  f = nullptr 
)

◆ ~QmitkSliderLevelWindowWidget()

QmitkSliderLevelWindowWidget::~QmitkSliderLevelWindowWidget ( )
override

destructor

Definition at line 60 of file QmitkSliderLevelWindowWidget.cpp.

References m_IsObserverTagSet, m_Manager, and m_ObserverTag.

Member Function Documentation

◆ enterEvent()

void QmitkSliderLevelWindowWidget::enterEvent ( QEvent *  event)
overrideprotected

Definition at line 424 of file QmitkSliderLevelWindowWidget.cpp.

References mouseMoveEvent().

◆ GetManager()

mitk::LevelWindowManager * QmitkSliderLevelWindowWidget::GetManager ( )

returns the manager who is responsible to collect and deliver changes on Level/Window

Definition at line 547 of file QmitkSliderLevelWindowWidget.cpp.

References m_Manager.

◆ HideScale

void QmitkSliderLevelWindowWidget::HideScale ( )
protectedslot

Hide the scale if "Hide Scale" is selected in the context menu.

Definition at line 530 of file QmitkSliderLevelWindowWidget.cpp.

References m_ScaleVisible, and Update().

Referenced by Update().

◆ mouseMoveEvent()

void QmitkSliderLevelWindowWidget::mouseMoveEvent ( QMouseEvent *  mouseEvent)
overrideprotected

method implements the component behavior

checks if cursor is on upper or lower bound of slider bar and changes cursor symbol

checks if left mouse button is pressed and if CTRL is pressed and changes sliderbar in move-direction accordingly

Definition at line 291 of file QmitkSliderLevelWindowWidget.cpp.

References mitk::RenderingManager::GetInstance(), mitk::LevelWindow::GetLevel(), mitk::LevelWindow::GetRange(), mitk::LevelWindow::GetRangeMax(), mitk::LevelWindow::GetRangeMin(), mitk::LevelWindow::GetWindow(), mitk::LevelWindow::IsFixed(), m_Bottom, m_CtrlPressed, m_Leftbutton, m_LevelWindow, m_LowerBound, m_Manager, m_MouseDown, m_MoveHeight, m_Rect, m_Resize, m_StartPos, m_UpperBound, mitk::RenderingManager::RequestUpdateAll(), and mitk::LevelWindow::SetLevelWindow().

Referenced by enterEvent(), and mousePressEvent().

◆ mousePressEvent()

void QmitkSliderLevelWindowWidget::mousePressEvent ( QMouseEvent *  mouseEvent)
overrideprotected

registers events when a mousebutton is pressed

if leftbutton is pressed m_Leftbutton is set to true

also checks if CTRL is pressed and sets the bool variable m_CtrlPressed

Definition at line 432 of file QmitkSliderLevelWindowWidget.cpp.

References mitk::LevelWindow::IsFixed(), m_CtrlPressed, m_Leftbutton, m_LevelWindow, m_MouseDown, m_StartPos, and mouseMoveEvent().

◆ mouseReleaseEvent()

void QmitkSliderLevelWindowWidget::mouseReleaseEvent ( QMouseEvent *  mouseEvent)
overrideprotected

sets the variable m_MouseDown to false

Definition at line 463 of file QmitkSliderLevelWindowWidget.cpp.

References mitk::LevelWindow::IsFixed(), m_LevelWindow, and m_MouseDown.

◆ paintEvent()

◆ resizeEvent()

void QmitkSliderLevelWindowWidget::resizeEvent ( QResizeEvent *  event)
overrideprotected

causes an update of the sliderbar when resizing the window

Definition at line 457 of file QmitkSliderLevelWindowWidget.cpp.

References m_MoveHeight, and Update().

◆ SetDataStorage()

void QmitkSliderLevelWindowWidget::SetDataStorage ( mitk::DataStorage ds)

sets the DataStorage which holds all image-nodes

Definition at line 542 of file QmitkSliderLevelWindowWidget.cpp.

References m_Manager.

◆ SetLevelWindowManager()

void QmitkSliderLevelWindowWidget::SetLevelWindowManager ( mitk::LevelWindowManager levelWindowManager)

sets the manager who is responsible to collect and deliver changes on Level/Window

Definition at line 69 of file QmitkSliderLevelWindowWidget.cpp.

References m_IsObserverTagSet, m_LevelWindow, m_Manager, m_ObserverTag, and Update().

◆ ShowScale

void QmitkSliderLevelWindowWidget::ShowScale ( )
protectedslot

Shows the scale if "Show Scale" is selected in the context menu.

Definition at line 536 of file QmitkSliderLevelWindowWidget.cpp.

References m_ScaleVisible, and Update().

Referenced by Update().

◆ Update()

Member Data Documentation

◆ m_Bottom

bool QmitkSliderLevelWindowWidget::m_Bottom
protected

Definition at line 124 of file QmitkSliderLevelWindowWidget.h.

Referenced by mouseMoveEvent(), and QmitkSliderLevelWindowWidget().

◆ m_Contextmenu

QmitkLevelWindowWidgetContextMenu* QmitkSliderLevelWindowWidget::m_Contextmenu
protected

data structure which creates the context menu for QmitkLineEditLevelWindowWidget

Definition at line 140 of file QmitkSliderLevelWindowWidget.h.

Referenced by QmitkSliderLevelWindowWidget(), and Update().

◆ m_CtrlPressed

bool QmitkSliderLevelWindowWidget::m_CtrlPressed
protected

◆ m_Font

QFont QmitkSliderLevelWindowWidget::m_Font
protected

Definition at line 135 of file QmitkSliderLevelWindowWidget.h.

Referenced by paintEvent(), and QmitkSliderLevelWindowWidget().

◆ m_IsObserverTagSet

bool QmitkSliderLevelWindowWidget::m_IsObserverTagSet
protected

◆ m_Leftbutton

bool QmitkSliderLevelWindowWidget::m_Leftbutton
protected

Definition at line 126 of file QmitkSliderLevelWindowWidget.h.

Referenced by mouseMoveEvent(), and mousePressEvent().

◆ m_LevelWindow

mitk::LevelWindow QmitkSliderLevelWindowWidget::m_LevelWindow

◆ m_LowerBound

QRect QmitkSliderLevelWindowWidget::m_LowerBound
protected

Definition at line 130 of file QmitkSliderLevelWindowWidget.h.

Referenced by mouseMoveEvent().

◆ m_Manager

mitk::LevelWindowManager::Pointer QmitkSliderLevelWindowWidget::m_Manager

manager who is responsible to collect and deliver changes on Level/Window

Definition at line 100 of file QmitkSliderLevelWindowWidget.h.

Referenced by GetManager(), mouseMoveEvent(), QmitkSliderLevelWindowWidget(), SetDataStorage(), SetLevelWindowManager(), Update(), and ~QmitkSliderLevelWindowWidget().

◆ m_MouseDown

bool QmitkSliderLevelWindowWidget::m_MouseDown
protected

◆ m_MoveHeight

int QmitkSliderLevelWindowWidget::m_MoveHeight
protected

◆ m_ObserverTag

unsigned long QmitkSliderLevelWindowWidget::m_ObserverTag
protected

◆ m_Rect

QRect QmitkSliderLevelWindowWidget::m_Rect
protected

helper for drawing the component

Definition at line 116 of file QmitkSliderLevelWindowWidget.h.

Referenced by mouseMoveEvent(), paintEvent(), and Update().

◆ m_Resize

bool QmitkSliderLevelWindowWidget::m_Resize
protected

Definition at line 123 of file QmitkSliderLevelWindowWidget.h.

Referenced by mouseMoveEvent(), and QmitkSliderLevelWindowWidget().

◆ m_ScaleVisible

bool QmitkSliderLevelWindowWidget::m_ScaleVisible
protected

◆ m_StartPos

QPoint QmitkSliderLevelWindowWidget::m_StartPos
protected

helper for drawing the component

Definition at line 121 of file QmitkSliderLevelWindowWidget.h.

Referenced by mouseMoveEvent(), and mousePressEvent().

◆ m_UpperBound

QRect QmitkSliderLevelWindowWidget::m_UpperBound
protected

Definition at line 131 of file QmitkSliderLevelWindowWidget.h.

Referenced by mouseMoveEvent().


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