COMP: Update CTK - Fixes windows build error

Error that will be fixed:

31>6>4>..\..\..\..\CTK\Libs\Widgets\ctkTestApplication.cpp(129) : error C2228: left of '.toLocal8Bit' must have class/struct/union
31>6>4>        type is 'const char *'


All other changes:

$ git shortlog dc9fd81..383c477 --no-merges
Andreas Fetzer (6):
      Added support for modification time in xnat
      Adaptions to changes in qRestAPI
      Cleanup
      Added support for resources for all levels of the xnat data hierachy
      Fixed reconstruction to diplay content properly
      Cleanup

Jean-Christophe Fillion-Robin (1):
      Fix build of ctkTestApplication.cpp with Qt4. Fixes #482

Sascha Zelzer (7):
      Always use brackets for if statements.
      Fix unused parameter warning.
      qRegisterMetaType ctkServiceReference and QSharedPointer<ctkPlugin>, because the weakness of Qt MetaType system, we need to     register type early.
      Break the #include <QtSql> into     #include <QLibrary>     #include <QSqlQuery>     #include <QDebug>     #include <QSqlError>     #include <QPluginLoader>     #include <QDirIterator>     because Qt
      Work around different wchar_t settings.
      Use ascii ' instead unicode ‘’
      Fix ctkConsoleTest for Qt5.

Yonggang Luo (6):
      Move the REGISTERED macro check to the front of the ctkServiceEvent file.
      It's should return T() but QVariant().
      Add the lost Q_D(const PluginTracker); in ctkPluginTracker<T>::isEmpty()
      Use unicode version FormatMessageW in ctkPluginFrameworkLauncher::appendPathEnv
      Use ascii ' instead of unicode ’ in file ctkEventAdmin.h
      use GetProcAddress to safe calling to RtlCaptureStackBackTrace in ctkBackTrace.cpp

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23262 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.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23263 3bd1e089-480b-0410-8dfb-8563597acbee
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).

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23264 3bd1e089-480b-0410-8dfb-8563597acbee
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

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23265 3bd1e089-480b-0410-8dfb-8563597acbee
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).

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23266 3bd1e089-480b-0410-8dfb-8563597acbee
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.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23267 3bd1e089-480b-0410-8dfb-8563597acbee
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).

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23268 3bd1e089-480b-0410-8dfb-8563597acbee
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

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23269 3bd1e089-480b-0410-8dfb-8563597acbee
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.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23270 3bd1e089-480b-0410-8dfb-8563597acbee
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".

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23271 3bd1e089-480b-0410-8dfb-8563597acbee
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.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23272 3bd1e089-480b-0410-8dfb-8563597acbee
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.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23273 3bd1e089-480b-0410-8dfb-8563597acbee
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).

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23274 3bd1e089-480b-0410-8dfb-8563597acbee
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

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23275 3bd1e089-480b-0410-8dfb-8563597acbee
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.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23276 3bd1e089-480b-0410-8dfb-8563597acbee
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

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23277 3bd1e089-480b-0410-8dfb-8563597acbee
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

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23278 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Prompt to load extension modules (WIP)

Create a dialog to prompt the user if they want to load modules
available from a selected extension. (Also used to ask the user if they
want to load a newly-created module immediately.) The UI is implemented,
but the actual loading requires changes to the C++ interfaces, and so is
not hooked up yet.

Issue #3603

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23279 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Allow loading modules [from Python]

Move qSlicerAbstractModuleFactoryManager::registerModule(QFileInfo) from
protected to public Q_INVOKABLE, so that users (Python users in
particular) can manually register additional modules at run time. Add
new (also public Q_INVOKABLE) method to qSlicerModuleFactoryManager
allowing users to request that a specific list of modules be loaded (and
instantiated, if necessary).

This allows e.g. a user at the Python console to dynamically load a
module that is not in the search paths at run time, without modifying
the search paths. In particular, this will be useful to the Extension
Wizard module.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23280 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Implement loading of extension modules

Hook up the loading of modules in the Extension Wizard when requesting
to do so. (See previous two commits.)

Issue #3603

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