ENH: Expose qMRMLTreeView scene model and proxy model to python.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23228 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Remove forgotten debug statement in installExtension

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23229 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Exclude json extension from git hook line lengths check

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23230 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix failing qSlicerExtensionsManagerModelTest

Commit r23200 added icon URL to extension metadata and commit 9dc157 [1]
updated the server to return the iconurl, this commit
fixes the server mock data also adding iconurl .

[1] https://github.com/midasplatform/slicerpackages/commit/9dc1575d2bf9d3c053700f541cdb5034f8328eee

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