ENH: Expose qMRMLTreeView scene model and proxy model to python.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23228 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Remove forgotten debug statement in installExtension

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23229 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Exclude json extension from git hook line lengths check

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23230 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix failing qSlicerExtensionsManagerModelTest

Commit r23200 added icon URL to extension metadata and commit 9dc157 [1]
updated the server to return the iconurl, this commit
fixes the server mock data also adding iconurl .

[1] https://github.com/midasplatform/slicerpackages/commit/9dc1575d2bf9d3c053700f541cdb5034f8328eee

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23231 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Improved scripted module loading error message

It happened multiple times in our group that a developer spent a lot of time trying to find errors in a scripted module, simplify the class, make it more similar to the template, etc. to find what can be wrong in the class because "Failed to load scripted pythonqt module class definition" error was reported. Then it turned out that the module class is perfect, only the name does not match the filename.

Implemented fix: changed the error message to "class ... not found in file ..." to make it clear that the problem is not in implementation of the class but in the name.

From: Andras Lasso <lasso@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23232 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fixed DICOM browser persistence

If the DICOM browser persistent option is enabled (usually when the DICOM browser is displayed on a second monitor) then the browser should be kept open when an image is loaded or the user opens another module.
The persistent flag was observed almost everywhere where it was needed, except at the end of the image loading step.

From: Andras Lasso <lasso@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23233 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Allow users to acknowledge all DICOM loading errors with a single click

Problem: Each DICOM loading error was displayed in a separate popup, which
 required the user to click as many times as many series failed to load.
In some cases there are a large number of failures (for example,
experimental MRI sequences), which makes loading of a complete study very
frustrating (need to click 30 times, waiting several seconds between each).

Solution: Changed the error reporting to collect all errors and show it to the user at the end of the loading in a single error popup.

From: Andras Lasso <lasso@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23234 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Subject hierarchy module added

This is the first step of integrating Subject hierarchy into Slicer core.
Next steps include moving subject hierarchy plugins to their related
modules and making DICOM import plugins add loaded objects in the
hierarchy.
More information: http://www.slicer.org/slicerWiki/index.php/Documentation/Labs/SubjectHierarchy

From: Csaba Pinter <csaba.pinter@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23235 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Node attribute table view and widget moved to MRMLWidgets

Now both Data and Subject hierarchy modules use qMRMLNodeAttributeTableView and
qMRMLNodeAttributeTableWidget, so they have been moved from Data module widgets to MRMLWidgets

From: Csaba Pinter <csaba.pinter@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23236 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Moved core module subject hierarchy plugins to related module

Subject hierarchy plugins project contained plugins for core modules
Markups, Models and Volumes. Those plugins are now in the
SubjectHierarchyPlugins subdirectory of those loadable modules.
Also the subject hierarchy support moved from
SlicerRT/DicomRtImport/DicomRtImportPlugin.py to
DICOMScalarVolumePlugin.py. Now the loaded DICOM scalar volumes are
automatically added to subject hierarchy.

From: Csaba Pinter <csaba.pinter@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23237 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Sank addSeriesInSubjectHierarchy function down to abstract DICOMPlugin

The addSeriesInSubjectHierarchy function (which was in DICOMScalarVolumePlugin so far) adds
the loaded node to subject hierarchy to the proper patient (subject) and study according to
the DICOM tags from the first file referenced in the associated loadable. This function is
now accessible from all the DICOM plugins. It needs to be called after the loaded object is
created in the load() function. Now it is called by DICOMDiffusionVolumePlugin too.

From: Csaba Pinter <csaba.pinter@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23238 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: vtkMRMLHierarchyNode methods made virtual

Two methods in vtkMRMLHierarchyNode made virtual. GetAssociatedChildrendNodes contained
a typo so it is now called GetAssociatedChildrenNodes. Subject hierarchy volumes plugin
now can add volumes from potential list to tree

From: Csaba Pinter <csaba.pinter@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23239 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: MRMLCLI_INCLUDE_DIRS CMake variable exported

It is needed for some subject hierarchy plugins to include the MRMLCLI indlude
directories, and by exporting this variable it is possible to do it without
manually constructing the paths in the CMakeLists files

From: Csaba Pinter <csaba.pinter@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23240 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Subject hierarchy python tests moved to SlicerApp

As the subject hierarchy tests cover multiple modules, they have been moved
from the SubjectHierarchy folder to Applications/SlicerApp/Testing/Python;
Occasional SlicerRT strings removed/replaced in subject hierarchy code
(mostly include dir comments)

From: Csaba Pinter <csaba.pinter@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23241 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Moved subject hierarchy base plugin classes in widgets

In order to subject hierarchy plugins be accessible from extensions,
the include directories need to be exported. So that the current
infrastructure can be used, all subject hierarchy plugin
classes (abstract, handler, core plugins not related to modules) were
moved from Plugins to Widgets. Plugins subdirectory thus became
unnecessary and removed.

From: Csaba Pinter <csaba.pinter@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23242 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fixed Mac and Linux build error

Subject hierarchy widget designer plugins were deployed to Slicer_DIR/bin,
which broke the Linux and Mac build. This explicit output directory
setting has been removed.

From: Csaba Pinter <csaba.pinter@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23243 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fixed subject hierarchy core plugins self test

Which failed due to renaming of GetAssociatedDataNode to GetAssociatedNode in
vtkMRMLSubjectHierarchyNode. It has been renamed, because by making
vtkMRMLHierarchyNode::GetAssociatedNode virtual, it became possible to override
it in subject hierarchy so that it can handle nested associations.

From: Csaba Pinter <csaba.pinter@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23244 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: SubjectHierarchy - Fix build warnings and indentation

From: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23245 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Added error reporting for scene file writing

The problem was that when the scene file (.mrml) saving
failed (e.g., because target was a read-only directory) then
no error was reported.

No error was reported for the sceneview thumbnail image
saving failure either.

From: Andras Lasso <lasso@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23246 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Improve readability of subject hierarchy logic test using vtkNew

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