COMP: C++11 conformance for static initialization

error: non-constant-expression cannot be narrowed from type 'unsigned long' to 'IndexValueType' (aka 'long') in initializer list [-Wc++11-narrowing]
as identifiied by the clang compiler.

From: Hans Johnson <hans-johnson@uiowa.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22913 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: C++11 compiler warning convert NULL to bool

warning: implicit conversion of NULL constant to 'bool' [-Wnull-conversion]

From: Hans Johnson <hans-johnson@uiowa.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22914 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: C++11 convertsion of types

error: no viable conversion from 'DiffusionTensor3DExtended<float>' to 'DiffusionTensor3DExtended<double>'

By preferring initialization to assignment this error is avoided.

From: Hans Johnson <hans-johnson@uiowa.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22915 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fixed various errors in the save scene dialog for mrb format

There were 3 problems:
1. When the save scene dialog is shown first, the file format selector is empty
2. When a scene is saved as .mrb and then the save dialog is opened again the format is still .mrb, but the populated items are not disabled
3. When a scene is saved as .mrb and then the save dialog is opened again the target directory is not the same (it’s the parent directory of the directory where the scene was saved the last time)

From: Andras Lasso <lasso@queensu.ca>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22916 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Adding SimpleITK Python threading, and progress/abort to SimpleFilters

Enabling SimpleITK Python threading. This unlock the Python GIL while
inside C++ code in ITK, while still having safe commands on events.

Updated SimpleFilters with support for SimpleITK 0.8rc1, and adding a
progress bar and abort button.

$ git log --oneline 3bc2fdc5ca5c72b3fbfc596213eecf89cec31b32..
c939ce0 Update to use namespace KernelEnum types for morphology
34e55c9 Verify the update-sitk update branch does not exist before json update
5cb03ef Merge branch 'sitk-upstream'
f46c414 SimpleITK 9f758175 Filter descriptions (reduced)
18db32e Adding Cancel button to abort filter processing.
757d0fe Adding ProgressBar and SimpleITK events

From: Bradley Lowekamp <blowekamp@mail.nih.gov>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22917 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Ensure node name is set when vtkSlicerCLIModuleLogic::CreateNode

Similarly to node created from the UI, node created
with the help of the logic will also have their name set with the
module title as basename.

For example, with the title of the module is:

   General Registration (BRAINS)

Note name will be:

   General Registration (BRAINS)
   General Registration (BRAINS)_1
   General Registration (BRAINS)_2
   ...

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22918 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: adjust the scale slider widgets to volume slice spacing

On entry to the Markups module, check for a background volume
in the red slice viewer, get the slice spacing and adjust
the scale slider maximum values by a scale factor times
the maximum slice spacing.
Round the max scale to the nearest 10 when resetting it from volume
spacing.
Also ensure that if the module is entered with scale values
on the display node that are larger than the slider maximums
that the sliders are adjusted.
Also works for the default settings being larger than slider
maximums.
Set the scale factor to 10 to allow for large markups on
widely spaced volumes.

Issue #3547



git-svn-id: http://svn.slicer.org/Slicer4/trunk@22919 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: fix interactive plotting feature

The feature was broken by the changes in SliceLayerLogic API:

https://github.com/Slicer/Slicer/commit/40f74cdf870f213847f77b86351032c7869762d3#diff-228dc8288779dec5ad07baedef604899


git-svn-id: http://svn.slicer.org/Slicer4/trunk@22920 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: disable selecting new fiducial if jump slices on

When new fiducials are added to a list, by default that row
in the GUI table was selected. If jump slices is checked,
that would result in the slices jumping to the coordinates
of the new fiducial, which is at the origin when it's first
added. The calculated coordinates are set by a second call
(and produce a second event) in the displayable manager
that was not triggering a second jump to the correct
coordinates. Disable jumping to the newly added
fiducial location when jump slices is on, this limits
the jumping to user clicks in the table.

Issue #3556


git-svn-id: http://svn.slicer.org/Slicer4/trunk@22921 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Update ExternalProjectDependency based on commontk/Artichoke@c3eb170

[Artichoke]
$ git shortlog da5367b..c3eb170
Jean-Christophe Fillion-Robin (2):
      Ensure a list of same labels can be associated with multiple variables
      Simplify API removing requirement to explicitly set 'CMAKE_CMD' parameter

[CTK]
$ git shortlog --no-merges  7466ab0..ff2ae72
Andreas Fetzer (3):
      Proper pointer inizialization
      Fixed wrong resourceUri for certain xnatObjects
      Added download function to ctkXnatTreeBrowser

Daniel Knorr (3):
      Changed TreeModel functionality of CanFetchMore() and FetchMore(),     to add children which have been fetched already.     Previously these children were not added to the model,     they were fetche
      Deleted the no more necessary ctkXnatProjectsListModel.     Added a virtual method to ctkXnatObject for getting the child type.     Overwrited this method in ctkXnatDataModel and ctkXnatProject.
      Changed the ctkXNATBrowser models to generic ctkXnatListModel.     Litte Changes to ctkXnatTreeModel.

Jean-Christophe Fillion-Robin (2):
      Update VTK external project to 5.10 head to fix clang compilation error
      Update ExternalProjectDependency system based on commontk/Artichoke@c3eb170

Miklos Espak (32):
      Login dialog added
      qRestAPI upgrade
      Fix for compiler warnings
      ctkXnatConnection* moved from ctkXnatObject to ctkXnatServer
      XNAT tree model and example application
      Null check for ctkXnatSettings in login dialog, refactorings
      qRestAPI hash update to get library dirs fix
      Scan resource download
      CTK naming conventions for getters
      Resource URIs constructed incrementally
      Reconstruction support is back
      SSL errors suppressed for connecting sites with self-signed certificate
      Clean-up
      ctkXnatTreeModel::xnatObject(QModelIndex)
      Fix about CTK naming convention for getters
      API clean-up, documentation comments
      ctkXnatScanResourceFile and ctkXnatReconstructionResourceFile unified to a single ctkXnatFile class
      Unit test added for CTKXNATCore
      XML Schema type property for ctkXnatObject
      Schema type stored in ctkXnatObject
      Shared/weak pointers removed in favour of explicit memory handling
      ctkXnatObject::addChild renamed to add
      XNAT Core refactorings and basic support for creating objects
      Existance test support
      ctkXnatAPI class (former qXnatAPI from the qRestAPI project)
      Parent can be passed to ctkXnatObject constructors
      Unit test for XNAT object deletion
      XNAT save function save the properties
      XML schema type used for XNAT objects
      Unit test for XNAT object parent-child relationship
      XNAT resourceUri fixes
      Uses of obsolete class ctkXnatSessionFactory are removed

Nicolas Toussaint (8):
      make the experiment level available in the new API
      make the scan-folder and scans levels available in the new API
      all levels are taken into account now, with the right labels
      implement default methods for Objects for isFile() etc
      xnat: adding the missing methods, still missing some implementations
      xnat: download functionality almost on track
      xnat: working on the download feature
      download file functionality restored

Sascha Zelzer (33):
      Explicitly include the Qt use file again.
      Added qRestAPI as an external project.
      Moved the XNAT clases from the org.commontk.xnat plug-in.
      Moved the XNAT classes into a Core subdirectory.
      Added XNATWidgets library stub.
      Removed unused XNAT files and simplified QtScript dependency.
      Added initial ctkXNATBrowser application.
      ctkXnatObject redesign. No QObjects, using QSharedPointer.
      Qt list model for ctkXnatObject instances. Will be renamed.
      Prototype application for querying XNAT servers.
      Use Qt style for passing pimpl pointers to super-class constructors.
      Don't clear the CTK_EXTERNAL_LIBRARY_DIRS variable.
      Improved error and exception handling.
      Removed warnings.
      Renamed XNAT classes.
      Moved the ctkXnatLoginProfile class to XNAT/Core.
      ctkXnatSession now requires a ctkXnatLoginProfile in its constructor.
      Moved fetch() methods to subclasses and use QMetaType to create instances.
      Added http session support.
      Removed debugging messages.
      Re-structured XNAT exception hierarchy.
      Added ctkXnatSession documentatioin.
      Make schema type customizable per object again.
      Updated qRestAPI commit hash
      Use new qRestAPI hash
      We need to explictily open the session.
      The password for the ctk account has expired.
      Removed obsolete ctkXNATBrowser application.
      Use Qt naming convention for getters.
      Added doxygen groups and fixed some formatting issues.
      Use the proper CTK testing infrastructure.
      Add cmd line option for generating a GUI from XML
      Use a qRestAPI version compatible with Qt 4.6.2

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22922 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: In driver script, rename 'setIfNotDefined' into 'setOnlyIfNotDefined'

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22923 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Define and use Superclass typedef in qMRMLItemDelegate

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22924 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: fix method documentation

Replace the \a with \arg to make a list with line breaks.

Issue #3512




git-svn-id: http://svn.slicer.org/Slicer4/trunk@22925 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: avoid spurious python warning when a volume has no display node

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22926 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: #2921 add summary dialog after running test

This was already being generated when running all tests, but
now do it even for a single test button click.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22927 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: remove outdated documentation

Removed references to the Diffusion Editor since it
is not in Slicer4.

Issue #1875


git-svn-id: http://svn.slicer.org/Slicer4/trunk@22928 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fixed various transform issues (#3610 and #3611 and other minor problems)

Added Start/EndTransformModify() to allow making changes in the transforms without immediately triggering a transform update event.

Fixed crash caused by calling d->MRMLTransformNode->SetAndObserveMatrixTransformToParent in qSlicerTransformsModuleWidget (just update the existing matrix instead). The issue was that qSlicerTransformsModuleWidget::invert() method was called when the matrix was changed and in invert() the SetAndObserveMatrixTransformToParent method call deleted the matrix: so essentially the matrix object was deleted while processing its modification events, which caused the crash.

Implemented automatic mechanism in GetWarpTransformTo/FromParent and GetMatrixTransformTo/FromParent to determine when to compute ToParent or FromParent transform from its inverse (by saving the timestamp of the source transform as a member variable). As a result inverse transforms are now always computed when needed and the bool flag for explicitly requesting inverse computation in vtkMRMLNonlinearTransformNode::SetAndObserveWarpTransformFromParent is not needed anymore.

Fixed DeepCopy of vtkMRMLBSplineTransformNode (the problem was that in vtkITKBSplineTransform the DeepCopy was implemented instead of InternalDeepCopy). As a result, the vtkMRMLNonlinearTransformNode::DeepCopyTransformToParent and vtkMRMLNonlinearTransformNode::DeepCopyTransformFromParent workaround methods are not needed anymore.

Fixed preservation of DisableModify state by using StartModify/EndModify instead of SetDisableModifiedEvent.