Medical Imaging Interaction Toolkit  2024.06.00
Medical Imaging Interaction Toolkit
QmitkDataStorageTreeModel Class Reference

#include <QmitkDataStorageTreeModel.h>

Inheritance diagram for QmitkDataStorageTreeModel:
Collaboration diagram for QmitkDataStorageTreeModel:

Signals

void nodeVisibilityChanged ()
 

Public Member Functions

 QmitkDataStorageTreeModel (mitk::DataStorage *_DataStorage, bool _PlaceNewNodesOnTop=false, QObject *parent=nullptr)
 
 ~QmitkDataStorageTreeModel () override
 
mitk::DataNode::Pointer GetNode (const QModelIndex &index) const
 
virtual QList< mitk::DataNode::PointerGetNodeSet () const
 
const mitk::DataStorage::Pointer GetDataStorage () const
 
bool GetPlaceNewNodesOnTopFlag ()
 
void SetPlaceNewNodesOnTop (bool _PlaceNewNodesOnTop)
 
Qt::ItemFlags flags (const QModelIndex &index) const override
 
QVariant data (const QModelIndex &index, int role=Qt::DisplayRole) const override
 
QVariant headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
 
int rowCount (const QModelIndex &parent=QModelIndex()) const override
 
int columnCount (const QModelIndex &parent=QModelIndex()) const override
 
QModelIndex index (int row, int column, const QModelIndex &parent=QModelIndex()) const override
 
QModelIndex parent (const QModelIndex &index) const override
 
bool setData (const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
 
bool setHeaderData (int section, Qt::Orientation orientation, const QVariant &value, int role=Qt::EditRole) override
 
bool dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
 
Qt::DropActions supportedDropActions () const override
 
Qt::DropActions supportedDragActions () const override
 
QStringList mimeTypes () const override
 
QMimeData * mimeData (const QModelIndexList &indexes) const override
 
void SetDataStorage (mitk::DataStorage *_DataStorage)
 
void SetDataStorageDeleted ()
 
virtual void AddNode (const mitk::DataNode *node)
 
virtual void RemoveNode (const mitk::DataNode *node)
 
virtual void SetNodeModified (const mitk::DataNode *node)
 
QModelIndex GetIndex (const mitk::DataNode *) const
 
void SetAllowHierarchyChange (bool allowHierarchyChange)
 Set whether to allow hierarchy changes by dragging and dropping. More...
 

Static Public Member Functions

static QMimeData * mimeDataFromModelIndexList (const QModelIndexList &indexes)
 

Static Public Attributes

static const std::string COLUMN_NAME
 
static const std::string COLUMN_TYPE
 
static const std::string COLUMN_VISIBILITY
 

Protected Types

using TreeItem = QmitkDataStorageTreeModelInternalItem
 

Protected Member Functions

QList< TreeItem * > ToTreeItemPtrList (const QMimeData *mimeData)
 
QList< TreeItem * > ToTreeItemPtrList (const QByteArray &ba)
 
void AdjustLayerProperty ()
 
TreeItemTreeItemFromIndex (const QModelIndex &index) const
 
QModelIndex IndexFromTreeItem (TreeItem *) const
 
mitk::DataNodeGetParentNode (const mitk::DataNode *node) const
 
void TreeToVector (TreeItem *parent, std::vector< TreeItem * > &vec) const
 
void TreeToNodeSet (TreeItem *parent, QList< mitk::DataNode::Pointer > &vec) const
 
void Update ()
 

Protected Attributes

mitk::WeakPointer< mitk::DataStoragem_DataStorage
 
mitk::NodePredicateBase::Pointer m_Predicate
 
bool m_PlaceNewNodesOnTop
 
TreeItemm_Root
 
bool m_BlockDataStorageEvents
 Flag to block the data storage events if nodes are added/removed by this class. More...
 
bool m_AllowHierarchyChange
 

Detailed Description

Warning
This class causes invalid point exception when used with invalid QModelIndex instances. The index validation is not sufficient. This may cause unspecific crashes in situation where this class is used multiple times or with multiple selection models. See https://phabricator.mitk.org/T24348 for more information.

Definition at line 39 of file QmitkDataStorageTreeModel.h.

Member Typedef Documentation

◆ TreeItem

Constructor & Destructor Documentation

◆ QmitkDataStorageTreeModel()

QmitkDataStorageTreeModel::QmitkDataStorageTreeModel ( mitk::DataStorage _DataStorage,
bool  _PlaceNewNodesOnTop = false,
QObject *  parent = nullptr 
)

◆ ~QmitkDataStorageTreeModel()

QmitkDataStorageTreeModel::~QmitkDataStorageTreeModel ( )
override

Member Function Documentation

◆ AddNode()

virtual void QmitkDataStorageTreeModel::AddNode ( const mitk::DataNode node)
virtual

Adds a node to this model. If a predicate is set (not null) the node will be checked against it.The node has to have a data object (no one wants to see empty nodes).

◆ AdjustLayerProperty()

void QmitkDataStorageTreeModel::AdjustLayerProperty ( )
protected

Adjusts the LayerProperty according to the nodes position

◆ columnCount()

int QmitkDataStorageTreeModel::columnCount ( const QModelIndex &  parent = QModelIndex()) const
override

◆ data()

QVariant QmitkDataStorageTreeModel::data ( const QModelIndex &  index,
int  role = Qt::DisplayRole 
) const
override

◆ dropMimeData()

bool QmitkDataStorageTreeModel::dropMimeData ( const QMimeData *  data,
Qt::DropAction  action,
int  row,
int  column,
const QModelIndex &  parent 
)
override

◆ flags()

Qt::ItemFlags QmitkDataStorageTreeModel::flags ( const QModelIndex &  index) const
override

◆ GetDataStorage()

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

Get the DataStorage.

◆ GetIndex()

QModelIndex QmitkDataStorageTreeModel::GetIndex ( const mitk::DataNode ) const
Returns
an index for the given datatreenode in the tree. If the node is not found

◆ GetNode()

mitk::DataNode::Pointer QmitkDataStorageTreeModel::GetNode ( const QModelIndex &  index) const

Get node at a specific model index. This function is used to get a node from a QModelIndex

◆ GetNodeSet()

virtual QList<mitk::DataNode::Pointer> QmitkDataStorageTreeModel::GetNodeSet ( ) const
virtual

Returns a copy of the node-vector that is shown by this model

◆ GetParentNode()

mitk::DataNode* QmitkDataStorageTreeModel::GetParentNode ( const mitk::DataNode node) const
protected

Returns the first element in the nodes sources list (if available) or 0

◆ GetPlaceNewNodesOnTopFlag()

bool QmitkDataStorageTreeModel::GetPlaceNewNodesOnTopFlag ( )
inline

Get the top placement flag

Definition at line 73 of file QmitkDataStorageTreeModel.h.

◆ headerData()

QVariant QmitkDataStorageTreeModel::headerData ( int  section,
Qt::Orientation  orientation,
int  role = Qt::DisplayRole 
) const
override

◆ index()

QModelIndex QmitkDataStorageTreeModel::index ( int  row,
int  column,
const QModelIndex &  parent = QModelIndex() 
) const
override

called whenever the model or the view needs to create a QModelIndex for a particular child item (or a top-level item if parent is an invalid QModelIndex)

◆ IndexFromTreeItem()

QModelIndex QmitkDataStorageTreeModel::IndexFromTreeItem ( TreeItem ) const
protected

Gives a ModelIndex for the Tree Item

◆ mimeData()

QMimeData* QmitkDataStorageTreeModel::mimeData ( const QModelIndexList &  indexes) const
override

◆ mimeDataFromModelIndexList()

static QMimeData* QmitkDataStorageTreeModel::mimeDataFromModelIndexList ( const QModelIndexList &  indexes)
static

◆ mimeTypes()

QStringList QmitkDataStorageTreeModel::mimeTypes ( ) const
override

◆ nodeVisibilityChanged

void QmitkDataStorageTreeModel::nodeVisibilityChanged ( )
signal

◆ parent()

QModelIndex QmitkDataStorageTreeModel::parent ( const QModelIndex &  index) const
override

◆ RemoveNode()

virtual void QmitkDataStorageTreeModel::RemoveNode ( const mitk::DataNode node)
virtual

Removes a node from this model. Also removes any event listener from the node.

◆ rowCount()

int QmitkDataStorageTreeModel::rowCount ( const QModelIndex &  parent = QModelIndex()) const
override

◆ SetAllowHierarchyChange()

void QmitkDataStorageTreeModel::SetAllowHierarchyChange ( bool  allowHierarchyChange)

Set whether to allow hierarchy changes by dragging and dropping.

◆ setData()

bool QmitkDataStorageTreeModel::setData ( const QModelIndex &  index,
const QVariant &  value,
int  role = Qt::EditRole 
)
override

◆ SetDataStorage()

void QmitkDataStorageTreeModel::SetDataStorage ( mitk::DataStorage _DataStorage)

Sets the DataStorage. The whole model will be reset.

◆ SetDataStorageDeleted()

void QmitkDataStorageTreeModel::SetDataStorageDeleted ( )

Notify that the DataStorage was deleted. The whole model will be reset.

◆ setHeaderData()

bool QmitkDataStorageTreeModel::setHeaderData ( int  section,
Qt::Orientation  orientation,
const QVariant &  value,
int  role = Qt::EditRole 
)
override

◆ SetNodeModified()

virtual void QmitkDataStorageTreeModel::SetNodeModified ( const mitk::DataNode node)
virtual

Sets a node to modified. Called by the DataStorage

◆ SetPlaceNewNodesOnTop()

void QmitkDataStorageTreeModel::SetPlaceNewNodesOnTop ( bool  _PlaceNewNodesOnTop)

Set the top placement flag

◆ supportedDragActions()

Qt::DropActions QmitkDataStorageTreeModel::supportedDragActions ( ) const
override

◆ supportedDropActions()

Qt::DropActions QmitkDataStorageTreeModel::supportedDropActions ( ) const
override

◆ ToTreeItemPtrList() [1/2]

QList<TreeItem *> QmitkDataStorageTreeModel::ToTreeItemPtrList ( const QByteArray &  ba)
protected

◆ ToTreeItemPtrList() [2/2]

QList<TreeItem *> QmitkDataStorageTreeModel::ToTreeItemPtrList ( const QMimeData *  mimeData)
protected

◆ TreeItemFromIndex()

TreeItem* QmitkDataStorageTreeModel::TreeItemFromIndex ( const QModelIndex &  index) const
protected

invoked after m_DataStorage or m_Predicate changed

◆ TreeToNodeSet()

void QmitkDataStorageTreeModel::TreeToNodeSet ( TreeItem parent,
QList< mitk::DataNode::Pointer > &  vec 
) const
protected

Adds all Childs in parent to vec. Before a child is added the function is called recursively

◆ TreeToVector()

void QmitkDataStorageTreeModel::TreeToVector ( TreeItem parent,
std::vector< TreeItem * > &  vec 
) const
protected

Adds all Childs in parent to vec. Before a child is added the function is called recursively

◆ Update()

void QmitkDataStorageTreeModel::Update ( )
protected

Update Tree Model

Member Data Documentation

◆ COLUMN_NAME

const std::string QmitkDataStorageTreeModel::COLUMN_NAME
static

Definition at line 45 of file QmitkDataStorageTreeModel.h.

◆ COLUMN_TYPE

const std::string QmitkDataStorageTreeModel::COLUMN_TYPE
static

Definition at line 46 of file QmitkDataStorageTreeModel.h.

◆ COLUMN_VISIBILITY

const std::string QmitkDataStorageTreeModel::COLUMN_VISIBILITY
static

Definition at line 47 of file QmitkDataStorageTreeModel.h.

◆ m_AllowHierarchyChange

bool QmitkDataStorageTreeModel::m_AllowHierarchyChange
protected

This decides whether or not it is allowed to assign a different parent to a node If it is false, it is not possible to change the hierarchy of nodes by dragging and dropping. If it is true, dragging nodes on another node will replace all of their parents with that one.

Definition at line 196 of file QmitkDataStorageTreeModel.h.

◆ m_BlockDataStorageEvents

bool QmitkDataStorageTreeModel::m_BlockDataStorageEvents
protected

Flag to block the data storage events if nodes are added/removed by this class.

Definition at line 189 of file QmitkDataStorageTreeModel.h.

◆ m_DataStorage

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

Definition at line 183 of file QmitkDataStorageTreeModel.h.

◆ m_PlaceNewNodesOnTop

bool QmitkDataStorageTreeModel::m_PlaceNewNodesOnTop
protected

Definition at line 185 of file QmitkDataStorageTreeModel.h.

◆ m_Predicate

mitk::NodePredicateBase::Pointer QmitkDataStorageTreeModel::m_Predicate
protected

Definition at line 184 of file QmitkDataStorageTreeModel.h.

◆ m_Root

TreeItem* QmitkDataStorageTreeModel::m_Root
protected

Definition at line 186 of file QmitkDataStorageTreeModel.h.


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