MCPcopy Create free account
hub / github.com/MITK/MITK / RemoveNodeInternal

Method RemoveNodeInternal

Modules/QtWidgets/src/QmitkDataStorageTreeModel.cpp:657–693  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

655}
656
657void QmitkDataStorageTreeModel::RemoveNodeInternal(const mitk::DataNode *node)
658{
659 if (!m_Root)
660 return;
661
662 TreeItem *treeItem = m_Root->Find(node);
663 if (!treeItem)
664 return; // return because there is no treeitem containing this node
665
666 TreeItem *parentTreeItem = treeItem->GetParent();
667 QModelIndex parentIndex = this->IndexFromTreeItem(parentTreeItem);
668
669 // emit beginRemoveRows event (QModelIndex is empty because we dont have a tree model)
670 this->beginRemoveRows(parentIndex, treeItem->GetIndex(), treeItem->GetIndex());
671
672 // remove node
673 std::vector<TreeItem*> children = treeItem->GetChildren();
674 delete treeItem;
675
676 // emit endRemoveRows event
677 endRemoveRows();
678
679 // move all children of deleted node into its parent
680 for (std::vector<TreeItem*>::iterator it = children.begin(); it != children.end(); it++)
681 {
682 // emit beginInsertRows event
683 beginInsertRows(parentIndex, parentTreeItem->GetChildCount(), parentTreeItem->GetChildCount());
684
685 // add nodes again
686 parentTreeItem->AddChild(*it);
687
688 // emit endInsertRows event
689 endInsertRows();
690 }
691
692 this->AdjustLayerProperty();
693}
694
695void QmitkDataStorageTreeModel::RemoveNode(const mitk::DataNode *node)
696{

Callers 1

RemoveNodeMethod · 0.95

Calls 10

IndexFromTreeItemMethod · 0.95
AdjustLayerPropertyMethod · 0.95
FindMethod · 0.45
GetParentMethod · 0.45
GetIndexMethod · 0.45
GetChildrenMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
GetChildCountMethod · 0.45
AddChildMethod · 0.45

Tested by

no test coverage detected