Import 2017-06-07 23:51:09: master ed845174

Author Committer Branch Timestamp Parent
pinter pinter master 2017-03-07 15:47:53 master db509ec9
Changeset

ENH: Add support for model hierarchies in subject hierarchy

Handled cases:

Scene changes

  1. Hierarchy node added
    -> Add folder item
    ( folderPlugin::addNodeToSubjectHierarchy )

  2. New parent is set to a hierarchy node
    (Modified event for both old and new parents)
    newParent.vtkMRMLHierarchyNode::ChildNodeAddedEvent(hierarchyNode)
    -> Set parent of item for hierarchy node to item for new parent
    ( folderPlugin::onMRMLHierarchyNodeChildNodeAdded )

  3. Scene import ends
    -> Add each hierarchy node to subject hierarchy and resolve hierarchy on each added item
    ( addSupportedDataNodesToSubjectHierarchy,
    folderPlugin::addNodeToSubjectHierarchy,
    resolveHierarchyForItem )

  4. Data node is associated to a hierarchy node
    dataNode.vtkMRMLNode::HierarchyModifiedEvent
    (Should only happen if building hierarchy programmaticaly from scratch)
    Remove hierarchy node's item from subject hierarchy
    ( folderPlugin::onDataNodeAssociatedToHierarchyNode )

Subject hierarchy changes

  1. Item is reparented under an item with node hierarchy
    1a. New parent has associated hierarchy node
    -> Set parent item's hierarchy node as parent of reparented item's hierarchy node
    ( folderPlugin::reparentItemInsideSubjectHierarchy )
    1b. Otherwise
    -> Set scene as parent of reparented item's hierarchy node
    ( folderPlugin::reparentItemInsideSubjectHierarchy )

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25753 3bd1e089-480b-0410-8dfb-8563597acbee

mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyAbstractPlugin.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyFolderPlugin.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyFolderPlugin.h Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyPluginLogic.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyPluginLogic.h Diff File