COMP: typo in patch provided for 22047, should be greater-or-equal

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22051 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Harmonize qMRMLNodeComboBox properties

Previously, the property currentNodeId of the node combobox was set with an
id (QString) and sent a signal with a node (vtkMRMLNode*) which can be
confusing in the widgets using it. Now, the node combobox as an id
property or a node property.

See Issue #1694

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22052 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add Units module

The unit module handle the unit in slicer. The units are singleton in the
scene that belong to a quantity. So far the only quantity available are
length and time. The units are settings saved with the application.

See Issue #1694

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22053 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add Unit compatible widget

Added new widgets that can observes the MRML scene to deduce the
current unit for a quantity type (the singleton vtkMRMLSelectionNode is
used for storage in this case).

See Issue #1694

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22054 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Apply units widget to slicer

Modified:
- Volume info widget: Made it a qMRMLWidget so it can propagate the
mrml scene.
- Annotations: Add to vtk widget and GUI
- Tractography Interactive seeding: Add units to GUI
- Slice controller: add units in spinboxes
- Volumes: add units to GUI
- Editor: add units to paint and island effects

See Issue #1694

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22055 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Only one unit per quantity accessible to the user

Now only one unit per quantity is accessible to the user. This unit can
be customized and it's logged in the settings so it can be restored
when opening the application.
On the implementation side of things:
- Add access method to all the referenced unit nodes in the selection node
- Remove the unit widget
- Hide module
- Create the unit widget to easily customize units (add the plugins with
it)
- Create the unit settings widget using the unit widget. This widget
is tailored to be used in the setting panel (no plugin)
- Refactorize the setting panel to use the setting unit widget and
log the unit node properties
- Create only node for each quantity exposed to the user. The preset nodes
are kept in a special scene in the logic.

See Issue #1694

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22056 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Rename forgotten currentNodeId to currentNodeID

Following Revision 22052, the signal was renamed currentNodeID. Fixing
forgotten python script.

See Issue #1694

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22057 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: fix build error on mac (can't return false for pointer)

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22058 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add currentNodeId() as a deprecated method

This will falicitate the transition for extensions and projects depending
on Slicer.

See Issue #1694

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22059 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: vtkMRMLUnitNodeTest1 use size_t instead of int

This fixes the warnings for linux brought by r22053

  /Slicer-TR/Libs/MRML/Core/Testing/vtkMRMLUnitNodeTest1.cxx: In function ‘bool TestScenesUnitNodeID(vtkMRMLScene*)’:
  /Slicer-TR/Libs/MRML/Core/Testing/vtkMRMLUnitNodeTest1.cxx:86: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  /Slicer-TR/Libs/MRML/Core/Testing/vtkMRMLUnitNodeTest1.cxx:92: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  /Slicer-TR/Libs/MRML/Core/Testing/vtkMRMLUnitNodeTest1.cxx: In function ‘bool TestUnitNodeAttribute(vtkMRMLScene*)’:
  /Slicer-TR/Libs/MRML/Core/Testing/vtkMRMLUnitNodeTest1.cxx:121: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]

See Issue #1694
BUG: Fix annotation logic error

Two things here:
1 - Unused variable warning:
  Slicer4/Modules/Loadable/Annotations/Logic/vtkSlicerAnnotationModuleLogic.cxx:1998: warning: unused variable 'lengthUnit' [-Wunused-variable]

This is fixed by deleting the unused pointer

2 - ostringstream error:
  /Slicer4/Modules/Loadable/Annotations/Logic/vtkSlicerAnnotationModuleLogic.cxx:2018: error: no matching function for call to 'std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream(double)'
  /Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/sstream:433: note: candidates are: std::basic_ostringstream<_CharT, _Traits, _Alloc>::basic_ostringstream(const std::basic_string<_CharT, _Traits, _Alloc>&, std::_Ios_Openmode) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]
  /Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/sstream:412: note:                 std::basic_ostringstream<_CharT, _Traits, _Alloc>::basic_ostringstream(std::_Ios_Openmode) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]
  /Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/iosfwd:79: note:                 std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream(const std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >&)
  /Slicer4/Modules/Loadable/Annotations/Logic/vtkSlicerAnnotationModuleLogic.cxx:2107: error: no matching function for call to 'vtkMRMLUnitNode::WrapValueWithPrefixAndSuffix(std::string)'
  /Slicer4/Libs/MRML/Core/vtkMRMLUnitNode.h:73: note: candidates are: std::string vtkMRMLUnitNode::WrapValueWithPrefixAndSuffix(std::string&)
  /Slicer4/Modules/Loadable/Annotations/Logic/vtkSlicerAnnotationModuleLogic.cxx:2128: error: no matching function for call to 'vtkMRMLUnitNode::WrapValueWithPrefixAndSuffix(std::string)'
  /Slicer4/Libs/MRML/Core/vtkMRMLUnitNode.h:73: note: candidates are: std::string vtkMRMLUnitNode::WrapValueWithPrefixAndSuffix(std::string&)

This is fized by using the ostringstream more properly.

See Issue #1694
ENH: Refactor the "WrapValueWith" in unit node

The name is changed to be clearer and more standard with regards to the
application's API.
Support for vtkVariant is added for a better interface with vtk.
The only exposed method now is GetDisplayTextFromValue(), the other methods
are protected as they are of little interest for the user.
All these methods are also virtual now to allow potential customization.

See Issue #1694