#include <QmitkDataStorageTreeModel.h>

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 std::vector < mitk::DataNode * > | GetNodeSet () const |
| const mitk::DataStorage::Pointer | GetDataStorage () const |
| void | SetPlaceNewNodesOnTop (bool _PlaceNewNodesOnTop) |
| Qt::ItemFlags | flags (const QModelIndex &index) const |
| QVariant | data (const QModelIndex &index, int role=Qt::DisplayRole) const |
| QVariant | headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const |
| int | rowCount (const QModelIndex &parent=QModelIndex()) const |
| int | columnCount (const QModelIndex &parent=QModelIndex()) const |
| QModelIndex | index (int row, int column, const QModelIndex &parent=QModelIndex()) const |
| QModelIndex | parent (const QModelIndex &index) const |
| bool | setData (const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) |
| bool | setHeaderData (int section, Qt::Orientation orientation, const QVariant &value, int role=Qt::EditRole) |
| bool | dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) |
| Qt::DropActions | supportedDropActions () const |
| QMimeData * | mimeData (const QModelIndexList &indexes) const |
| 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 |
Static Public Attributes | |
| static const std::string | COLUMN_NAME |
| static const std::string | COLUMN_TYPE |
| static const std::string | COLUMN_VISIBILITY |
Protected Member Functions | |
| 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, std::vector< mitk::DataNode * > &vec) const |
Protected Attributes | |
| mitk::WeakPointer < mitk::DataStorage > | m_DataStorage |
| mitk::NodePredicateBase::Pointer | m_Predicate |
| bool | m_PlaceNewNodesOnTop |
| TreeItem * | m_Root |
Definition at line 35 of file QmitkDataStorageTreeModel.h.
| QmitkDataStorageTreeModel::QmitkDataStorageTreeModel | ( | mitk::DataStorage * | _DataStorage, |
| bool | _PlaceNewNodesOnTop = false, |
||
| QObject * | parent = 0 |
||
| ) |
Definition at line 35 of file QmitkDataStorageTreeModel.cpp.
References m_Predicate, mitk::NodePredicateAnd::New(), mitk::BoolProperty::New(), mitk::NodePredicateProperty::New(), mitk::NodePredicateNot::New(), mitk::NodePredicateData::New(), and SetDataStorage().
: QAbstractItemModel(parent) , m_DataStorage(0) , m_PlaceNewNodesOnTop(_PlaceNewNodesOnTop) , m_Root(0) { mitk::NodePredicateData::Pointer dataIsNull = mitk::NodePredicateData::New(0); mitk::NodePredicateNot::Pointer dataIsNotNull = mitk::NodePredicateNot::New(dataIsNull);// Show only nodes that really contain dat mitk::NodePredicateProperty::Pointer isHelperObject = mitk::NodePredicateProperty::New("helper object" , mitk::BoolProperty::New(true)); mitk::NodePredicateNot::Pointer isNotHelperObject = mitk::NodePredicateNot::New(isHelperObject);// Show only nodes that really contain dat mitk::NodePredicateAnd::Pointer dataIsNotNullAndIsNotHelperObject = mitk::NodePredicateAnd::New(dataIsNotNull, isNotHelperObject); m_Predicate = dataIsNotNullAndIsNotHelperObject; this->SetDataStorage(_DataStorage); }
| QmitkDataStorageTreeModel::~QmitkDataStorageTreeModel | ( | ) |
Definition at line 61 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModel::TreeItem::Delete(), m_Root, and SetDataStorage().
{
// set data storage to 0 = remove all listeners
this->SetDataStorage(0);
m_Root->Delete(); m_Root = 0;
}
| 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 308 of file QmitkDataStorageTreeModel.cpp.
References AdjustLayerProperty(), QmitkDataStorageTreeModel::TreeItem::Find(), QmitkDataStorageTreeModel::TreeItem::GetChildCount(), QmitkDataStorageTreeModel::TreeItem::GetIndex(), GetParentNode(), index(), QmitkDataStorageTreeModel::TreeItem::InsertChild(), mitk::WeakPointer< TObjectType >::IsNull(), m_DataStorage, m_PlaceNewNodesOnTop, m_Predicate, and m_Root.
Referenced by SetDataStorage().
{
if(node == 0
|| m_DataStorage.IsNull()
|| !m_DataStorage->Exists(node)
|| !m_Predicate->CheckNode(node)
|| m_Root->Find(node) != 0)
return;
// find out if we have a root node
TreeItem* parentTreeItem = m_Root;
QModelIndex index;
mitk::DataNode* parentDataNode = this->GetParentNode(node);
if(parentDataNode) // no top level data node
{
parentTreeItem = m_Root->Find(parentDataNode); // find the corresponding tree item
if(!parentTreeItem)
{
this->AddNode(parentDataNode);
parentTreeItem = m_Root->Find(parentDataNode);
if(!parentTreeItem)
return;
}
// get the index of this parent with the help of the grand parent
index = this->createIndex(parentTreeItem->GetIndex(), 0, parentTreeItem);
}
// add node
if(m_PlaceNewNodesOnTop)
{
// emit beginInsertRows event
beginInsertRows(index, 0, 0);
parentTreeItem->InsertChild(new TreeItem(
const_cast<mitk::DataNode*>(node)), 0);
}
else
{
beginInsertRows(index, parentTreeItem->GetChildCount()
, parentTreeItem->GetChildCount());
new TreeItem(const_cast<mitk::DataNode*>(node), parentTreeItem);
}
// emit endInsertRows event
endInsertRows();
this->AdjustLayerProperty();
}
| 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 461 of file QmitkDataStorageTreeModel.cpp.
References mitk::RenderingManager::GetInstance(), m_Root, and TreeToVector().
Referenced by AddNode(), dropMimeData(), and RemoveNode().
{
std::vector<TreeItem*> vec;
this->TreeToVector(m_Root, vec);
int i = vec.size()-1;
for(std::vector<TreeItem*>::const_iterator it = vec.begin(); it != vec.end(); ++it)
{
(*it)->GetDataNode()->SetIntProperty("layer", i);
--i;
}
mitk::RenderingManager::GetInstance()->RequestUpdateAll();
}
| int QmitkDataStorageTreeModel::columnCount | ( | const QModelIndex & | parent = QModelIndex() ) |
const |
Definition at line 112 of file QmitkDataStorageTreeModel.cpp.
{
return 1;
}
| QVariant QmitkDataStorageTreeModel::data | ( | const QModelIndex & | index, |
| int | role = Qt::DisplayRole |
||
| ) | const |
Definition at line 200 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModel::TreeItem::GetDataNode(), QmitkNodeDescriptorManager::GetDescriptor(), QmitkNodeDescriptor::GetIcon(), QmitkNodeDescriptorManager::GetInstance(), mitk::DataNode::GetName(), mitk::DataNode::IsVisible(), QmitkDataNodeRole, and TreeItemFromIndex().
{
mitk::DataNode* dataNode = this->TreeItemFromIndex(index)->GetDataNode();
// get name of treeItem (may also be edited)
QString nodeName = QString::fromStdString(dataNode->GetName());
if(nodeName.isEmpty())
nodeName = "unnamed";
if (role == Qt::DisplayRole)
return nodeName;
else if(role == Qt::ToolTipRole)
return nodeName;
else if(role == Qt::DecorationRole)
{
QmitkNodeDescriptor* nodeDescriptor
= QmitkNodeDescriptorManager::GetInstance()->GetDescriptor(dataNode);
return nodeDescriptor->GetIcon();
}
else if(role == Qt::CheckStateRole)
{
return dataNode->IsVisible(0);
}
else if(role == QmitkDataNodeRole)
{
return QVariant::fromValue<mitk::DataNode::Pointer>(mitk::DataNode::Pointer(dataNode));
}
return QVariant();
}
| bool QmitkDataStorageTreeModel::dropMimeData | ( | const QMimeData * | data, |
| Qt::DropAction | action, | ||
| int | row, | ||
| int | column, | ||
| const QModelIndex & | parent | ||
| ) |
Definition at line 143 of file QmitkDataStorageTreeModel.cpp.
References AdjustLayerProperty(), QmitkDataStorageTreeModel::TreeItem::GetChildCount(), QmitkDataStorageTreeModel::TreeItem::GetIndex(), QmitkDataStorageTreeModel::TreeItem::GetParent(), index(), IndexFromTreeItem(), QmitkDataStorageTreeModel::TreeItem::IndexOfChild(), QmitkDataStorageTreeModel::TreeItem::InsertChild(), m_Root, QmitkDataStorageTreeModel::TreeItem::RemoveChild(), and TreeItemFromIndex().
{
if (action == Qt::IgnoreAction)
return true;
if(data->hasFormat("application/x-qabstractitemmodeldatalist"))
{
QString arg = QString(data->data("application/x-qabstractitemmodeldatalist").data());
long val = arg.toLong();
TreeItem* draggedItem = static_cast<TreeItem *>((void*)val);
TreeItem* dropItem = this->TreeItemFromIndex(parent);
TreeItem* parentItem = dropItem->GetParent();
if(dropItem == m_Root) // item was dropped onto empty space
parentItem = m_Root;
if(draggedItem != dropItem && draggedItem->GetParent() == parentItem) // dragging is only allowed within the same parent
{
QModelIndex parentModelIndex = this->IndexFromTreeItem(parentItem);
// remove dragged item
this->beginRemoveRows(parentModelIndex, draggedItem->GetIndex(), draggedItem->GetIndex());
parentItem->RemoveChild(draggedItem);
endRemoveRows();
// now insert it again at the drop item position
int index = parentItem->IndexOfChild(dropItem);
if(dropItem == m_Root)
index = parentItem->GetChildCount();
beginInsertRows(parentModelIndex, index, index);
// add node
parentItem->InsertChild( draggedItem, index );
// emit endInsertRows event
endInsertRows();
this->AdjustLayerProperty();
}
}
return false;
}
| Qt::ItemFlags QmitkDataStorageTreeModel::flags | ( | const QModelIndex & | index ) | const |
Definition at line 103 of file QmitkDataStorageTreeModel.cpp.
{
if (index.isValid())
return Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable
| Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled;
else
return Qt::ItemIsDropEnabled;
}
| const mitk::DataStorage::Pointer QmitkDataStorageTreeModel::GetDataStorage | ( | ) | const |
Get the DataStorage.
Definition at line 73 of file QmitkDataStorageTreeModel.cpp.
References mitk::WeakPointer< TObjectType >::GetPointer(), and m_DataStorage.
{
return m_DataStorage.GetPointer();
}
| QModelIndex QmitkDataStorageTreeModel::GetIndex | ( | const mitk::DataNode * | node ) | const |
Definition at line 515 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModel::TreeItem::Find(), IndexFromTreeItem(), and m_Root.
Referenced by QmitkDataManagerView::SelectionChanged().
{
if(m_Root)
{
TreeItem* item = m_Root->Find(node);
if(item)
return this->IndexFromTreeItem(item);
}
return QModelIndex();
}
| 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 68 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModel::TreeItem::GetDataNode(), and TreeItemFromIndex().
Referenced by QmitkDataManagerView::ColorActionChanged(), QmitkDataManagerView::ColorChanged(), QmitkDataManagerView::GetSelectedNodes(), QmitkDataManagerView::NodeTableViewContextMenuRequested(), QmitkDataManagerView::OpacityActionChanged(), QmitkDataManagerView::OpacityChanged(), QmitkDataManagerView::RemoveSelectedNodes(), QmitkDataManagerView::SaveSelectedNodes(), QmitkDataManagerView::SurfaceRepresentationActionToggled(), QmitkDataManagerView::SurfaceRepresentationMenuAboutToShow(), QmitkDataManagerView::TextureInterpolationChanged(), and QmitkDataManagerView::TextureInterpolationToggled().
{
return this->TreeItemFromIndex(index)->GetDataNode();
}
| std::vector< mitk::DataNode * > QmitkDataStorageTreeModel::GetNodeSet | ( | ) | const [virtual] |
Returns a copy of the node-vector that is shown by this model
Definition at line 495 of file QmitkDataStorageTreeModel.cpp.
References m_Root, and TreeToNodeSet().
Referenced by QmitkDataManagerView::MakeAllNodesInvisible(), QmitkDataManagerView::NodeSelectionChanged(), and QmitkDataManagerView::ShowOnlySelectedNodes().
{
std::vector<mitk::DataNode*> vec;
if(m_Root)
this->TreeToNodeSet(m_Root, vec);
return vec;
}
| 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 418 of file QmitkDataStorageTreeModel.cpp.
References m_DataStorage.
Referenced by AddNode().
{
mitk::DataNode* dataNode = 0;
mitk::DataStorage::SetOfObjects::ConstPointer _Sources = m_DataStorage->GetSources(node);
if(_Sources->Size() > 0)
dataNode = _Sources->front();
return dataNode;
}
| QVariant QmitkDataStorageTreeModel::headerData | ( | int | section, |
| Qt::Orientation | orientation, | ||
| int | role = Qt::DisplayRole |
||
| ) | const |
Definition at line 231 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModel::TreeItem::GetDataNode(), and m_Root.
{
if (orientation == Qt::Horizontal && role == Qt::DisplayRole && m_Root)
return QString::fromStdString(m_Root->GetDataNode()->GetName());
return QVariant();
}
| 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)
Definition at line 78 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModel::TreeItem::GetChild(), and m_Root.
Referenced by AddNode(), dropMimeData(), and SetNodeModified().
| QModelIndex QmitkDataStorageTreeModel::IndexFromTreeItem | ( | TreeItem * | item ) | const [protected] |
Gives a ModelIndex for the Tree Item
Definition at line 487 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModel::TreeItem::GetIndex(), and m_Root.
Referenced by dropMimeData(), GetIndex(), and RemoveNode().
{
if(item == m_Root)
return QModelIndex();
else
return this->createIndex(item->GetIndex(), 0, item);
}
| QMimeData * QmitkDataStorageTreeModel::mimeData | ( | const QModelIndexList & | indexes ) | const |
Definition at line 190 of file QmitkDataStorageTreeModel.cpp.
{
QMimeData * ret = new QMimeData;
long a = reinterpret_cast<long>(indexes.at(0).internalPointer());
QString result;
QTextStream(&result) << a;
ret->setData("application/x-qabstractitemmodeldatalist", QByteArray(result.toAscii()));
return ret;
}
| QModelIndex QmitkDataStorageTreeModel::parent | ( | const QModelIndex & | index ) | const |
Definition at line 117 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModel::TreeItem::GetIndex(), QmitkDataStorageTreeModel::TreeItem::GetParent(), m_Root, and TreeItemFromIndex().
{
if (!index.isValid())
return QModelIndex();
TreeItem *childItem = this->TreeItemFromIndex(index);
TreeItem *parentItem = childItem->GetParent();
if (parentItem == m_Root)
return QModelIndex();
return this->createIndex(parentItem->GetIndex(), 0, parentItem);
}
| 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 364 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModel::TreeItem::AddChild(), AdjustLayerProperty(), QmitkDataStorageTreeModel::TreeItem::Find(), QmitkDataStorageTreeModel::TreeItem::GetChildCount(), QmitkDataStorageTreeModel::TreeItem::GetChildren(), QmitkDataStorageTreeModel::TreeItem::GetIndex(), QmitkDataStorageTreeModel::TreeItem::GetParent(), IndexFromTreeItem(), and m_Root.
Referenced by SetDataStorage().
{
if(!m_Root) return;
TreeItem* treeItem = m_Root->Find(node);
if(!treeItem)
return; // return because there is no treeitem containing this node
TreeItem* parentTreeItem = treeItem->GetParent();
QModelIndex parentIndex = this->IndexFromTreeItem(parentTreeItem);
// emit beginRemoveRows event (QModelIndex is empty because we dont have a tree model)
this->beginRemoveRows(parentIndex, treeItem->GetIndex(), treeItem->GetIndex());
// remove node
std::vector<TreeItem*> children = treeItem->GetChildren();
delete treeItem;
// emit endRemoveRows event
endRemoveRows();
// move all children of deleted node into its parent
for ( std::vector<TreeItem*>::iterator it = children.begin()
; it != children.end(); it++)
{
// emit beginInsertRows event
beginInsertRows(parentIndex, parentTreeItem->GetChildCount(), parentTreeItem->GetChildCount());
// add nodes again
parentTreeItem->AddChild(*it);
// emit endInsertRows event
endInsertRows();
}
this->AdjustLayerProperty();
}
| int QmitkDataStorageTreeModel::rowCount | ( | const QModelIndex & | parent = QModelIndex() ) |
const |
Definition at line 96 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModel::TreeItem::GetChildCount(), and TreeItemFromIndex().
{
TreeItem *parentTreeItem = this->TreeItemFromIndex(parent);
return parentTreeItem->GetChildCount();
}
| bool QmitkDataStorageTreeModel::setData | ( | const QModelIndex & | index, |
| const QVariant & | value, | ||
| int | role = Qt::EditRole |
||
| ) |
Definition at line 430 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModel::TreeItem::GetDataNode(), mitk::RenderingManager::GetInstance(), mitk::DataNode::SetStringProperty(), mitk::DataNode::SetVisibility(), and TreeItemFromIndex().
{
mitk::DataNode* dataNode = this->TreeItemFromIndex(index)->GetDataNode();
if(!dataNode)
return false;
if(role == Qt::EditRole && !value.toString().isEmpty())
{
dataNode->SetStringProperty("name", value.toString().toStdString().c_str());
}
else if(role == Qt::CheckStateRole)
{
// Please note: value.toInt() returns 2, independentely from the actual checkstate of the index element.
// Therefore the checkstate is being estimated again here.
QVariant qcheckstate = index.data(Qt::CheckStateRole);
int checkstate = qcheckstate.toInt();
bool isVisible = bool(checkstate);
dataNode->SetVisibility(!isVisible);
mitk::RenderingManager::GetInstance()->RequestUpdateAll();
}
// inform listeners about changes
emit dataChanged(index, index);
return true;
}
| void QmitkDataStorageTreeModel::SetDataStorage | ( | mitk::DataStorage * | _DataStorage ) |
Sets the DataStorage. The whole model will be resetted.
Definition at line 241 of file QmitkDataStorageTreeModel.cpp.
References AddNode(), QmitkDataStorageTreeModel::TreeItem::Delete(), mitk::WeakPointer< TObjectType >::IsNotNull(), m_DataStorage, m_Predicate, m_Root, mitk::DataNode::New(), mitk::WeakPointer< TObjectType >::ObjectDelete, RemoveNode(), SetDataStorageDeleted(), and SetNodeModified().
Referenced by QmitkDataStorageTreeModel(), SetDataStorageDeleted(), and ~QmitkDataStorageTreeModel().
{
if(m_DataStorage != _DataStorage) // dont take the same again
{
if(m_DataStorage.IsNotNull())
{
// remove Listener for the data storage itself
m_DataStorage.ObjectDelete.RemoveListener( mitk::MessageDelegate1<QmitkDataStorageTreeModel
, const itk::Object*>( this, &QmitkDataStorageTreeModel::SetDataStorageDeleted ) );
// remove listeners for the nodes
m_DataStorage->AddNodeEvent.RemoveListener( mitk::MessageDelegate1<QmitkDataStorageTreeModel
, const mitk::DataNode*>( this, &QmitkDataStorageTreeModel::AddNode ) );
m_DataStorage->ChangedNodeEvent.RemoveListener( mitk::MessageDelegate1<QmitkDataStorageTreeModel
, const mitk::DataNode*>( this, &QmitkDataStorageTreeModel::SetNodeModified ) );
m_DataStorage->RemoveNodeEvent.RemoveListener( mitk::MessageDelegate1<QmitkDataStorageTreeModel
, const mitk::DataNode*>( this, &QmitkDataStorageTreeModel::RemoveNode ) );
}
// take over the new data storage
m_DataStorage = _DataStorage;
// delete the old root (if necessary, create new)
if(m_Root)
m_Root->Delete();
mitk::DataNode::Pointer rootDataNode = mitk::DataNode::New();
rootDataNode->SetName("Data Manager");
m_Root = new TreeItem(rootDataNode, 0);
this->reset();
if(m_DataStorage.IsNotNull())
{
// add Listener for the data storage itself
m_DataStorage.ObjectDelete.AddListener( mitk::MessageDelegate1<QmitkDataStorageTreeModel
, const itk::Object*>( this, &QmitkDataStorageTreeModel::SetDataStorageDeleted ) );
// add listeners for the nodes
m_DataStorage->AddNodeEvent.AddListener( mitk::MessageDelegate1<QmitkDataStorageTreeModel
, const mitk::DataNode*>( this, &QmitkDataStorageTreeModel::AddNode ) );
m_DataStorage->ChangedNodeEvent.AddListener( mitk::MessageDelegate1<QmitkDataStorageTreeModel
, const mitk::DataNode*>( this, &QmitkDataStorageTreeModel::SetNodeModified ) );
m_DataStorage->RemoveNodeEvent.AddListener( mitk::MessageDelegate1<QmitkDataStorageTreeModel
, const mitk::DataNode*>( this, &QmitkDataStorageTreeModel::RemoveNode ) );
mitk::DataStorage::SetOfObjects::ConstPointer _NodeSet = m_DataStorage->GetSubset(m_Predicate);
// finally add all nodes to the model
for(mitk::DataStorage::SetOfObjects::const_iterator it=_NodeSet->begin(); it!=_NodeSet->end()
; it++)
{
// save node
this->AddNode(*it);
}
}
}
}
| void QmitkDataStorageTreeModel::SetDataStorageDeleted | ( | const itk::Object * | _DataStorage ) |
Notify that the DataStorage was deleted. The whole model will be resetted.
Definition at line 303 of file QmitkDataStorageTreeModel.cpp.
References SetDataStorage().
Referenced by SetDataStorage().
{
this->SetDataStorage(0);
}
| bool QmitkDataStorageTreeModel::setHeaderData | ( | int | section, |
| Qt::Orientation | orientation, | ||
| const QVariant & | value, | ||
| int | role = Qt::EditRole |
||
| ) |
Definition at line 456 of file QmitkDataStorageTreeModel.cpp.
{
return false;
}
| void QmitkDataStorageTreeModel::SetNodeModified | ( | const mitk::DataNode * | node ) | [virtual] |
Sets a node to modfified. Called by the DataStorage
Definition at line 402 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModel::TreeItem::Find(), QmitkDataStorageTreeModel::TreeItem::GetIndex(), QmitkDataStorageTreeModel::TreeItem::GetParent(), index(), and m_Root.
Referenced by SetDataStorage().
{
TreeItem* treeItem = m_Root->Find(node);
if(!treeItem)
return;
TreeItem* parentTreeItem = treeItem->GetParent();
// as the root node should not be removed one should always have a parent item
if(!parentTreeItem)
return;
QModelIndex index = this->createIndex(treeItem->GetIndex(), 0, treeItem);
// now emit the dataChanged signal
emit dataChanged(index, index);
}
| void QmitkDataStorageTreeModel::SetPlaceNewNodesOnTop | ( | bool | _PlaceNewNodesOnTop ) |
Definition at line 359 of file QmitkDataStorageTreeModel.cpp.
References m_PlaceNewNodesOnTop.
Referenced by QmitkDataManagerView::CreateQtPartControl(), and QmitkDataManagerView::OnPreferencesChanged().
{
m_PlaceNewNodesOnTop = _PlaceNewNodesOnTop;
}
| Qt::DropActions QmitkDataStorageTreeModel::supportedDropActions | ( | ) | const |
Definition at line 138 of file QmitkDataStorageTreeModel.cpp.
{
return Qt::CopyAction | Qt::MoveAction;
}
| QmitkDataStorageTreeModel::TreeItem * QmitkDataStorageTreeModel::TreeItemFromIndex | ( | const QModelIndex & | index ) | const [protected] |
invoked after m_DataStorage or m_Predicate changed
Definition at line 131 of file QmitkDataStorageTreeModel.cpp.
References m_Root.
Referenced by data(), dropMimeData(), GetNode(), parent(), rowCount(), and setData().
| void QmitkDataStorageTreeModel::TreeToNodeSet | ( | TreeItem * | parent, |
| std::vector< mitk::DataNode * > & | vec | ||
| ) | const [protected] |
Adds all Childs in parent to vec. Before a child is added the function is called recursively
Definition at line 504 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModel::TreeItem::GetChild(), QmitkDataStorageTreeModel::TreeItem::GetChildCount(), and QmitkDataStorageTreeModel::TreeItem::GetDataNode().
Referenced by GetNodeSet().
{
TreeItem* current;
for(int i = 0; i<parent->GetChildCount(); ++i)
{
current = parent->GetChild(i);
vec.push_back(current->GetDataNode());
this->TreeToNodeSet(current, vec);
}
}
| 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 476 of file QmitkDataStorageTreeModel.cpp.
References QmitkDataStorageTreeModel::TreeItem::GetChild(), and QmitkDataStorageTreeModel::TreeItem::GetChildCount().
Referenced by AdjustLayerProperty().
{
TreeItem* current;
for(int i = 0; i<parent->GetChildCount(); ++i)
{
current = parent->GetChild(i);
this->TreeToVector(current, vec);
vec.push_back(current);
}
}
const std::string QmitkDataStorageTreeModel::COLUMN_NAME [static] |
Definition at line 39 of file QmitkDataStorageTreeModel.h.
const std::string QmitkDataStorageTreeModel::COLUMN_TYPE [static] |
Definition at line 40 of file QmitkDataStorageTreeModel.h.
const std::string QmitkDataStorageTreeModel::COLUMN_VISIBILITY [static] |
Definition at line 41 of file QmitkDataStorageTreeModel.h.
Definition at line 222 of file QmitkDataStorageTreeModel.h.
Referenced by AddNode(), GetDataStorage(), GetParentNode(), and SetDataStorage().
bool QmitkDataStorageTreeModel::m_PlaceNewNodesOnTop [protected] |
Definition at line 224 of file QmitkDataStorageTreeModel.h.
Referenced by AddNode(), and SetPlaceNewNodesOnTop().
Definition at line 223 of file QmitkDataStorageTreeModel.h.
Referenced by AddNode(), QmitkDataStorageTreeModel(), and SetDataStorage().
TreeItem* QmitkDataStorageTreeModel::m_Root [protected] |
Definition at line 225 of file QmitkDataStorageTreeModel.h.
Referenced by AddNode(), AdjustLayerProperty(), dropMimeData(), GetIndex(), GetNodeSet(), headerData(), index(), IndexFromTreeItem(), parent(), RemoveNode(), SetDataStorage(), SetNodeModified(), TreeItemFromIndex(), and ~QmitkDataStorageTreeModel().
1.7.2