ENH: Add qSlicerScriptedFileDialog

* Add qSlicerFileDialog::description
* Add input dialog to select reader when multiple readers accept the same mime data


How to create a FileDialog in python?

+class XYZFileDialog:
+  def __init__(self, parent):
+    self.parent = parent
+    parent.fileType = 'XYZ'
+    parent.description = 'XYZ'
+    parent.action = slicer.qSlicerFileDialog.Read
+  def isMimeDataAccepted(self):
+    accept = self.parent.mimeData().hasFormat("text/uri-list")
+    self.parent.acceptMimeData(accept)
+  def dropEvent(self):
+    self.parent.dropEvent().accept()
+  def execDialog(self):
+    print 'exec'

How to order the list (make the module reader by default):
Make the module depend on "Data" -> instantiated after "Data" module
   def __init__(self, parent):
+    parent.dependencies = ["Data"]

Issue #3081

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21951 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: #2761 Add CTCTDentalSurgery example

One click to get pre- and post- surgery scans, but the
logic API allows access to individual scans if desired.

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

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21952 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: fix duplicate metatype declaration (Issue #3081)

See also r21951

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21953 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: QInputdialog does not exist - changed it to QInputDialog

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21954 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Skull stripping in test mode did not work

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21955 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix ApplyAndWait Completed CLI node status

By not observing the application logic, the cli logic was never notified
when the CLI node was completed and could not set the status accordingly.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21956 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: 3072. Observe TransformModifiedEvent in the vtkMRMLTransformableNode.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21957 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: add more keyboard shortcuts in Editor

Per request from Sonia, give shortcuts for paint, draw, wand, and
rectangle effects.

See full list here:

http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/Editor#Editor_Wide_Keystrokes

Also STYLE: some dead code removal and end-of-line space removal.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21958 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: 3094. Update ROI selection widget after an ROI is selected


git-svn-id: http://svn.slicer.org/Slicer4/trunk@21959 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Remove python patch step related to "dll boundaries" hack

As explained in r21863, patching pythonrun.h and pythonrun.c was
required to prevent crash (related to dll boundaries [1][2]) when
building Slicer debug against a released python.

[1] http://stackoverflow.com/questions/2322095/why-does-this-program-crash-passing-of-stdstring-between-dlls
[2] http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/57e0d522-a42c-4add-963d-c87c6e76f161

Applying the approach discussed on the Blender mailing list[3], the
hack is not required anymore. This is made possible by using
"PyRun_String" function combined with the "execfile" statement.

[3] http://lists.blender.org/pipermail/bf-python/2008-May/005253.html

When transitioning to Python3 [4], use of "exec" and "compile" could be
considered:

  with open('foo.py', 'r') as fh:
    code = compile(fh.read(), 'foo.py', 'exec'); exec(code);

[4] http://stackoverflow.com/questions/436198/what-is-an-alternative-to-execfile-in-python-3-0

Approach making use of the "imp"  module could also be investigated [5][6]

[5] http://www.ragestorm.net/blogs/?tag=execfile
[6] http://docs.python.org/2/library/imp.html

Finally, let's note that overall approach to load module could be
revised to prevent side effect as the one described in
"qSlicerScriptedFileDialog::setPythonSource"

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21960 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Remove unused files

Follow up of previous commit r21960

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21961 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Prevent confusion removing unused "weave" external project

It was initially been introduced in r14346

The files have also been added to the Slicer attic for future reference.
See https://github.com/Slicer/Attic

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21962 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Use internally consistent zlib

The zlib libraries are used by many differnt packages
includeing ITKv4, LibArchive, VTK, python, and teem.

This patchset builds a single version of zlib
that is mangled with a slicer namespace, and uses
that one library for all zlib operation through the
"USE_SYSTEM_ZLIB" options.

The mangling for vtk_zlib is disabled for teem because
it is not needed when using the External_zlib build.

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

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21963 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Remove obsolete comment from External_python.cmake

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21964 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: added capability to parse multivolume data by TemporalPositionIdentifier
tag (0020,0100)


git-svn-id: http://svn.slicer.org/Slicer4/trunk@21965 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: fix memory leak of vtkIntArray related to node references

Leak was exposed by commit 21957, but was originally introduced
in revision 21810.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21966 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: disable the ChangeTracker test when the module is not available

ChangeTracker is now an extension, so it won't typically be
available when tests are being run.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21967 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fixed memory leak in node references with events

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21968 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: fix failing test due to leaking vtkFloatArray

It is unconditionally allocated, so should be
released unconditionally too.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21969 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Added TractographyDisplay MRMLDisplayableManager and supporting changes to make possible interactive editing of fibers.

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