ENH: #2432 Custom cursors for editor effects

Still WIP because the background is not being painted correctly, and
the toggle erase effect does not behave right.  Otherwise the basics
are in place.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@20861 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: implementation of feature 2432 custom cursors in Editor

With this, there is an auto-generated cursor for each mouse tool
to remind the user what mode they are in.  This update also
allows tools to turn off the cursor during interaction so it
is easier to see the background.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@20862 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: fix for cursor management between annoation and Editor

Turn off the Interaction Mode before changing cursor so
that custom cursor is not disabled by annotation.
Note that similar change should be made to annotation
code.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@20863 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: provide download feedback in SampleData

Use the report hook in urllib.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@20864 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: improved SampleData progress message

git-svn-id: http://svn.slicer.org/Slicer4/trunk@20865 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add 'reload-and-test' infrastructure to scripted module template

This provides a one-click method for developers to modify their
code and their test on the fly.  The sequence should be that developers
can create a module (extension) using the ModuleWizard, point
their module path to it, and then start slicer to load
their new module.  From there they just edit the implementation (GUI
and Logic) and the test to exercise it.  Hitting the reload and test
button brings in the latest copy of their code, replaces the GUI, and
runs the test.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@20866 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Slicer crashed if the name of the EMS Template node did not match the mrml file name

git-svn-id: http://svn.slicer.org/Slicer4/trunk@20867 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: update CTK to get fix for #1977

This fixes the enable state and selection options in the dicom
browser as described here:

https://github.com/commontk/CTK/commit/46438451e5f1a4c69f7f9aaf5174587fa96bda87

Note: this update also pull in changes to the ctkPathLineEdit

 https://github.com/commontk/CTK/commit/0de5ad082c0ba0d68056ca40a4e31ea2b9bd0556
and
 https://github.com/commontk/CTK/commit/f03fb5dc0217df08e0df566449b97c6f918ccd79

git-svn-id: http://svn.slicer.org/Slicer4/trunk@20868 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: multivolume relies on DICOM, so disable if no DICOM

git-svn-id: http://svn.slicer.org/Slicer4/trunk@20869 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: fix name of logic class in script testing template

git-svn-id: http://svn.slicer.org/Slicer4/trunk@20870 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: updated color file for brain atlas to fix issue 2435, with some updated colors from Marianna and Ron

git-svn-id: http://svn.slicer.org/Slicer4/trunk@20871 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: working on issue 2428, showing how import is failing with respect to model poly data pointers

git-svn-id: http://svn.slicer.org/Slicer4/trunk@20872 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: database attribute did not need to be a QSharedPointer

As a shared pointer things worked until we try to change the
database directory with the directory button.  When doing this,
we get a message like the following and then a crash.
QSharedPointer: pointer 0x2384d70 already has reference counting

Making this a regular pointer seems to work, since the memory is
handled by the python code in the DICOM module.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@20873 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: issue 2163 expand the test to show what's expected

git-svn-id: http://svn.slicer.org/Slicer4/trunk@20874 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: provide feedback and event loop support for self tests

Now the example template includes a simple way for people running
the test to watch what is going on.  Also with the event processing
the test more accurately captures what a user would do.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@20875 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: add new test for bug 2049

This test is run as part of ctest, but can also be invoked at runtime
via the SelfTests module.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@20876 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: working on issue 2435, init the color table names to noName value before starting to read from file, this will allow the qMRMLColorTableView to filter properly rather than having lines showing that have the R=0.000 G=0.000 etc lines

git-svn-id: http://svn.slicer.org/Slicer4/trunk@20877 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: update the name of the DICOMToNRRD converter module

This issue prevented DWI scans from loading properly.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@20878 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: compress dicom model reset events

Since some operations can generate huge numbers of datbaseChanged
signals, we want to ignore most of them.  This is done by scheduling
a future reset of the model and not adding any new requests if
there is one pending.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@20879 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: clean up dead code in DICOM module

Remove some older optional modes (like the dicom app widget
inside the module panel) and the pre-plugin load options.

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