BUG: Don't store style settings per version

Move the settings location where the user's selected style and
additional style paths are stored from the per-version store to the
general user store, as there is no particular reason why these would be
version specific, and having to set them after every update (especially
in a developer environment) is a little annoying.

Issue #3691

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23174 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Simplify qMRMLUtils::qImageToVtkImageData using vtkQImageToImageSource.

Fixes #1263

From: Christopher Mullins <christopher.mullins@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23175 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fix unused variable / unused typdefs warnings.

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

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23176 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix for crash in vtkImageResliceMask (#3301)

* Force the output image and mask extent to be the same to avoid the possibility of mismatched extents
* Add a NULL-pointer check after the backgroundMaskPtr setting to prevent application crash (worst case it causes partial screen refresh)

From: Andras Lasso <lasso@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23177 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: enable using the picking manager

Turn on the picking manager on the interactor when creating the first
fiducial, ruler, ROI.
Only for VTK6, solves the issue of picking fiducials in placed order
rather than 3d depth order.
Dragging fiducials near other ones will sometimes cause a jump, but now
the 3d glyph position and the MRML node location stay in synch.

Issue #3319

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23178 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add support for conditional upload to extension driver script

By default enabled, this option will allow to disable the upload of
extension while testing if they can be built.

This will be particularly useful when setting VTK6 dashboards for
the extensions.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23179 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Improve check for usage of ConfigurePrerequisites component

This commit ensures that no false error will happen by checking if
the variable CMAKE_PROJECT_NAME (set only by the project() command)
 is defined.

More particularly, this will avoid getting error while build the
VMTK extension.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23180 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Extensions: Do not add CMAKE_PROJECT_NAME to the cache

Following r23180, check for ConfigurePrerequisites component is done
by testing if CMAKE_PROJECT_NAME variable is defined.

Considering that (1) a project statement is expected to exist in the
extension CMakeLists.txt  and (2) the check for ConfigurePrerequisites
component relies on the variable not being set when first configuring,
this commit updates the build system so that the variable is not added
to the cache.

This build system has been tested on Windows and Linux with
Slicer_UPLOAD_EXTENSIONS set to ON (the default).

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23181 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Reduce the number of duplicated include directories

Too many included directories may fail to build on Windows but also on
Linux because it generates very long command lines.

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

This commit ensures the MacOSX packaging script is executed last
by installing the 'Runtime' component last and should ensure the
packaged Slicer application can be executed without crashing.

This particular issue was introduced by commit r23158 where two
things happened:

(1) updated of the build system to explicitly install Slicer components.
The component where specified in the order 'Runtime', 'RuntimeLibraries'
and 'RuntimePlugins'

(2) the MacOSX packaging script was associated with the 'Rumtime' component

The consequence was that Slicer libraries and plugins where installed after
the script was executed and the plugins and libraries where no properly
fixed up. It then prevented the Slicer application from being executed.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23183 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fix VTK linking inside CTK

git shortlog 880bdd632c19af8c8118d62ecea329fbeb720711..8a17c21630f28a7dd22ff98514aaac1059d60433
Alireza Mehrtash (3):
      Fix ctkDICOMobjectListWidget memory leak and other enahancements
      Added Option for changing tables text density in dicom browser
      added repair tool for database and also message box for importin dicom browser

Jean-Christophe Fillion-Robin (16):
      COMP: Pass CMAKE_BUILD_TYPE to all projects
      Allow FindDCMTK.cmake to be re-used directly adding missing module.
      Merge pull request #453 from mwoehlke-kitware/ctksettingspanel-python
      Fixes CTK configuration renaming ctkDICOM2 application test. Fixes #454
      Merge branch '454-fix-configure-with-ctkdicom2'
      Fix pluginframework build error happening when wrapping is enabled.
      Merge branch '455-fix-pluginframework-python-wrap-error'
      Update dashboard driver script to submit a regular project layout.
      Remove configuration of unneeded Project.xml and CTestConfigSubProject.cmake
      Merge branch '457-revert-to-regular-cdash-submission'
      Do not include now nonexistent module ctkFunctionGenerateProjectXml
      Merge branch '457-revert-to-regular-cdash-submission'
      Fix condition used to unset DICOMApplicationHosting top level option
      Ensure ctk option are considered as superbuild candidate variable.
      Merge branch 'fix-multiple-configure-and-passing-of-options'
      Merge pull request #458 from mwoehlke-kitware/fix-superbuild-ctk-force-build

Julien Finet (12):
      Fix VTK 6 support
      Merge branch 'add-vtk-6-support'
      Fix ctkVTKSliceView for VTK v5
      Merge branch 'add-vtk-7-support'
      Propagate new ctkBackTracePrivate::trace signature
      Merge branch 'fix-ctkbacktrace-out-of-line-definition'
      Remove duplicates from the include dirs
      Merge branch 'remove-include-duplicates'
      Do not link with VTK targets that don't exist
      Merge branch 'fix-vtk6-linking'
      Don't use set_directory_properties in UseCTK.cmake
      Merge branch 'remove-include-duplicates'

Marco Nolden (5):
      Some size_t related type fixes for VS2013
      Fixed some unused variable warnings
      Removed non-functional copy constructor
      Make VTK6 linking more robust
      Fix DCMTK dictionary crashes in plugins

Matthew Woehlke (3):
      Improve Python access to ctkSettingsPanel
      Improve Python access to ctkSettingsDialog
      Fix force build for CTK

Sascha Zelzer (2):
      Added missing virtual destructor.
      Add header files to fix moc generation due to changed qt4_generate_mocs macro.

Steve Pieper (5):
      Clean up cmake code for test
      Merge branch '387-dicom-test-cmake'
      Merge pull request #448 from mehrtash/ctk-dicom-object-list-widget-enhancements
      Merge pull request #438 from mehrtash/3579-very-few-patients-visible-in-DICOM-Browser
      Merge pull request #461 from mehrtash/added-repair-tool-and-copy-on-import-message-box

Yuzheng Zhou (1):
      ENH: Support VTK6 in CTK

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23184 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Added support for oriented grid Transform

* Added a new class, vtkOrientedGridTransform, which is based on vtkGridTransform but orientation of the grid can be specified as well.
* Added test for vtkOrientedGridTransform to verify its derivative and inverse computation and equivalence with ITK displacement field transform.
* Simplified vtkMRMLGridTransform node: transform parameters are read/written into ITK transform file, no duplicate saving is done in the scene.
* Removed unused vtkITK files: itkDisplacementFieldTransform, itkEncodedTransformFileReader/Writer, as they were not used (and some of them even had the same name as existing ITK files).
* Support reading/writing of grid transform from/to nrrd, nhdr, mha, mhd, nii, nii.gz files

Resolves:
http://www.na-mic.org/Bug/view.php?id=3597
http://www.na-mic.org/Bug/view.php?id=3444
http://na-mic.org/Bug/view.php?id=2273

Partially resolves:
http://www.na-mic.org/Bug/view.php?id=3598


git-svn-id: http://svn.slicer.org/Slicer4/trunk@23185 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Update Slicer packaging code to support CMake 3.0

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23186 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fix unused variable in vtkMRMLNode::PrintSelf

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23187 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Remove unused composite node "Grid" attribute

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23188 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Remove unused Set/Get*Opacity method from slice logic

Following the introduction of the composite node (r175) that is able to
store the opacity information, these methods originally introduced
by r129 are now redundant and unused.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23189 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Re-factor and rename some of MRMLReference tests

This commit add convenience function allowing to systematically test
the different cases.

It also renames test functions to better represent the purpose of the
test:
  TestAddReferenceNodeID ->  TestSetAndObserveNodeReferenceID
  TestReferenceNodeNoObservers -> TestSetNodeReferenceID

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23190 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Simplify MRMLReferences using smart pointers

* Use of smart pointer in vtkMRMLReference allows us to remove
the complicated code manually managing the calls to Register/UnRegister

* function "SetNthNodeReferenceID" and "SetAndObserveNthNodeReferenceID"
have been updated to have similar code (at the exception of the
code setting the observation events). The second will consist in factoring
code common code to avoid code duplication.

* SetNthNodeReferenceID/SetAndObserveNthNodeReferenceID have also
been fixed to work properly in case the reference doesn't exist
and referencedNodeID is null.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23191 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix behavior of "Set(AndObserve)NthNodeReference" function

This commit now ensures that if a reference is set to position N,
it can later be obtain given N.

The issue is illustrated below:

 SetNthNodeReferenceID("MyRole", /* n= */ 1, "ID2")
 GetNthNodeReferenceID("MyRole", /* n= */ 1)  => return NULL
 GetNthNodeReferenceID("MyRole", /* n= */ 0)  => return "ID2"

 => Getting reference N=1 should return ID2

For reference, the proposed change has also been discussed on the mailing
list. See [1]

[1] http://slicer-devel.65872.n3.nabble.com/MRML-References-update-proposal-tt4031425.html

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23192 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Better readability of MRML node reference function

This basically improve the readabitliy of the code by changing:

  (*referencedNodesIt) -> reference
  references[n] -> reference

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