BUG: Make sure the node is present before saving in a collection

While updating the scene, the tree view hierarchy was being saved. This causes
segfaults when updateScene is called after closing the scene or deleting nodes.
Check if the nodes are still present before saving them to collection.
Fixes issue 2557.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21880 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Save tree before the batch processing starts and restore after it ends

Saving the tree expansion state now happens before batch processing starts and
the consequent restoration happens after batch processing ends. This prevents
handling tree when the scene is in an inconsistent state during the batch
processing task.

BUG: Make sure scene tree save/restore happens during lazy update only

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21881 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Implement feature #2918, fiducial projection on 2D slice plane

From: Laurent Chauvin <lchauvin@bwh.harvard.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21882 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: avoid print out of nodes not found on start up

Took out the call to update the widget from mrml on init, 
it gets called from setMRMLScene which is when it should be
updated.
Swapped warning for debug print outs as not having interaction
or selection nodes is not an error case.



git-svn-id: http://svn.slicer.org/Slicer4/trunk@21883 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: 3060. Replaced the use of vtkMRMLDisplayableNode::DisplayNodes with vtkMRMLDisplayableNode::GetDisplayNodes()


git-svn-id: http://svn.slicer.org/Slicer4/trunk@21884 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: fixed compile error from the previous commit.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21885 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Use ${VTK_LIBRARIES} instead of vtkCommon.

Forwards-compatibility with VTK6.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21886 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix saving of models from GrayscaleModelMaker

When the models were being read back into Slicer by the vtkSlicerApplicationLogic,
it would check first if .vtk was a supported read type in the FreeSurfer
model storage node. Due to a copy/paste error in that class, it's SupportedReadFileTypes
string array was empty, which was interpreted as supporting all types and the 
application logic would assign a FS model storage node to it. Because the 
SupportedWriteFileTypes array was initialised with the supported read file types, the
grey scale model would come up in the save dialog as being able to be written in 
FS formats.
It's a known interoperability issue that the FS model storage node doesn't support 
writing FS formats, so the storage node inhertis from the model storage node superclass's
list of supported write types and uses it's WriteDataInternal to save FS models as .vtk
files.

Changes:
Initialize the SupportedReadFileTypes string array with just FS model file types.
Removed .vtk and .vtp as supported read types, Slicer should default to a regular
model storage node for those files.
Fixed some debugging string print outs.

Issue #3036



git-svn-id: http://svn.slicer.org/Slicer4/trunk@21887 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Fix casing of CMake macro add_subdirectory

See http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/Style_Guide/CMake

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21888 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Remove extra space in CMakeLists.txt

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21889 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Set "Slicer_LANGUAGES" global property only if i18n support is enabled

Prevent confusion and make global property definition consistent.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21890 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix import of Tkinter and Fix compilation errors on VS 2010 and 2012

Updated CMake'ified python external project to include the following
topics:
* 60ee828 - Merge branch 'add-lib-tk-to-pythonpath'
* 8a3c51a - Merge branch '8-add-ctestconfig'
* 22a0870 - Merge branch 'fix-msvc2012-build-error'
* a70729f - Merge branch 'fix-msvc2012-link-error'

See https://github.com/davidsansome/python-cmake-buildsystem/pull/13
Fixes python-cmake-buildsystem issue 13

See http://www.na-mic.org/Bug/view.php?id=3065
Fixes #3065

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21891 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: #3076 make sure scalar range is updated after edit operations.

This new method unifies the updating of the image data and volume
node to trigger rendering.  By calling modified on the point scalars,
this GetScalarRange call returns the correct data.

http://na-mic.org/Bug/view.php?id=3076

This is confirmed by looking at the results of the call after
editing in new colors as shown below.

>>> l = getNode('*label')
>>> l
(vtkMRMLScalarVolumeNode)0x131766ba8
>>> l.GetImageData().GetScalarRange()
(0.0, 15.0)
>>> l.GetImageData().GetScalarRange()
(0.0, 18.0)
>>>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21892 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix spacing buttons in slice controller widget

Ensures automatic spacing button in slice view controller widget toggles automatic spacing on and off, and updates the icon in the widget to reflect the spacing mode. Ensures automatic spacing, manual spacing, and field of view buttons are synchronized with MRML slice nodes. Ensures automatic spacing, manual spacing, and field of view buttons for each of R, Y, G update together appropriately when linked. #2993, in part similar to #2676-2685.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21893 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fixed issue with SetSceneReference and bug 3067

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21894 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Display Slicer revision at configuring time. Fixes #2020

See http://www.na-mic.org/Bug/view.php?id=2020

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21895 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Change configure time message to use main application name.

If SlicerApp_APPLICATION_NAME is set to "Foo", message like the following
will be displayed instead:

-- Configuring Foo version [4.2.0-2013-04-16]
-- Configuring Foo revision [21891]
-- Configuring Foo for [linux-amd64]

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21896 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: External link in extension manager now open in browser. Fixes #3045

To determine if a link should be open in the extension manager or in an
external browser, the "host" of the clicked url and the server url are
compared.

See http://qt-project.org/doc/qt-4.8/qurl.html#setAuthority for more details.

See http://www.na-mic.org/Bug/view.php?id=3045

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21897 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: 3060. Made 
const std::vector<vtkMRMLDisplayNode*>& vtkMRMLDisplayableNode::GetDisplayNodes();
 - Obsolete
 utility function that provides an unsafe API. Please use GetNumberOfDisplayNodes() and GetNthDisplayNode() instead 

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21898 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: 2916. Moved vtkSlicerModelsLogicAutoRemoveTest into the data module testing directory and use a datamodule logic instead of a models logic. Removed unused AutoRemoveDisplayAndStorageNodes  property of vtkSlicerModelsModuleLogic.

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