ENH: Simplify TestAddRefrencedNodeIDWithNoScene

This commit extends "CheckNthNodeReferenceID()" function by introducing
the extra parameter named "referencingNodeAddedToScene" and refactor the
test to use it.

Issue #3708

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

This commit refactors the function "CheckNthNodeReferenceID"
to take an extra parameter named "expectedNodeReferenceID". This allows
the function to test the reference ID independently of the node reference
instance.

It also update the test to use convenience function where possible.

Issue #3708

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23309 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: N4ITKBiasFieldCorrection: Fix test updating the baseline

This commit updates the baseline to match the default parameter value
updated in r23306.

From: Andrey Fedorov <fedorov@bwh.harvard.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23310 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Make Python resources depend on qrcc.py

Tweak the build rules for Python resource scripts to depend on the
qrcc.py script that generates them. This should ensure that they are
regenerated if the generation script changes. (In particular, it is
hoped that this will help squash lingering issues in various folks'
builds re: r23300.)

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23311 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Extend vtkMRMLNodeCallback API adding PrintSelf/GetReceivedEvents

This commit add the GetReceivedEvents and PrintSelf functions.
PrintSelf function displays the list of observed event that have been
invoked. This will be used in tests to display more information in case
the expected event count is different from the actual one.

Issue #3708

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23312 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add TestClearScene to vtkMRMLNodeTest1

This commit extends the test to check that the event invoked by
either a referencing or referenced node when clearing a scene are the expected
ones.

Issue #3708

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23313 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Update EMSegment to fix narrowing and non virtual dtor warnings.

Issue #3419

------------------------------------------------------------------------
r17052 | jcfr | 2014-06-06 21:29:01 -0400 (Fri, 06 Jun 2014) | 3 lines

COMP: Avoid implicit narrowing casts

Explicitly cast initializers in {} array initializer where the assigned
type is smaller than the value type. This avoids implicit narrowing in a
{} initializer, which is ill-formed in C++11.

------------------------------------------------------------------------
r17051 | jcfr | 2014-06-06 21:21:39 -0400 (Fri, 06 Jun 2014) | 3 lines

COMP: Remove gratuitous virtual

Remove 'virtual' specifier of private class in source file, where said
class is not and (due to being in a source file) never will be derived.
This avoids needing an explicit (virtual) dtor in order to avo
id a -Wnon-virtual-dtor warning.

From: Matthew Woehlke <matthew.woehlke@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23314 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Persist 'dont show message' selection when deleting markups

This fix addresses Mantis item #3663. The ctkMessageBox expects a
ButtonRole of AcceptRole. Created a custom button for 2 reasons.
First, it allows us to set the correct role and secondly a "Delete"
and "Delete All" button more clearly aligns with the action being
performed.

From: David Stoup <david.stoup@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23315 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fix overloaded virtual warnings with VTKv6

Explicitly use base class implementations of transform overloads
operating on 'float' (which cast and call the double overloads, and so
will call the appropriate derived code) in order to avoid hiding the
overloads in the derived class. (Fixes -Woverloaded-virtual warnings.)

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23316 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Remove gratuitous virtual

Remove 'virtual' specifier of private classes in source files where said
classes are not and (due to being in a source file) never will be
derived. This avoids needing an explicit (virtual) dtor in order to
avoid a -Wnon-virtual-dtor warning.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23317 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Fix spelling error in comment

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23318 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Don't stop uninstall on first error

Change how we process scheduled extension uninstall operations to
continue trying to uninstall all extensions, rather than stopping the
process after the first error. The old behavior is a result of operand
order to the '&&' operator, which employs short-circuit evaluation to
skip evaluation of the second argument (the call to uninstall the
extension) if the first argument (the overall result 'accumulator') is
false, and was likely unintentional, due to overlooking the short
circuit evaluation.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23319 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Improvements to extension notification icons

Clean up the SVG for the existing extension notification icons, and
change the error icon from a circle to a box (matches oxygen, and
"frees" the circle for the information icon, such that all three have
different shapes). Add an information icon. It's not in use yet, but
will be used for updates.

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

Remove some icon files from the repository that are not used anywhere.
This is in preparation for a major clean-up and refactoring.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23321 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Clean up icon usage

Create new "XSmall" icon size for 16x16 icons, enabling us to provide
separate 16x16 (e.g. menu) and 22x22 (e.g. tool bar) icon sizes. Replace
ugly undo/redo icons with icons from the (public domain) Tango[1] theme.
Replace home icon with its Tango version for better consistency. Create
a script to generate qSlicerBaseQTGUI.qrc, as manually adding as many as
five entries per new icon is unnecessarily awkward. Arrange to use
themed icons when possible.

(1: http://tango.freedesktop.org/Tango_Icon_Library)

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23322 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Initial refactoring of extension manager UI

Refactor right corner area of extension manager into a .ui file, similar
to how the left corner area (navigation buttons) is already handled.
This allows us to have separate search widgets per tab (allowing for
independent search states, if/when support for searching installed
extensions is added), and also to add a 'configure' button (which we do)
that provides independent menus per tab.

The menus are created, but not yet functional. Icons (from the Public
Domain Tango theme) are also added. (The 'check for updates' icon uses
the theme pixmaps. Tango does not provide a 'configure' icon as such, so
the modified svg from which the pixmaps were generated is also being
committed.)

Issue #2089
Issue #2145
ENH: Add function to list archives

Add a function to vtkArchive.cxx to obtain the list of files in an
archive without extracting the archive. Also, fix parameter name in
(misnamed) extract_tar to make at least some kind of sense.
("archiveFileName", as in list_archive(), would be better, since
extract_tar likewise works on non-tar archives, but for now leaving it
consistent with the function name.)
BUG: Correctly encode archive file name

Use qPrintable() (which uses QString::toLocal8Bit() under the hood) to
encode the QString archive file name to char const* for passing to
extract_tar, rather than QString::toLatin1(), which is unlikely to
produce the correct bytes (the underlying system calls are more likely
to want system locale encoding) in case of a non-ASCII file name.

This sort of thing appears to be endemic to Slicer, but I don't care to
propagate that to the forthcoming call to list_archive(); thus, making
it consistent in this file at least.
ENH: Add ability to install extension from file

Hook up 'install from file' action in extension manager. Create an
overload of qSlicerExtensionsManagerModel::installExtension taking only
an archive file name, which uses the new list_archive method to
determine the extension name and then hands off to the existing method.
Modify the existing overload to cope with the lack of server metadata
that occurs in this case, and to fill in a sufficient subset from common
information (i.e. the os/arch/revision of currently running Slicer) and
the description file provided in the extension archive.

This should allow users to install extensions from externally obtained
archives of the same (e.g. manually downloading from the server with an
external web browser).

Issue #2145