Medical Imaging Interaction Toolkit  2021.02.99-b1c7fb9e
Medical Imaging Interaction Toolkit
QmitkDataStorageTreeModel Class Reference

#include <QmitkDataStorageTreeModel.h>

Inheritance diagram for QmitkDataStorageTreeModel:
Collaboration diagram for QmitkDataStorageTreeModel:


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
bool m_BlockDataStorageEvents
 Flag to block the data storage events if nodes are added/removed by this class. More...
bool m_AllowHierarchyChange

Detailed Description

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 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 ( )

Member Function Documentation

◆ AddNode()

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

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 ( )

Adjusts the LayerProperty according to the nodes position

◆ columnCount()

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

◆ data()

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

◆ dropMimeData()

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

◆ flags()

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

◆ GetDataStorage()

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

Get the DataStorage.

◆ GetIndex()

QModelIndex QmitkDataStorageTreeModel::GetIndex ( const mitk::DataNode ) const
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

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

◆ GetParentNode()

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

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

◆ GetPlaceNewNodesOnTopFlag()

bool QmitkDataStorageTreeModel::GetPlaceNewNodesOnTopFlag ( )

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

◆ index()

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

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

Gives a ModelIndex for the Tree Item

◆ mimeData()

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

◆ mimeDataFromModelIndexList()

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

◆ mimeTypes()

QStringList QmitkDataStorageTreeModel::mimeTypes ( ) const

◆ nodeVisibilityChanged

void QmitkDataStorageTreeModel::nodeVisibilityChanged ( )

◆ parent()

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

◆ RemoveNode()

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

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

◆ rowCount()

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

◆ 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 

◆ SetDataStorage()

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

Sets the DataStorage. The whole model will be resetted.

◆ SetDataStorageDeleted()

void QmitkDataStorageTreeModel::SetDataStorageDeleted ( )

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

◆ setHeaderData()

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

◆ SetNodeModified()

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

Sets a node to modfified. Called by the DataStorage

◆ SetPlaceNewNodesOnTop()

void QmitkDataStorageTreeModel::SetPlaceNewNodesOnTop ( bool  _PlaceNewNodesOnTop)

Set the top placement flag

◆ supportedDragActions()

Qt::DropActions QmitkDataStorageTreeModel::supportedDragActions ( ) const

◆ supportedDropActions()

Qt::DropActions QmitkDataStorageTreeModel::supportedDropActions ( ) const

◆ ToTreeItemPtrList() [1/2]

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

◆ ToTreeItemPtrList() [2/2]

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

◆ TreeItemFromIndex()

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

invoked after m_DataStorage or m_Predicate changed

◆ TreeToNodeSet()

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

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

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

◆ Update()

void QmitkDataStorageTreeModel::Update ( )

Update Tree Model

Member Data Documentation


const std::string QmitkDataStorageTreeModel::COLUMN_NAME

Definition at line 45 of file QmitkDataStorageTreeModel.h.


const std::string QmitkDataStorageTreeModel::COLUMN_TYPE

Definition at line 46 of file QmitkDataStorageTreeModel.h.


const std::string QmitkDataStorageTreeModel::COLUMN_VISIBILITY

Definition at line 47 of file QmitkDataStorageTreeModel.h.

◆ m_AllowHierarchyChange

bool QmitkDataStorageTreeModel::m_AllowHierarchyChange

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

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

Definition at line 183 of file QmitkDataStorageTreeModel.h.

◆ m_PlaceNewNodesOnTop

bool QmitkDataStorageTreeModel::m_PlaceNewNodesOnTop

Definition at line 185 of file QmitkDataStorageTreeModel.h.

◆ m_Predicate

mitk::NodePredicateBase::Pointer QmitkDataStorageTreeModel::m_Predicate

Definition at line 184 of file QmitkDataStorageTreeModel.h.

◆ m_Root

TreeItem* QmitkDataStorageTreeModel::m_Root

Definition at line 186 of file QmitkDataStorageTreeModel.h.

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