ENH: #3309 add SurfaceToolbox module from Luca Antiga

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22306 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Ensure ErrorLog/PythonConsole menu entry bring dialog to foreground

This commit partly revert commit r19500 making sure the errorLog and
pythonconsole menu entry are non-checkable. It means that if one of the
dialog is already shown but in the background, selecting the menu entry
will bring the dialog to the foreground instead of hiding it.

Also simplify who the errorLog button interact with its associated
ErrorLog dialog by simply associated the corresponding QAction.

Note also that the QAction icon is the one that is now
highlighted/unhighlighted based on the addition of new
warning/error/cricial messages. The icon is now updated both
in the bottom right corner (Error log button) and in the menu entries.

See issue #1349

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22307 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix "transform file not marked as modified on save".

Call StorableModifiedTime in ProcessMRMLEvents() when the transform matrix is internally modified.
Fixes #3303

From: Yuzheng Zhou <yuzheng.zhou@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22308 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: fix the crash on scene close, see issue #3313

Parameter node was referenced from a node selector event handler in the process
of scene close. Since parameter node was deleted before the the node selectors
were updated, this led to invalid reference.

The fix eliminates references to parameter node from node selector event handlers,
and does this only when user initiates the processing.



git-svn-id: http://svn.slicer.org/Slicer4/trunk@22309 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Re-factor selection node

Use the class name so modules can register a node to place
via mouse more generally.

Use the new functionality in the mouse mode tool bar,
annotations, testing.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22310 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add support for the LPS coordinate system for CLIs

Add a coordinate system flag check, default to ras but support LPS.

Update the displayable nodes that use the WriteCLI method to
use the coordinate system flag.

TODO: IJK coordinate system - See issue #2979

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22311 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Set strings to null after delete

Set strings to null after they've been deleted, trying to
avoid seg faults when debugging

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22312 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Move the color conversion utility methods

Move the C++ color / Qt color conversion methods out of
Annotations and into qMRMLUtils.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22313 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix pan bug in annotation displayable manager

Comparison for valid viewpoint coordinates wasn't properly
checking the first coordinate.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22314 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add the ability to access displayable managers.

Added get nth displayable manager to the displayable manager group, and
get displayable managers to the ThreeD view and widget
Useful for debugging displayable managers.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22315 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Expose module displayable managers to Python

Before this change, you could get at module displayable managers but not
call any of their specific methods in python. This change follows the
pattern of the module logic init file.

To get at the module displayable managers for the first 3D window:
lm = slicer.app.layoutManager()
td = lm.threeDWidget(0)
dms = td.getDisplayableManagers()

The markups fiducial displayable manager was at index 7 in my test:
mfdm = dms.GetItemAsObject(7)
h = mfdm.GetHelper()
from there you can debug the seed widgets

Annotation, Volume Rendering and Tractography displayable managers
are now also accessible from python.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22316 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add Markups module providing easy fiducials management.

Based on the Annotations module from Slicer 4.2 and the Fiducials
module from Slicer 3.6, add a new Markups module to provide
some missing functionality into Slicer4:
- one file per fiducial list
- added a unique id and orientation for each fiducial
- save/restore default display settings
- create list with current list display settings
- press p to add a fiducial
- possible to "jump" to a slice using either mouse click or right click menu
- move fids between lists
- split displayable managers into 2d and 3d versions
- pattern for names of new fiducials
- projection on 2d viewers
- add a right click menu option to delete highlighted markups
- support markups selection by mouse and keyboard arrow key
- %N can be used in the markups name format string
- possible to toggle visible/locked/selected state for a list of markups
- uniform scale for both markup text and glyph

Also added a compare view self test.

See issue #2606

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22317 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add annotation and markup file loading

Add utility methods to allow loading Markup fiducials
from the python console, as well as a backward
compatible Annotation reader

See issue #2606

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22318 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Support passing Markup fiducials to CLIs

Use the coordinate system flag to support RAS or LPS coordinates
for the points.

See issue #2606

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22319 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Deprecating annotation fiducials

Edit properties in the Data module will go to the Markups module for
both Markups and Annotations fiducials, so that annotation fids
can be converted.

Unregister the Annotations fiducials IO, Markups can read .acsv files.
Add a label in the Annotations GUI that fiducials can be found in the Markups module.

See issue #2606

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22320 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Replace Annotations with Markups in default favorite modules list.

See issue #2606

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22321 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Update TractographyInteractiveSeeding module to support Markups

Allow usage of Markups fiducials or Annotations fiducials.

See issue #2606

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22322 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Update Endoscopy module to support Markups

Added a backward compatibility call of GetNumberOfFiducials to the
Markups fiducial node.

See issue #2606

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22323 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: fix memory leak of vtkCollection

Clear and delete the node collection to remove a memory leak
from the snapshot dialog.

Fixes Issue #3314



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