Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
QmitkDataStorageTreeModel Class Reference

#include <QmitkDataStorageTreeModel.h>

Inheritance diagram for QmitkDataStorageTreeModel:
Collaboration diagram for QmitkDataStorageTreeModel:

Classes

class  TreeItem
 

Public Member Functions

 QmitkDataStorageTreeModel (mitk::DataStorage *_DataStorage, bool _PlaceNewNodesOnTop=false, QObject *parent=0)
 
 ~QmitkDataStorageTreeModel ()
 
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 (const itk::Object *_DataStorage)
 
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 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

Definition at line 36 of file QmitkDataStorageTreeModel.h.

Constructor & Destructor Documentation

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

Definition at line 44 of file QmitkDataStorageTreeModel.cpp.

References SetDataStorage().

QmitkDataStorageTreeModel::~QmitkDataStorageTreeModel ( )

Member Function Documentation

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

Definition at line 649 of file QmitkDataStorageTreeModel.cpp.

References mitk::DataStorage::Exists(), QmitkDataStorageTreeModel::TreeItem::Find(), mitk::WeakPointer< TObjectType >::IsNull(), m_BlockDataStorageEvents, m_DataStorage, and m_Root.

Referenced by SetDataStorage().

void QmitkDataStorageTreeModel::AdjustLayerProperty ( )
protected

Adjusts the LayerProperty according to the nodes position

transform the tree into an array and set the layer property descending

Definition at line 776 of file QmitkDataStorageTreeModel.cpp.

References mitk::RenderingManager::GetInstance(), m_Root, mitk::RenderingManager::RequestUpdateAll(), and TreeToVector().

Referenced by dropMimeData().

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

Definition at line 116 of file QmitkDataStorageTreeModel.cpp.

Qt::ItemFlags QmitkDataStorageTreeModel::flags ( const QModelIndex &  index) const
override
const mitk::DataStorage::Pointer QmitkDataStorageTreeModel::GetDataStorage ( ) const

Get the DataStorage.

Definition at line 70 of file QmitkDataStorageTreeModel.cpp.

References mitk::WeakPointer< TObjectType >::GetPointer(), and m_DataStorage.

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

Definition at line 835 of file QmitkDataStorageTreeModel.cpp.

References QmitkDataStorageTreeModel::TreeItem::Find(), IndexFromTreeItem(), and m_Root.

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

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

Definition at line 815 of file QmitkDataStorageTreeModel.cpp.

References m_Root, and TreeToNodeSet().

Referenced by QmitkDataManagerView::MakeAllNodesInvisible(), QmitkDataManagerView::NodeSelectionChanged(), and QmitkDataManagerView::ShowOnlySelectedNodes().

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

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

Definition at line 725 of file QmitkDataStorageTreeModel.cpp.

References mitk::DataStorage::GetSources(), and m_DataStorage.

bool QmitkDataStorageTreeModel::GetPlaceNewNodesOnTopFlag ( )
inline

Get the top placement flag

Definition at line 68 of file QmitkDataStorageTreeModel.h.

Referenced by QmitkDataManagerView::OnPreferencesChanged().

QVariant QmitkDataStorageTreeModel::headerData ( int  section,
Qt::Orientation  orientation,
int  role = Qt::DisplayRole 
) const
override
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)

Definition at line 75 of file QmitkDataStorageTreeModel.cpp.

References QmitkDataStorageTreeModel::TreeItem::GetChild(), and m_Root.

QModelIndex QmitkDataStorageTreeModel::IndexFromTreeItem ( TreeItem item) const
protected

Gives a ModelIndex for the Tree Item

Definition at line 807 of file QmitkDataStorageTreeModel.cpp.

References QmitkDataStorageTreeModel::TreeItem::GetIndex(), and m_Root.

Referenced by dropMimeData(), and GetIndex().

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

Definition at line 378 of file QmitkDataStorageTreeModel.cpp.

References mimeDataFromModelIndexList().

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

Definition at line 370 of file QmitkDataStorageTreeModel.cpp.

QModelIndex QmitkDataStorageTreeModel::parent ( const QModelIndex &  index) const
override
void QmitkDataStorageTreeModel::RemoveNode ( const mitk::DataNode node)
virtual

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

Definition at line 701 of file QmitkDataStorageTreeModel.cpp.

References m_BlockDataStorageEvents.

Referenced by SetDataStorage().

int QmitkDataStorageTreeModel::rowCount ( const QModelIndex &  parent = QModelIndex()) const
override
void QmitkDataStorageTreeModel::SetAllowHierarchyChange ( bool  allowHierarchyChange)

Set whether to allow hierarchy changes by dragging and dropping.

Definition at line 1007 of file QmitkDataStorageTreeModel.cpp.

References m_AllowHierarchyChange.

Referenced by QmitkDataManagerView::CreateQtPartControl(), and QmitkDataManagerView::OnPreferencesChanged().

bool QmitkDataStorageTreeModel::setData ( const QModelIndex &  index,
const QVariant &  value,
int  role = Qt::EditRole 
)
override
void QmitkDataStorageTreeModel::SetDataStorageDeleted ( const itk::Object *  _DataStorage)

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

Definition at line 600 of file QmitkDataStorageTreeModel.cpp.

References SetDataStorage().

Referenced by SetDataStorage().

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

Definition at line 768 of file QmitkDataStorageTreeModel.cpp.

void QmitkDataStorageTreeModel::SetNodeModified ( const mitk::DataNode node)
virtual
void QmitkDataStorageTreeModel::SetPlaceNewNodesOnTop ( bool  _PlaceNewNodesOnTop)

Set the top placement flag

Definition at line 658 of file QmitkDataStorageTreeModel.cpp.

References m_PlaceNewNodesOnTop.

Referenced by QmitkDataManagerView::CreateQtPartControl(), and QmitkDataManagerView::OnPreferencesChanged().

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

Definition at line 147 of file QmitkDataStorageTreeModel.cpp.

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

Definition at line 142 of file QmitkDataStorageTreeModel.cpp.

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

Definition at line 846 of file QmitkDataStorageTreeModel.cpp.

References QmitkMimeTypes::DataStorageTreeItemPtrs.

Referenced by dropMimeData().

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

Definition at line 855 of file QmitkDataStorageTreeModel.cpp.

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

invoked after m_DataStorage or m_Predicate changed

Definition at line 135 of file QmitkDataStorageTreeModel.cpp.

References m_Root.

Referenced by data(), dropMimeData(), flags(), GetNode(), parent(), rowCount(), and setData().

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

Definition at line 824 of file QmitkDataStorageTreeModel.cpp.

References QmitkDataStorageTreeModel::TreeItem::GetChild(), QmitkDataStorageTreeModel::TreeItem::GetChildCount(), and QmitkDataStorageTreeModel::TreeItem::GetDataNode().

Referenced by GetNodeSet().

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

Definition at line 796 of file QmitkDataStorageTreeModel.cpp.

References QmitkDataStorageTreeModel::TreeItem::GetChild(), and QmitkDataStorageTreeModel::TreeItem::GetChildCount().

Referenced by AdjustLayerProperty().

void QmitkDataStorageTreeModel::Update ( )
protected

Member Data Documentation

const std::string QmitkDataStorageTreeModel::COLUMN_NAME
static

Definition at line 40 of file QmitkDataStorageTreeModel.h.

const std::string QmitkDataStorageTreeModel::COLUMN_TYPE
static

Definition at line 41 of file QmitkDataStorageTreeModel.h.

const std::string QmitkDataStorageTreeModel::COLUMN_VISIBILITY
static

Definition at line 42 of file QmitkDataStorageTreeModel.h.

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 258 of file QmitkDataStorageTreeModel.h.

Referenced by dropMimeData(), and SetAllowHierarchyChange().

bool QmitkDataStorageTreeModel::m_BlockDataStorageEvents
protected

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

Definition at line 251 of file QmitkDataStorageTreeModel.h.

Referenced by AddNode(), dropMimeData(), and RemoveNode().

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

Definition at line 247 of file QmitkDataStorageTreeModel.h.

Referenced by SetPlaceNewNodesOnTop().

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

Definition at line 246 of file QmitkDataStorageTreeModel.h.

Referenced by SetDataStorage().


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