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

Widget that represents a node selection of (max) one node. It acts like a button. Clicking on it allows to change the selection. More...

#include <QmitkSingleNodeSelectionWidget.h>

Inheritance diagram for QmitkSingleNodeSelectionWidget:
Collaboration diagram for QmitkSingleNodeSelectionWidget:

Public Types

using NodeList = QmitkAbstractNodeSelectionWidget::NodeList
 
- Public Types inherited from QmitkAbstractNodeSelectionWidget
using NodeList = QList< mitk::DataNode::Pointer >
 

Public Slots

void SetCurrentSelectedNode (mitk::DataNode *selectedNode)
 
void SetAutoSelectNewNodes (bool autoSelect)
 
- Public Slots inherited from QmitkAbstractNodeSelectionWidget
void SetSelectOnlyVisibleNodes (bool selectOnlyVisibleNodes)
 
void SetCurrentSelection (NodeList selectedNodes)
 
void SetInvalidInfo (QString info)
 
void SetEmptyInfo (QString info)
 
void SetPopUpTitel (QString info)
 
void SetPopUpHint (QString info)
 
void SetSelectionIsOptional (bool isOptional)
 

Public Member Functions

 QmitkSingleNodeSelectionWidget (QWidget *parent=nullptr)
 
mitk::DataNode::Pointer GetSelectedNode () const
 
bool GetAutoSelectNewNodes () const
 
- Public Member Functions inherited from QmitkAbstractNodeSelectionWidget
 QmitkAbstractNodeSelectionWidget (QWidget *parent=nullptr)
 
virtual ~QmitkAbstractNodeSelectionWidget () override
 
void SetDataStorage (mitk::DataStorage *dataStorage)
 Sets the data storage that will be used /monitored by widget. More...
 
void SetNodePredicate (const mitk::NodePredicateBase *nodePredicate)
 
const mitk::NodePredicateBaseGetNodePredicate () const
 
QString GetInvalidInfo () const
 
QString GetEmptyInfo () const
 
QString GetPopUpTitel () const
 
QString GetPopUpHint () const
 
bool GetSelectionIsOptional () const
 
bool GetSelectOnlyVisibleNodes () const
 
NodeList GetSelectedNodes () const
 

Protected Slots

virtual void OnClearSelection ()
 
- Protected Slots inherited from QmitkAbstractNodeSelectionWidget
void RemoveNodeFromSelection (const mitk::DataNode *node)
 

Protected Member Functions

void ReviseSelectionChanged (const NodeList &oldInternalSelection, NodeList &newInternalSelection) override
 
bool eventFilter (QObject *obj, QEvent *ev) override
 
void EditSelection ()
 
void UpdateInfo () override
 
void OnNodeAddedToStorage (const mitk::DataNode *node) override
 
mitk::DataNode::Pointer DetermineAutoSelectNode (const NodeList &ignoreNodes={})
 
- Protected Member Functions inherited from QmitkAbstractNodeSelectionWidget
virtual void OnNodePredicateChanged ()
 
virtual void OnDataStorageChanged ()
 
virtual void OnInternalSelectionChanged ()
 
virtual void OnNodeRemovedFromStorage (const mitk::DataNode *node)
 
void HandleChangeOfInternalSelection (NodeList newInternalSelection)
 
NodeList CompileEmitSelection () const
 
virtual bool AllowEmissionOfSelection (const NodeList &emissionCandidates) const
 
void EmitSelection (const NodeList &emissionCandidates)
 
void SetCurrentInternalSelection (NodeList selectedNodes)
 
const NodeListGetCurrentInternalSelection () const
 
const NodeListGetCurrentExternalSelection () const
 

Protected Attributes

bool m_AutoSelectNewNodes
 
Ui_QmitkSingleNodeSelectionWidget m_Controls
 
- Protected Attributes inherited from QmitkAbstractNodeSelectionWidget
mitk::WeakPointer< mitk::DataStoragem_DataStorage
 
mitk::NodePredicateBase::ConstPointer m_NodePredicate
 
QString m_InvalidInfo
 
QString m_EmptyInfo
 
QString m_PopUpTitel
 
QString m_PopUpHint
 
bool m_IsOptional
 
bool m_SelectOnlyVisibleNodes
 

Additional Inherited Members

- Signals inherited from QmitkAbstractNodeSelectionWidget
void CurrentSelectionChanged (NodeList nodes)
 

Detailed Description

Widget that represents a node selection of (max) one node. It acts like a button. Clicking on it allows to change the selection.

Definition at line 35 of file QmitkSingleNodeSelectionWidget.h.

Member Typedef Documentation

◆ NodeList

Constructor & Destructor Documentation

◆ QmitkSingleNodeSelectionWidget()

QmitkSingleNodeSelectionWidget::QmitkSingleNodeSelectionWidget ( QWidget *  parent = nullptr)
explicit

Member Function Documentation

◆ DetermineAutoSelectNode()

mitk::DataNode::Pointer QmitkSingleNodeSelectionWidget::DetermineAutoSelectNode ( const NodeList ignoreNodes = {})
protected

Helper function that gets a suitable auto selected node from the datastorage that fits to the predicate settings.

Parameters
ignoreNodesYou may pass a list of nodes that must not be choosen as auto selected node.

Definition at line 165 of file QmitkSingleNodeSelectionWidget.cpp.

References mitk::WeakPointer< T >::Lock(), QmitkAbstractNodeSelectionWidget::m_DataStorage, QmitkAbstractNodeSelectionWidget::m_NodePredicate, mitk::NodePredicateAnd::New(), and mitk::NodePredicateFunction::New().

Referenced by OnNodeAddedToStorage(), and ReviseSelectionChanged().

◆ EditSelection()

◆ eventFilter()

bool QmitkSingleNodeSelectionWidget::eventFilter ( QObject *  obj,
QEvent *  ev 
)
overrideprotected

◆ GetAutoSelectNewNodes()

bool QmitkSingleNodeSelectionWidget::GetAutoSelectNewNodes ( ) const

Definition at line 221 of file QmitkSingleNodeSelectionWidget.cpp.

References m_AutoSelectNewNodes.

◆ GetSelectedNode()

mitk::DataNode::Pointer QmitkSingleNodeSelectionWidget::GetSelectedNode ( ) const

◆ OnClearSelection

void QmitkSingleNodeSelectionWidget::OnClearSelection ( )
protectedvirtualslot

◆ OnNodeAddedToStorage()

void QmitkSingleNodeSelectionWidget::OnNodeAddedToStorage ( const mitk::DataNode node)
overrideprotectedvirtual

Method is called when a node is added to the storage. Default implementation does nothing. Derived widgets can override the method if they want to react on new nodes in the storage.

Reimplemented from QmitkAbstractNodeSelectionWidget.

Definition at line 208 of file QmitkSingleNodeSelectionWidget.cpp.

References DetermineAutoSelectNode(), GetSelectedNode(), QmitkAbstractNodeSelectionWidget::HandleChangeOfInternalSelection(), and m_AutoSelectNewNodes.

Referenced by SetAutoSelectNewNodes().

◆ ReviseSelectionChanged()

void QmitkSingleNodeSelectionWidget::ReviseSelectionChanged ( const NodeList oldInternalSelection,
NodeList newInternalSelection 
)
overrideprotectedvirtual

This member function is called if the internal selection is about to be changed by the base implementation. This is the slot where derived classes can revise and change the internal selection before widget updates, signal emissions and other things are triggered. Default implementation does nothing, thus it keeps the passed internal selection as compiled by the base implementation.

Reimplemented from QmitkAbstractNodeSelectionWidget.

Definition at line 41 of file QmitkSingleNodeSelectionWidget.cpp.

References DetermineAutoSelectNode(), and m_AutoSelectNewNodes.

◆ SetAutoSelectNewNodes

void QmitkSingleNodeSelectionWidget::SetAutoSelectNewNodes ( bool  autoSelect)
slot

Sets the auto selection mode (Default is false). If auto select is true and the following conditions are fullfilled, the widget will select a node automatically from the data storage:

  • a data storage is set
  • data storage contains at least one node that matches the given predicate
  • no selection is set.

Definition at line 226 of file QmitkSingleNodeSelectionWidget.cpp.

References m_AutoSelectNewNodes, and OnNodeAddedToStorage().

◆ SetCurrentSelectedNode

void QmitkSingleNodeSelectionWidget::SetCurrentSelectedNode ( mitk::DataNode selectedNode)
slot

◆ UpdateInfo()

void QmitkSingleNodeSelectionWidget::UpdateInfo ( )
overrideprotectedvirtual

Method is called if the display of the selected nodes should be updated (e.g. because the selection changed)

Implements QmitkAbstractNodeSelectionWidget.

Definition at line 142 of file QmitkSingleNodeSelectionWidget.cpp.

References GetSelectedNode(), m_Controls, QmitkAbstractNodeSelectionWidget::m_EmptyInfo, QmitkAbstractNodeSelectionWidget::m_InvalidInfo, and QmitkAbstractNodeSelectionWidget::m_IsOptional.

Referenced by OnClearSelection(), and QmitkSingleNodeSelectionWidget().

Member Data Documentation

◆ m_AutoSelectNewNodes

bool QmitkSingleNodeSelectionWidget::m_AutoSelectNewNodes
protected

See documentation of SetAutoSelectNewNodes for details

Definition at line 75 of file QmitkSingleNodeSelectionWidget.h.

Referenced by GetAutoSelectNewNodes(), OnNodeAddedToStorage(), ReviseSelectionChanged(), and SetAutoSelectNewNodes().

◆ m_Controls

Ui_QmitkSingleNodeSelectionWidget QmitkSingleNodeSelectionWidget::m_Controls
protected

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