Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
QmitkAbstractDataStorageModel Class Referenceabstract

Abstract base class extending QAbstractItemModel for DataStorage-backed models. More...

#include <QmitkAbstractDataStorageModel.h>

Inheritance diagram for QmitkAbstractDataStorageModel:
Collaboration diagram for QmitkAbstractDataStorageModel:

Public Member Functions

 ~QmitkAbstractDataStorageModel () override
 
void SetDataStorage (mitk::DataStorage *dataStorage)
 Sets the data storage and registers node event listeners. More...
 
mitk::DataStorage::Pointer GetDataStorage () const
 Returns a locked pointer to the current data storage. More...
 
void SetNodePredicate (const mitk::NodePredicateBase *nodePredicate)
 Sets the node predicate and triggers a model update. More...
 
const mitk::NodePredicateBase * GetNodePredicate () const
 Returns the currently set node predicate. More...
 

Protected Member Functions

virtual void DataStorageChanged ()=0
 
virtual void NodePredicateChanged ()=0
 
virtual void NodeAdded (const mitk::DataNode *node)=0
 
virtual void NodeChanged (const mitk::DataNode *node)=0
 
virtual void NodeRemoved (const mitk::DataNode *node)=0
 
 QmitkAbstractDataStorageModel (QObject *parent=nullptr)
 
 QmitkAbstractDataStorageModel (mitk::DataStorage *dataStorage, QObject *parent=nullptr)
 

Protected Attributes

mitk::WeakPointer< mitk::DataStorage > m_DataStorage
 
mitk::NodePredicateBase::ConstPointer m_NodePredicate
 

Detailed Description

Abstract base class extending QAbstractItemModel for DataStorage-backed models.

This class bridges the Qt model/view framework with the MITK DataStorage by accepting an mitk::DataStorage and an optional mitk::NodePredicateBase for filtering. It automatically registers itself as a listener for node events (AddNodeEvent, ChangedNodeEvent, RemoveNodeEvent) on the data storage and provides pure virtual callbacks (NodeAdded, NodeChanged, NodeRemoved) so that subclasses can react to these events and update their internal state.

Subclasses must also implement DataStorageChanged() and NodePredicateChanged() to handle changes of the data storage or predicate, respectively.

A model that implements this class must return mitk::DataNode::Pointer objects for model indexes when the data role is QmitkDataNodeRole.

See also
QmitkAbstractDataStorageInspector
QmitkDataStorageDefaultListModel
QmitkDataStorageSimpleTreeModel

Definition at line 46 of file QmitkAbstractDataStorageModel.h.

Constructor & Destructor Documentation

◆ ~QmitkAbstractDataStorageModel()

QmitkAbstractDataStorageModel::~QmitkAbstractDataStorageModel ( )
override

◆ QmitkAbstractDataStorageModel() [1/2]

QmitkAbstractDataStorageModel::QmitkAbstractDataStorageModel ( QObject *  parent = nullptr)
protected

◆ QmitkAbstractDataStorageModel() [2/2]

QmitkAbstractDataStorageModel::QmitkAbstractDataStorageModel ( mitk::DataStorage *  dataStorage,
QObject *  parent = nullptr 
)
protected

Member Function Documentation

◆ DataStorageChanged()

◆ GetDataStorage()

mitk::DataStorage::Pointer QmitkAbstractDataStorageModel::GetDataStorage ( ) const

Returns a locked pointer to the current data storage.

Returns
A smart pointer to the data storage, or nullptr if none is set or it has been deleted.

◆ GetNodePredicate()

const mitk::NodePredicateBase* QmitkAbstractDataStorageModel::GetNodePredicate ( ) const
inline

Returns the currently set node predicate.

Returns
Pointer to the current node predicate, or nullptr if none is set.

Definition at line 86 of file QmitkAbstractDataStorageModel.h.

◆ NodeAdded()

◆ NodeChanged()

◆ NodePredicateChanged()

◆ NodeRemoved()

◆ SetDataStorage()

void QmitkAbstractDataStorageModel::SetDataStorage ( mitk::DataStorage *  dataStorage)

Sets the data storage and registers node event listeners.

Removes listeners from the previous data storage (if any), sets the new data storage, and registers listeners for AddNodeEvent, RemoveNodeEvent, ChangedNodeEvent, and the DeleteEvent. Finally calls DataStorageChanged() to allow the subclass to update its internal representation.

Parameters
[in]dataStoragePointer to the new data storage. May be nullptr.

◆ SetNodePredicate()

void QmitkAbstractDataStorageModel::SetNodePredicate ( const mitk::NodePredicateBase *  nodePredicate)

Sets the node predicate and triggers a model update.

The predicate is used to filter the set of nodes shown by the model. If the predicate changes, NodePredicateChanged() is called.

Parameters
[in]nodePredicatePointer to the node predicate. May be nullptr to show all nodes.

Member Data Documentation

◆ m_DataStorage

mitk::WeakPointer<mitk::DataStorage> QmitkAbstractDataStorageModel::m_DataStorage
protected

Definition at line 100 of file QmitkAbstractDataStorageModel.h.

◆ m_NodePredicate

mitk::NodePredicateBase::ConstPointer QmitkAbstractDataStorageModel::m_NodePredicate
protected

Definition at line 101 of file QmitkAbstractDataStorageModel.h.


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