Medical Imaging Interaction Toolkit
2018.4.99-389bf124
Medical Imaging Interaction Toolkit
|
#include <QmitkDataStorageTreeModel.h>
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::Pointer > | GetNodeSet () 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 () |
TreeItem * | TreeItemFromIndex (const QModelIndex &index) const |
QModelIndex | IndexFromTreeItem (TreeItem *) const |
mitk::DataNode * | GetParentNode (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::DataStorage > | m_DataStorage |
mitk::NodePredicateBase::Pointer | m_Predicate |
bool | m_PlaceNewNodesOnTop |
TreeItem * | m_Root |
bool | m_BlockDataStorageEvents |
Flag to block the data storage events if nodes are added/removed by this class. More... | |
bool | m_AllowHierarchyChange |
Definition at line 39 of file QmitkDataStorageTreeModel.h.
|
protected |
Definition at line 147 of file QmitkDataStorageTreeModel.h.
QmitkDataStorageTreeModel::QmitkDataStorageTreeModel | ( | mitk::DataStorage * | _DataStorage, |
bool | _PlaceNewNodesOnTop = false , |
||
QObject * | parent = nullptr |
||
) |
Definition at line 41 of file QmitkDataStorageTreeModel.cpp.
References SetDataStorage().
|
override |
Definition at line 54 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModelInternalItem::Delete(), m_Root, and SetDataStorage().
|
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).
Definition at line 635 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModelInternalItem::Find(), mitk::WeakPointer< T >::IsExpired(), mitk::WeakPointer< T >::Lock(), m_BlockDataStorageEvents, m_DataStorage, and m_Root.
Referenced by SetDataStorage(), and SetDataStorageDeleted().
|
protected |
Adjusts the LayerProperty according to the nodes position
transform the tree into an array and set the layer property descending
Definition at line 762 of file QmitkDataStorageTreeModel.cpp.
References mitk::RenderingManager::GetInstance(), m_Root, mitk::RenderingManager::RequestUpdateAll(), and TreeToVector().
Referenced by dropMimeData(), SetDataStorageDeleted(), SetPlaceNewNodesOnTop(), and Update().
|
override |
Definition at line 107 of file QmitkDataStorageTreeModel.cpp.
|
override |
Definition at line 421 of file QmitkDataStorageTreeModel.cpp.
References mitk::GeneratePropertyNameForDICOMTag(), QmitkDataStorageTreeModelInternalItem::GetDataNode(), QmitkNodeDescriptorManager::GetDescriptor(), QmitkNodeDescriptor::GetIcon(), QmitkNodeDescriptorManager::GetInstance(), mitk::DataNode::GetName(), mitk::DataNode::GetProperty(), mitk::BaseProperty::GetValueAsString(), mitk::DataNode::IsVisible(), QmitkDataNodeRawPointerRole, QmitkDataNodeRole, and TreeItemFromIndex().
|
override |
Definition at line 143 of file QmitkDataStorageTreeModel.cpp.
References AdjustLayerProperty(), QmitkDataStorageTreeModelInternalItem::GetChildCount(), mitk::DataNode::GetData(), QmitkDataStorageTreeModelInternalItem::GetDataNode(), QmitkDataStorageTreeModelInternalItem::GetIndex(), mitk::RenderingManager::GetInstance(), QmitkDataStorageTreeModelInternalItem::GetParent(), IndexFromTreeItem(), mitk::RenderingManager::InitializeViews(), QmitkDataStorageTreeModelInternalItem::InsertChild(), mitk::WeakPointer< T >::IsExpired(), mitk::WeakPointer< T >::Lock(), m_AllowHierarchyChange, m_BlockDataStorageEvents, m_DataStorage, m_Root, min(), QmitkDataStorageTreeModelInternalItem::RemoveChild(), mitk::RenderingManager::REQUEST_UPDATE_ALL, mitk::RenderingManager::RequestUpdateAll(), QmitkMimeTypes::ToDataNodePtrList(), ToTreeItemPtrList(), and TreeItemFromIndex().
|
override |
Definition at line 94 of file QmitkDataStorageTreeModel.cpp.
const mitk::DataStorage::Pointer QmitkDataStorageTreeModel::GetDataStorage | ( | ) | const |
Get the DataStorage.
Definition at line 67 of file QmitkDataStorageTreeModel.cpp.
References mitk::WeakPointer< T >::Lock(), and m_DataStorage.
QModelIndex QmitkDataStorageTreeModel::GetIndex | ( | const mitk::DataNode * | node | ) | const |
Definition at line 821 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModelInternalItem::Find(), IndexFromTreeItem(), and m_Root.
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
Definition at line 62 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModelInternalItem::GetDataNode(), and TreeItemFromIndex().
Referenced by QmitkDataStorageFilterProxyModel::filterAcceptsRow().
|
virtual |
Returns a copy of the node-vector that is shown by this model
Definition at line 801 of file QmitkDataStorageTreeModel.cpp.
References m_Root, and TreeToNodeSet().
Referenced by QmitkDataManagerView::NodeSelectionChanged().
|
protected |
Returns the first element in the nodes sources list (if available) or 0
Definition at line 711 of file QmitkDataStorageTreeModel.cpp.
References mitk::WeakPointer< T >::Lock(), and m_DataStorage.
Referenced by SetDataStorageDeleted().
|
inline |
Get the top placement flag
Definition at line 73 of file QmitkDataStorageTreeModel.h.
References AddNode.
Referenced by QmitkDataManagerView::OnPreferencesChanged().
|
override |
Definition at line 493 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModelInternalItem::GetDataNode(), and m_Root.
|
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)
Definition at line 72 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModelInternalItem::GetChild(), and m_Root.
Referenced by SetDataStorageDeleted(), and SetNodeModified().
|
protected |
Gives a ModelIndex for the Tree Item
Definition at line 793 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModelInternalItem::GetIndex(), and m_Root.
Referenced by dropMimeData(), GetIndex(), and SetPlaceNewNodesOnTop().
|
override |
Definition at line 371 of file QmitkDataStorageTreeModel.cpp.
References mimeDataFromModelIndexList().
|
static |
Definition at line 376 of file QmitkDataStorageTreeModel.cpp.
References QmitkMimeTypes::DataNodePtrs, QmitkMimeTypes::DataStorageTreeItemPtrs, and QmitkDataStorageTreeModelInternalItem::GetDataNode().
Referenced by mimeData().
|
override |
Definition at line 363 of file QmitkDataStorageTreeModel.cpp.
|
signal |
Referenced by QmitkDataManagerView::CreateQtPartControl(), and setData().
|
override |
Definition at line 112 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModelInternalItem::GetIndex(), QmitkDataStorageTreeModelInternalItem::GetParent(), m_Root, and TreeItemFromIndex().
|
virtual |
Removes a node from this model. Also removes any event listener from the node.
Definition at line 687 of file QmitkDataStorageTreeModel.cpp.
References m_BlockDataStorageEvents.
Referenced by SetDataStorage().
|
override |
Definition at line 88 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModelInternalItem::GetChildCount(), and TreeItemFromIndex().
Referenced by QmitkDataManagerView::NodeTreeViewRowsInserted(), and QmitkDataManagerView::NodeTreeViewRowsRemoved().
void QmitkDataStorageTreeModel::SetAllowHierarchyChange | ( | bool | allowHierarchyChange | ) |
Set whether to allow hierarchy changes by dragging and dropping.
Definition at line 877 of file QmitkDataStorageTreeModel.cpp.
References m_AllowHierarchyChange.
Referenced by QmitkDataManagerView::CreateQtPartControl(), and QmitkDataManagerView::OnPreferencesChanged().
|
override |
Definition at line 723 of file QmitkDataStorageTreeModel.cpp.
References mitk::DataNode::GetData(), QmitkDataStorageTreeModelInternalItem::GetDataNode(), mitk::RenderingManager::GetInstance(), nodeVisibilityChanged(), mitk::RenderingManager::RequestUpdateAll(), mitk::DataNode::SetStringProperty(), mitk::DataNode::SetVisibility(), and TreeItemFromIndex().
void QmitkDataStorageTreeModel::SetDataStorage | ( | mitk::DataStorage * | _DataStorage | ) |
Sets the DataStorage. The whole model will be resetted.
Definition at line 501 of file QmitkDataStorageTreeModel.cpp.
References AddNode(), QmitkDataStorageTreeModelInternalItem::Delete(), mitk::WeakPointer< T >::IsExpired(), mitk::WeakPointer< T >::Lock(), m_DataStorage, m_Predicate, m_Root, mitk::DataNode::New(), RemoveNode(), SetDataStorageDeleted(), SetNodeModified(), and Update().
Referenced by QmitkDataStorageTreeModel(), SetDataStorageDeleted(), and ~QmitkDataStorageTreeModel().
void QmitkDataStorageTreeModel::SetDataStorageDeleted | ( | ) |
Notify that the DataStorage was deleted. The whole model will be resetted.
Definition at line 567 of file QmitkDataStorageTreeModel.cpp.
References AddNode(), AdjustLayerProperty(), QmitkDataStorageTreeModelInternalItem::Find(), QmitkDataStorageTreeModelInternalItem::GetChildren(), QmitkDataStorageTreeModelInternalItem::GetIndex(), mitk::DataNode::GetIntProperty(), GetParentNode(), index(), QmitkDataStorageTreeModelInternalItem::InsertChild(), mitk::WeakPointer< T >::IsExpired(), mitk::WeakPointer< T >::Lock(), m_DataStorage, m_PlaceNewNodesOnTop, m_Root, and SetDataStorage().
Referenced by SetDataStorage().
|
override |
Definition at line 754 of file QmitkDataStorageTreeModel.cpp.
|
virtual |
Sets a node to modfified. Called by the DataStorage
Definition at line 695 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModelInternalItem::Find(), QmitkDataStorageTreeModelInternalItem::GetIndex(), QmitkDataStorageTreeModelInternalItem::GetParent(), index(), and m_Root.
Referenced by SetDataStorage().
void QmitkDataStorageTreeModel::SetPlaceNewNodesOnTop | ( | bool | _PlaceNewNodesOnTop | ) |
Set the top placement flag
Definition at line 644 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModelInternalItem::AddChild(), AdjustLayerProperty(), QmitkDataStorageTreeModelInternalItem::Find(), QmitkDataStorageTreeModelInternalItem::GetChildCount(), QmitkDataStorageTreeModelInternalItem::GetChildren(), QmitkDataStorageTreeModelInternalItem::GetIndex(), QmitkDataStorageTreeModelInternalItem::GetParent(), IndexFromTreeItem(), m_PlaceNewNodesOnTop, and m_Root.
Referenced by QmitkDataManagerView::OnPreferencesChanged().
|
override |
Definition at line 138 of file QmitkDataStorageTreeModel.cpp.
|
override |
Definition at line 133 of file QmitkDataStorageTreeModel.cpp.
|
protected |
Definition at line 832 of file QmitkDataStorageTreeModel.cpp.
References QmitkMimeTypes::DataStorageTreeItemPtrs.
Referenced by dropMimeData().
|
protected |
Definition at line 841 of file QmitkDataStorageTreeModel.cpp.
|
protected |
invoked after m_DataStorage or m_Predicate changed
Definition at line 126 of file QmitkDataStorageTreeModel.cpp.
References m_Root.
Referenced by data(), dropMimeData(), GetNode(), parent(), rowCount(), and setData().
|
protected |
Adds all Childs in parent to vec. Before a child is added the function is called recursively
Definition at line 810 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModelInternalItem::GetChild(), QmitkDataStorageTreeModelInternalItem::GetChildCount(), and QmitkDataStorageTreeModelInternalItem::GetDataNode().
Referenced by GetNodeSet().
|
protected |
Adds all Childs in parent to vec. Before a child is added the function is called recursively
Definition at line 782 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModelInternalItem::GetChild(), and QmitkDataStorageTreeModelInternalItem::GetChildCount().
Referenced by AdjustLayerProperty().
|
protected |
Update Tree Model
Regardless the value of this preference, the new nodes must not be inserted at the top now, but at the position according to their layer.
Adjust the layers to ensure that derived nodes are above their sources.
Definition at line 854 of file QmitkDataStorageTreeModel.cpp.
References AdjustLayerProperty(), mitk::WeakPointer< T >::IsExpired(), mitk::WeakPointer< T >::Lock(), m_DataStorage, and m_PlaceNewNodesOnTop.
Referenced by SetDataStorage().
|
static |
Definition at line 45 of file QmitkDataStorageTreeModel.h.
|
static |
Definition at line 46 of file QmitkDataStorageTreeModel.h.
|
static |
Definition at line 47 of file QmitkDataStorageTreeModel.h.
|
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.
Referenced by dropMimeData(), and SetAllowHierarchyChange().
|
protected |
Flag to block the data storage events if nodes are added/removed by this class.
Definition at line 189 of file QmitkDataStorageTreeModel.h.
Referenced by AddNode(), dropMimeData(), and RemoveNode().
|
protected |
Definition at line 183 of file QmitkDataStorageTreeModel.h.
Referenced by AddNode(), dropMimeData(), GetDataStorage(), GetParentNode(), SetDataStorage(), SetDataStorageDeleted(), and Update().
|
protected |
Definition at line 185 of file QmitkDataStorageTreeModel.h.
Referenced by SetDataStorageDeleted(), SetPlaceNewNodesOnTop(), and Update().
|
protected |
Definition at line 184 of file QmitkDataStorageTreeModel.h.
Referenced by SetDataStorage().
|
protected |
Definition at line 186 of file QmitkDataStorageTreeModel.h.
Referenced by AddNode(), AdjustLayerProperty(), dropMimeData(), GetIndex(), GetNodeSet(), headerData(), index(), IndexFromTreeItem(), parent(), SetDataStorage(), SetDataStorageDeleted(), SetNodeModified(), SetPlaceNewNodesOnTop(), TreeItemFromIndex(), and ~QmitkDataStorageTreeModel().