BUG: Explicitly tell the user if extensions can't be installed

In case either the Slicer settings file or, the extensions install
directory are not readable/writable, a nicely formatted message will
be displayed to the user instead of the app-store page,

Note that the associated messages are also logged.

Fixes #3179

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22487 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Update ITKv4 project

$ git shortlog a8429da..97a08e0

Matthew McCormick (3):
      BUG: Enable MRC IO in UseITK whenever the ITKReview module is enabled.
      Merge branch 'MRC-UseITK' into release
      COMP: Fix NIFTI CMake variable separation warning.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22521 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: 3388. Added observer events parameter to the vtkMRMLNode::AddNodeReferenceRole() method, so that the events can be set only once in subclasses. Added observed events to DisplayableNode and TransformableNode. Simplified and unified reference implementation in TransformableNode

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22523 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: 3413. Fixed crash on writing a custom reference.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22524 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fix "unused-but-set-variable" warning in qMRMLItemDelegate

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22525 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix copy/paste in python console / Update CTK projects

$ git shortlog 0e21d85e..90000c3

Jean-Christophe Fillion-Robin (1):
      Merge pull request #366 from finetjul/294-fix-ctkconsole-copy-paste

Julien Finet (5):
      Fix copy/paste in ctkConsole
      Add private implementation to ctkCoordinatesWidget
      Merge branch '355-ctkcoordinateswidget-pimpl'
      Add ctkCoordinatesWidget_p.h
      Merge branch '355-ctkcoordinateswidget-pimpl'

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22526 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: 3388. Fixed crash in test when referenceRole=0

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22527 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: convert to integer explicitly to avoid ambiguity

Fixes #3420


git-svn-id: http://svn.slicer.org/Slicer4/trunk@22528 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: fix the grey slice viewers labels to be distinctive

Per comment from Jim, see issue 2384


git-svn-id: http://svn.slicer.org/Slicer4/trunk@22529 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: fix the numbering of slice viewer labels

In the situations when Yellow/Green/Red viewers are present, the additional viewers should be numbered starting from 4.


git-svn-id: http://svn.slicer.org/Slicer4/trunk@22530 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: adding 3x3 layout

see issue 2384


git-svn-id: http://svn.slicer.org/Slicer4/trunk@22531 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: reverting previous change as it caused compile error on Win

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22532 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: qMRMLLayoutManagerTest(s) - Fix (Selection|Interaction)Node warnings

This commit will fix the following warnings:

147: Warning: In /home/jchris/Projects/Slicer/Libs/MRML/DisplayableManager/vtkMRMLAbstractDisplayableManager.cxx, line 583
147: vtkMRMLThreeDReformatDisplayableManager (0x2c92750): CreateIfPossible - MRMLScene does NOT contain any InteractionNode
147:
147: Warning: In /home/jchris/Projects/Slicer/Libs/MRML/DisplayableManager/vtkMRMLAbstractDisplayableManager.cxx, line 591
147: vtkMRMLThreeDReformatDisplayableManager (0x2c92750): CreateIfPossible - MRMLScene does NOT contain any SelectionNode

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

Ensure ModelDisplayableManager properly delete resources when
a new scene is set.

Ensure the slicer logic set the scene on layers when a new
scene is set a second time.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22534 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Re-organize qMRMLLayoutManagerTest(1|2|3|4) for easier readability

Factor out code into convenience functions:
 - checkViewArrangement
 - checkNumberOfItems

Use vtkNew when possible

There is no need to explicitly delete the layout manager since
it was a QWidget instantiated on the stack as a parent.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22535 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Update "removeSliceView" to be consistent with other remote methods

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22536 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Update qMRMLLayoutManagerTest2 to check for reference count

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22537 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Improve readability of MRML tests using vtkNew where possible

Simplify code removing tests for null object already being done
in the helper macro "EXERCISE_BASIC_OBJECT_METHODS"

For example, the following should not be needed:

  vtkNew<vtkFoo> foo;
  if (foo.GetPointer() == 0)
  {
    std::cerr << "Failed to instantiate vtkFoo" << std::endl;
  }

Instead, the following should be used:

  EXERCISE_BASIC_OBJECT_METHODS(foo.GetPointer())

Remove use of unnecessary vtkSmartPointer to check return value. Indeed,
since the operator "==" of the vtkSmartPointer is overloaded to compare with
the pointed object, there is no need to used a smart pointer. [1]

// ---------
vtkSmartPointer<vtkMRMLDisplayableNode> pnode = node1->GetDisplayableNode();
std::cout << "GetDisplayableNode returned "
          << (pnode == NULL ? "null" : "not null")
          << std::endl;
// ---------

has been changed into

// ---------
vtkMRMLDisplayableNode* pnode = node1->GetDisplayableNode();
std::cout << "GetDisplayableNode returned "
          << (pnode == NULL ? "null" : "not null")
          << std::endl;
// ---------

[1] https://github.com/Kitware/VTK/blob/0e0674a3695fdeaf01ce87dfc04e32111b7402e0/Common/vtkSmartPointerBase.h#L104

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22538 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Improve readability using vtkNew where possible

In addition to be shorter, it simply conveys the idea of locally
instantiating an object.

Indeed, vtkNew allow to instantiate an object on the heap and deleting it
when it goes out of scope if its reference count has been incremented by
either assigning the object to a smart pointer or calling Register.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22539 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Fix leak in vtkMRMLCameraDisplayableManagerTest1

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