ENH: html facelift for SceneViews

Implemented a Qt web view and populated it with HTML to allow
viewing, editing, restoring, creating scene views with the
layout requested.

The scene view thumbnail is being written to disk in a temp dir.
To get the Edit, Delete, Restore and Capture funtionality I'm capturing the
clicks on the links and parsing specially formatted urls
(Edit/Restore/Delete mrmlNodeID/Create)

Clear out the temp files on scene close and clear the memory cache, now
don't have to write them out all the time. Resize the images before
writing to disk so that the web view doesn't have to handle resizing.
Added in support for VTK6
Created new MRML web view based on the qMRMLChartView.
It allows better resizing (returns an invalid size hint,
sets size policy to expanding/expanding) so that the web
view doesn't keep getting reset to width = 800.
Added a plug in for the designer.
Save and restore the scroll position so user goes back
to the scene view node that they were previously viewing after
adding a new scene view.

Running on a mac, you can't see the scroll bar
on the data store page nor on the scene views
module widget, but it is visible on a linux build.
You can scroll using the trackpad and it is consistent,
so only show the scroll bar as needed.
The dialog superclass disables capturing a new
thumbnail on review/edit so don't resave the thumbnail type nor the image data.

Issue #1299

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

Remove unused variables or mark as unused parameters
in the scene views module update.

Issue #1299



git-svn-id: http://svn.slicer.org/Slicer4/trunk@23161 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: GIT_WC_INFO with date support for git only repository

To allow the date to be extracted from git only repository, the macro
"GIT_WC_INFO" has been extended to extract the commit date of the last
change.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23162 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Associate extension package name with the date of the last commit.

A similar problem was occurring while building the Slicer core and has
been fixed by r20028[1]. The associated issues were #1974 [2] and #1973 [3].

This commit associate to the package name the date of the latest commit
associated with the extension source repository. In case no repository
has been associated with the extension, the date "0000-00-00" will be
considered.

Thanks to "Chenxi Zhang <chenxizhang@fudan.edu.cn>" for reporting the
problem.

Associated discussion: http://slicer-devel.65872.n3.nabble.com/Problem-in-building-a-extension-tp4029816p4029857.html

Fixes #3356

[1] http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=20028
[2] http://www.na-mic.org/Bug/view.php?id=1973
[3] http://www.na-mic.org/Bug/view.php?id=1974

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23163 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fix build errors with VTK6

Fix two minor compile errors in VTK6 conditional branch of
qSlicerSceneViewsModuleWidget, that were introduced in r23160.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23164 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Remove non-existing qrc reference

Remove odd relative path reference to a .qrc file in a ".designer"
directory, that is not part of the repository and likely does not exist
on most machines.

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

After a losing battle trying to make the tree widget not use half the
space for the buttons, replace it with a list widget. Change the buttons
to have a stacked layout without enforced horizontal size, which gives
much more space to the extension text, add some padding so the icons
aren't so tight against each other, and increase the font size of the
extension name. Also, replace the random clipart icons with our own.

NOTE: Minimum size for the list items is not working correctly at the
moment. The text rendering needs some additional refactoring in order to
provide a correct minimum size, and a size hint needs to be set
explicitly on the list items.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23166 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix extension manager item sizing

Refactor qSlicerExtensionsDescriptionLabel to manage the text internally
as our own QTextDocument instance, and to do the painting ourselves.
This gives us greater control over the painting with less work, and
greatly simplifies producing a correct size hint, since we can just ask
the document for its size and get a correct answer regardless of
formatting, rather than trying to compute it ourselves from font
metrics. Now that we have a reasonable size hint, also use it to set the
item size hint, which ensures that the items are sufficiently tall e.g.
in case of the extra text line when an extension is incompatible.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23167 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Improve display of disabled extensions

Change extension manager to append '(disabled)' after the extension name
when an extension is disabled, and to use disabled text color, which is
both more consistent with the icon display, and improves recognizability
of disabled extensions.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23168 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Include ID in extension model

Change qSlicerExtensionsManagerModel to not remove the extension_id from
the extension metadata. The ID is needed to find the extension
information page, which we would eventually like to be accessible for
installed extensions.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23169 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Simplify metadata stripping

Rather than iterating over the whole metadata and copying keys one at a
time if not in the 'ignore' set, just copy the whole thing en-masse and
remove the unwanted values. This gives simpler code.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23170 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add 'More' link in extension manager (1/2)

Use the newly available extension ID to provide a 'More' link in the
extension manager. Add necessary code to implement link signals in
qSlicerExtensionsDescriptionLabel.

This is part 1 of 2; the links are not yet functional as we currently
lack a way to open the page. (We don't want to use the web view for
installing, as that would cause an undesired switch to the 'install'
tab.)

Note that the QSignalMapper for links is removed, as it is not needed;
the link URL provides the necessary information and can be used
directly.

Issue #3608

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23171 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add 'More' link in extension manager (2/2)

Add another web browser to extension manager to show details pages for
installed extensions Refactor navigation buttons so that they are
available for both tabs (different set of actual buttons, but same
concept). Tweak qSlicerExtensionsInstallWidget (which we need to use as
the browser, for various reasons, including so that we have 'uninstall'
rather than 'download' buttons) to have an option to not load the
'browse available extensions' page.

Issue #3608

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23172 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Always return to extensions list

Tweak extension manager to navigate the manage browser back to the
initial page on changing tabs, so that when the user changes to the
'install' tab and back to the 'manage' tab, they always see the list of
installed extensions.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23173 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Don't store style settings per version

Move the settings location where the user's selected style and
additional style paths are stored from the per-version store to the
general user store, as there is no particular reason why these would be
version specific, and having to set them after every update (especially
in a developer environment) is a little annoying.

Issue #3691

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23174 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Simplify qMRMLUtils::qImageToVtkImageData using vtkQImageToImageSource.

Fixes #1263

From: Christopher Mullins <christopher.mullins@kitware.com>

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

From: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23176 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix for crash in vtkImageResliceMask (#3301)

* Force the output image and mask extent to be the same to avoid the possibility of mismatched extents
* Add a NULL-pointer check after the backgroundMaskPtr setting to prevent application crash (worst case it causes partial screen refresh)

From: Andras Lasso <lasso@queensu.ca>

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