BUG: Ensure MultiVolume modules work with VTK 5 and 6

This commit updates the modules to check for the version
of VTK (using `vtk.VTK_MAJOR_VERSION`). This is required
because the MacOSX factory is still building against VTK5.

For more details see:

  fedorov/MultiVolumeExplorer@1053c40
  fedorov/MultiVolumeImporter@351226a

From: Andrey Fedorov <fedorov@bwh.harvard.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23480 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Ensure extension wizard can find git executable provided by Git Bash

This commit explicit set the environment variable "GIT_PYTHON_GIT_EXECUTABLE"
to ensure GitPython finds and uses the git executable provided by Git Bash.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23481 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Properly serialize python paths when installing extension. Fixes #3772

Following r23036 environment variable specifying list of path were
handled differently. This commit ensures that python paths associated
with extension are also serialized into the settings by following the
new convention introduced in r23036.

For example, before this commit, after installing an extension named
"Foo", the settings contained:

// ----------------------
[Modules]
AdditionalPaths=/home/jchris/.config/NA-MIC/Extensions-23473/Foo/lib/Slicer-4.3/qt-scripted-modules

[...]

[EnvironmentVariables]
PYTHONPATH=/home/jchris/.config/NA-MIC/Extensions-23473/Foo/lib/Slicer-4.3/qt-scripted-modules
// ----------------------

whereas the following is now written:

// ----------------------
[Modules]
AdditionalPaths=/home/jchris/.config/NA-MIC/Extensions-23473/Foo/lib/Slicer-4.3/qt-scripted-modules

[...]

[PYTHONPATH]
1\path=/home/jchris/.config/NA-MIC/Extensions-23473/Foo/lib/Slicer-4.3/qt-scripted-modules
size=1
// ----------------------

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23482 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fixed accented character display of series and studies in subject hierarchy

Fixes #3688

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23483 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Removed testing code from previous commit

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23484 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fixed error with intensity sampling; removed code not used under Slicer4

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23485 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: cli-modules were not included in PATH of installed version of MAC so added it to search path

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23486 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix IconEngine and d&d of QStandardItems with icons

When doing drag&drop, the mime data failed to stream the QIcon because
qSlicerIconEnginePlugin was not a subclass of QIconEngineV2.
Regression when adding Qt5 support in CTK.
Closes #3778

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23487 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix CheckForLabelVolumeValidity warning. Fixes #3776

This commit fixes a regression introduced in r23406 [1]
where calling CheckForLabelVolumeValidity with two volumes that have
the same dimension was returning a wrong warning, e.g. "IJKToRAS mismatch
at [0, 3] (-89.6207 != -89.6207)", "IJKToRAS mismatch
at [1, 1] (0.000542851 != 0.000542851)", and "IJKToRAS mismatch
at [2, 0] (4.32616e-09 != 4.32616e-09) IJKToRAS mismatch
at [2, 2] (0.0752821 != 0.0752821)", and "IJKToRAS mismatch
at [2, 3] (176.197 != 176.197)".

Thanks to "safir" for reporting the problem and suggesting a solution.

[1] http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=23406

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23488 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Subject hierarchy UI update issues fixed
Fixes #3714

- qMRMLSceneSubjectHierarchyModel::nodeIndex rewritten to generate correct indices, parentNode also fixed. Workarounds removed
- New subject hierarchy nodes get simpler names
- Setting icons is not so simple as it should be due to a bug in Qt (https://bugreports.qt-project.org/browse/QTBUG-20248), which raises the need to check if the icon to be set is the same as the current icon of an item. This introduces one more thing to remember to the developer. Thus, instead of having the plugins set icons on items, they just return it (or an empty one), and the model does the check. This way developing plugins is not harder than before.
- Changed copyright information in all subject hierarchy files
- Instead of having the potential nodes list on the bottom of the module, those nodes are shown in the subject hierarchy tree on the top-level without icons. They can be shown/hidden with a checkbox under the tree, and can be handled the same way as in the potential list before.


git-svn-id: http://svn.slicer.org/Slicer4/trunk@23489 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Add HDF5 and Matlab TransformIO to ITKFactoryRegistration

This commit explicitly lists these transform to ensure the associated
files can be read/write.

This should help in fixing error related to the integration of
BRAINSFit and EMSegment.

Co-authored-by: Bradley Lowekamp <blowekamp@mail.nih.gov>
Co-authored-by: Steve Pieper <pieper@isomics.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23490 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Added a method in VolumesLogic class to resample volume node.

Also changed the LabelStatistics.py to use the new resample logic to make labelmap same as input volume.

From: Kevin Wang <kevin.wang@rmp.uhn.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23491 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Added a method in VolumesLogic class to resample volume node.

Also added a new CloneVolume method which does not clone the imageData. Changed the LabelStatistics.py to use the new resample logic to make labelmap same as input volume.

From: Kevin Wang <kevin.wang@rmp.uhn.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23492 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: test for active camera before enabling fiducials

Removes the error message that world to view and view to world
can't compute result due to a missing active camera. Delaying
setting the handles and widgets to be enabled if there's
no active camera defined on their renderers seems to work well
since the next time through the update code once the layout
has stabilised and the renderers are updated, the seeds 
will get positioned and enabled.

Issue #3761


git-svn-id: http://svn.slicer.org/Slicer4/trunk@23493 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: check for valid transform pointers to avoid crash

On scene close and possibly other circumstances there can be transform
nodes that don't have valid transforms, so check the pointers.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23494 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: fix logic on showing slice intersections

Added an attribute (and a name) for the volume slice
model display nodes and check for it in a new slice
logic static method. If it's not a volume slice model
display node, use the visibility of the regular
model to determine if should show the slice intersections,
otherwise rely on the slice intersections visible flag.

Issue #3718


git-svn-id: http://svn.slicer.org/Slicer4/trunk@23495 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: BRAINS can only now read in h5 files

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23496 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Remember if updates are automatic

Store if the user has enabled automatic extension updates in QSettings.

Issue #2089
ENH: Adding API to check for extension updates

Add some initial API to manage scheduling extensions for update, similar
to how we schedule extensions for uninstall (as the implementation will
necessarily be similar). For now, the settings management should be
working; the rest (including a checkForUpdates() method) is mostly
placeholder that is needed to start implementing UI and underlying
logic.

Issue #2089
ENH: Start adding logic to check for updates

Add logic to issue server API calls to check for updates to extensions,
and to manage the same. This is still missing anything to actually
download or apply said updates.

Issue #2089