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

Author Committer Branch Timestamp Parent
pinter pinter master 2017-03-07 15:44:02 master c30b08c6
Changeset

ENH: Added long needed basic features made possible by new subject hierarchy design

  • Re-ordering and expanded state are saved in the items, and restored on update
  • Root item handling
  • Subject hierarchy python scripted plugins
  • Various bugfixes related to the above features and subject hierarchy core

Details:

BUG: Fixed subject hierarchy tree root item handling

ENH: Re-select items after drag&drop in subject hierarchy

BUG: Fixed subject hierarchy Register plugin

BUG: Fixed subject hierarchy reordering

It failed when an item was moved up not down

BUG: Fixed issues related to deleting subject hierarchy items

Also fixed the feature in DICOM plugin for converting folders into patients and studies

BUG: Fixed segmentation reparenting and visibility icon updates in SH

BUG: Fixed show/hide in subject hierarchy

ENH: Simplified creating subject hierarchy items

Instead of the Swiss army knife function that could be used to create subject hierarchy items for both data nodes and hierarchies (folder, study, etc.) there are two separate methods for CreateItem. One for creating the pure hierarchy items (folder etc.) and the other for the ones corresponding to data nodes. The latter is for internal use and should not be called.

Also fixed basic DICOM loading

ENH: Deploy scripted plugin in SubjectHierarchyPlugins folder

Previous commit deployed them in individual folders, but for consistency and simplicity, a common folder is better. It is achieved by having the init script import all plugin python files dynamically

ENH: Added python scripted subject hierarchy plugins

For SegmentEditor (that replaces the core SegmentPlugin) and SegmentStatistics. Both are mostly sample plugins, to demonstrate how to write scripted plugins, and as a proof of concept for multiple scripted plugins built.
The reason why SegmentEditorSubjectHierarchyPlugins subfolder was chosen for source and install path: 1. If the plugin is added with the module file, it is attempted to be recognized as a module and will throw error 2. If a common SubjectHierarchyPlugins folder is created in each module having a scripted plugin, the init files are not merged, but the last one overwrites the previous ones, and only one plugin is exposed.

ENH: Added subject hierarchy item info in SH module widget

It contains a label that displays the item's self print string.
Level and owner plugin info was removed from the tooltip, as the info box shows that, and it's not needed for normal usage (mostly for debugging)

BUG: Root item restored after complete subject hierarchy update

ENH: Subject hierarchy item expanded state handling added

BUG: Prevent crash when closing Slicer

BUG: Allow dropping subject hierarchy items on empty area

In which case it is reparented under the scene

ENH: Added item reordering support

Also fixed model update when item is reparented programmatically

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

mod - Base/QTCLI/vtkSlicerCLIModuleLogic.cxx Diff File
mod - Libs/MRML/Core/vtkMRMLSubjectHierarchyNode.cxx Diff File
mod - Libs/MRML/Core/vtkMRMLSubjectHierarchyNode.h Diff File
mod - Modules/Loadable/Segmentations/SubjectHierarchyPlugins/qSlicerSubjectHierarchySegmentationsPlugin.cxx Diff File
mod - Modules/Loadable/Segmentations/SubjectHierarchyPlugins/qSlicerSubjectHierarchySegmentsPlugin.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Logic/vtkSlicerSubjectHierarchyModuleLogic.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Logic/vtkSlicerSubjectHierarchyModuleLogic.h Diff File
mod - Modules/Loadable/SubjectHierarchy/Resources/UI/qSlicerSubjectHierarchyModule.ui Diff File
mod - Modules/Loadable/SubjectHierarchy/Testing/Cxx/vtkSlicerSubjectHierarchyModuleLogicTest.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/CMakeLists.txt Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/Python/CMakeLists.txt Diff File
add - Modules/Loadable/SubjectHierarchy/Widgets/Python/__init__.py Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qMRMLSortFilterSubjectHierarchyProxyModel.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qMRMLSubjectHierarchyModel.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qMRMLSubjectHierarchyModel.h Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qMRMLSubjectHierarchyModel_p.h Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qMRMLSubjectHierarchyTreeView.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qMRMLSubjectHierarchyTreeView.h Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qMRMLTransformItemDelegate.h Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyAbstractPlugin.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyAbstractPlugin.h Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyChartsPlugin.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyDefaultPlugin.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyDefaultPlugin.h Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyFolderPlugin.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyPluginHandler.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyPluginHandler.h Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyPluginLogic.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyRegisterPlugin.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyRegisterPlugin.h Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyScriptedPlugin.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchyScriptedPlugin.h Diff File
rm - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchySegmentPlugin.cxx Diff File
rm - Modules/Loadable/SubjectHierarchy/Widgets/qSlicerSubjectHierarchySegmentPlugin.h Diff File
mod - Modules/Loadable/SubjectHierarchy/qSlicerSubjectHierarchyModuleWidget.cxx Diff File
mod - Modules/Loadable/SubjectHierarchy/qSlicerSubjectHierarchyModuleWidget.h Diff File
mod - Modules/Loadable/Tables/SubjectHierarchyPlugins/qSlicerSubjectHierarchyTablesPlugin.cxx Diff File
mod - Modules/Loadable/Volumes/SubjectHierarchyPlugins/qSlicerSubjectHierarchyLabelMapsPlugin.cxx Diff File
mod - Modules/Loadable/Volumes/SubjectHierarchyPlugins/qSlicerSubjectHierarchyVolumesPlugin.cxx Diff File
mod - Modules/Scripted/DICOMLib/DICOMPlugin.py Diff File
mod - Modules/Scripted/DICOMLib/SubjectHierarchyPlugins/qSlicerSubjectHierarchyDICOMPlugin.cxx Diff File
mod - Modules/Scripted/DICOMPlugins/DICOMScalarVolumePlugin.py Diff File
mod - Modules/Scripted/SegmentEditor/CMakeLists.txt Diff File
mod - Modules/Scripted/SegmentEditor/SegmentEditor.py Diff File
add - Modules/Scripted/SegmentEditor/SubjectHierarchyPlugins/CMakeLists.txt Diff File
add - Modules/Scripted/SegmentEditor/SubjectHierarchyPlugins/SegmentEditorSubjectHierarchyPlugin.py Diff File
mod - Modules/Scripted/SegmentStatistics/CMakeLists.txt Diff File
mod - Modules/Scripted/SegmentStatistics/SegmentStatistics.py Diff File
add - Modules/Scripted/SegmentStatistics/SubjectHierarchyPlugins/CMakeLists.txt Diff File
add - Modules/Scripted/SegmentStatistics/SubjectHierarchyPlugins/SegmentStatisticsSubjectHierarchyPlugin.py Diff File