STYLE: Add debugging to Extension Wizard

Add additional debugging information to the Extension Wizard when
creating a compare URL for a pull request to (hopefully) help diagnose
failures. Add a (hidden) --dryRun option which will skip actually
creating the pull request during --contribute.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23254 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Update SubjectHierarchyGenericSelfTestTest to support VTK6. Fixes #3720

In both VTK 5 and 6 cases, the pipeline is connected and the
explicit call to "Update()" is not required.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23255 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Update CTK - Fix "No such slot" warning and optimize ctkVTKConnection

* Fixes #3361: Fix "No such slot" warning and optimize ctkVTKConnection

* Fixes #3719: py_SubjectHierarchyGenericSelfTest passes but it output warning about slot disconnection

* Improve performance of ctkVTKConnection creation/removal

* Add Qt5 support to CTK

* Thanks to Eric Larson. ctkAbstractView now provides a method allowing to
set multisampling.

* Since ctkErrorLogModel has been moved from CTKCore to CTKWidget (because
QStandardItemModel belongs to QtGUI), similarly the error log model has
been moved from qSlicerCoreApplication to qSlicerApplication.

Details:

$ git shortlog daaf705c..6f2c55809 --no-merges
Eric Larson (1):
      Added static method to set multisampling.

Jean-Christophe Fillion-Robin (18):
      Fix compilation of tests against VTK6
      Fix qDebug operator to handle case when VTKObject is null
      Improve documentation of setStrictTypeCheck() method
      Remove unused signal "isBroke()"
      Refactor ctkVTKConnectionTest1 for easier maintenance and readability
      Update ctkVTKConnectionTest1 to use ctkCallback
      Update ctkVTKConnectionTest1 to allow each test case to be run independently
      Split disconnect function
      Allow ctkVTKConnection pimpl to be subclassed
      Add method to return VTK object associated with ctkVTKConnection
      Add ctkVTKConnectionTestObjectDelete
      Fix ctkVTKConnectionTestObjectDelete
      Improve performance disabling "deletion" observation
      Fix ctkVTKConnectionTest1 removing connection time ratio test
      ENH: Pass Qt CMake variable using "mark_as_superbuild"
      Fixes configuration when enabling PythonQt wrapping
      Remove extra CMake debug statement introduced by commit 47b34216
      Update CTKWidget PythonQt decorator to fix build error following Qt5 transition

Julien Finet (1):
      Add support for Qt5

Matthew Woehlke (1):
      Allow compiling/installing generated Python files

Sascha Zelzer (8):
      First set of build system patches for Qt5 support.
      This commit enables Qt5 support for the CTK Core library, issue #277.
      Use Qt5 CMake 2.8.12 features.
      Qt5 compatibility for almost all libraries.
      Do not assume a specific Qt5 install structure.
      Make more libs and apps compatible with Qt5.
      Use Qt5 compatible qRestAPI version.
      Fix Qt5 dependencies in case only CTK_BUILD_ALL is enabled.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23256 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fix unused variable warnings in qSlicerSubjectHierarchyDefaultPlugin

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

Add rules to install the SlicerWizard modules. This gets us one step
closer to having the extension wizard available from an install tree,
and also makes the SlicerWizard package available from within Slicer
itself.

Note that installation of the SlicerWizard modules is conditional on
Slicer_BUILD_EXTENSIONMANAGER_SUPPORT being enabled.
ENH: Add "introspection" to TemplateManager

Add new methods to TemplateManager to get the list of known categories
and available templates (the latter taking an optional category). These
are helpful for allowing the user to select from available templates in
cases where listTemplates() is not optimal (e.g. from a GUI).
ENH: Create in-Slicer Extension Wizard (skeleton)

Create the initial skeleton of the in-Slicer Extension Wizard. This will
provide a graphical front-end to (some of) the Extension Wizard
functions. Right now, only creation is implemented.

Issue #3603
BUG: Fix TemplateManager unicode support

Add a helper function (in SlicerWizard.Utilities) to detect the
character encoding of an input byte sequence. Use this in
TemplateManager to correctly handle encoding conversion of template
files in case the replacement text is a unicode, rather than a str
(which otherwise results in an exception when automatic conversion tries
to convert non-ASCII files).
ENH: Add python-chardet external project

Add external project for chardet Python module used in the previous
commit, so that we have actual detection available and not just ASCII
vs. "don't know". Like GitPython and friends, this is only enabled if
Python and extension manager support are enabled, and system Python is
not used.
ENH: Improve styling of wizard actions

Replace the QPushButton extension wizard actions with "flat"
QToolButton's, using (for now) a forward-arrow icon. This gives a
cleaner look than the odd stack of unusually wide buttons, that is
loosely based on Windows wizards (which were the only example of a
list-of-possible-actions - as opposed to list-of-steps - type wizard I
could find).
ENH: More work on in-Slicer Extension Wizard

Add some widgets to the 'edit extension' section to show basic
information about the selected extension, and hook up the ability to
select an extension. There is a not-yet-implemented 'edit metadata'
action that will likely be joined eventually by other actions.

Issue #3603
BUG: Improve ExtensionDescription robustness

Fix ExtensionDescription to not fail in case of a git repository with no
commits, and/or a local git repository with no remotes.
STYLE: Use properties in CreateExtensionDialog

Change CreateExtensionDialog classes to subclass object, which is needed
to give them properties (they weren't originally as there seems to be
some problem if a module's primary classes derive from object). Change
accessor methods of the same to Python properties, which are slightly
more convenient and "more Pythonic".
ENH: Create editable tree widget

Create utility widget class EditableTreeWidget, for extension wizard
module. This will be useful for editing extension metadata that takes
the form of lists, e.g. contributors.
BUG: More unicode support fixes

Add support for conversion-to-unicode to CMakeParser. Fix str conversion
to more explicitly avoid having unicode in the results. Add encoding
detection and support to ExtensionProject. This should make it possible
to work with non-ASCII unicode in an ExtensionProject.
ENH: Make ExtensionProject.project writable

Add a setter for the ExtensionProject.project property, allowing users
to change the name given to the project() call of a corresponding build
script (CMakeLists.txt).
ENH: Implement editing of extension metadata

Create dialog for editing extension metadata and hook up to necessary
bi-directional manipulation of the same in the extension project and
description classes.

Issue #3603
ENH: Use I-beam cursor for information fields

Tweak the read only line edits used to show information about the
currently selected extension in the Extension Wizard module to use the
I-beam cursor, to make it more obvious that the text can be selected.
ENH: Select from location of selected extension

Change extension selection in the extension wizard module to use the
location of the currently selected extension (when applicable) as the
initial directory for choosing another extension.

Issue #3603
ENH: Implement creation of extension modules

Add ability to create modules for extensions to extension wizard module.
Refactor CreateExtensionDialog into more generic CreateComponentDialog
so that it can be shared for this purpose.

Issue #3603