Difference between revisions of "Views Without Multi Widget"

From mitk.org
Jump to navigation Jump to search
m
(Refactor nigthly documentation link)
 
Line 27: Line 27:
 
==== Fixing API usage ====
 
==== Fixing API usage ====
  
The most prominent change is that you should now inherit your View class from [http://docs.mitk.org/nightly-qt4/classQmitkAbstractView.html QmitkAbstractView] instead of [http://docs.mitk.org/nightly-qt4/classQmitkFunctionality.html QmitkFunctionality] and direct calls to a [http://docs.mitk.org/nightly-qt4/classQmitkStdMultiWidget.html QmitkStdMultiWidget] instance should be avoided.
+
The most prominent change is that you should now inherit your View class from [http://docs.mitk.org/nightly/classQmitkAbstractView.html QmitkAbstractView] instead of [http://docs.mitk.org/nightly/classQmitkFunctionality.html QmitkFunctionality] and direct calls to a [http://docs.mitk.org/nightly/classQmitkStdMultiWidget.html QmitkStdMultiWidget] instance should be avoided.
  
 
<syntaxhighlight lang="cpp">
 
<syntaxhighlight lang="cpp">
Line 38: Line 38:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
You must implement the method [http://docs.mitk.org/nightly-qt4/BlueBerry/reference/api/html/structberry_1_1IWorkbenchPart.html#aebf0038640de5c2bed36a325efcbd3d7 SetFocus()]. Previously, an empty default implementation was provided by [http://docs.mitk.org/nightly-qt4/classQmitkFunctionality.html QmitkFunctionality] which generally is not a good default.
+
You must implement the method [http://docs.mitk.org/nightly/BlueBerry/reference/api/html/structberry_1_1IWorkbenchPart.html#aebf0038640de5c2bed36a325efcbd3d7 SetFocus()]. Previously, an empty default implementation was provided by [http://docs.mitk.org/nightly/classQmitkFunctionality.html QmitkFunctionality] which generally is not a good default.
  
 
<syntaxhighlight lang="cpp">
 
<syntaxhighlight lang="cpp">
Line 54: Line 54:
 
==== API changes ====
 
==== API changes ====
  
The [http://docs.mitk.org/nightly-qt4/classQmitkFunctionality.html QmitkFunctionality] API has been replaced by the one provided by [http://docs.mitk.org/nightly-qt4/classQmitkAbstractView.html QmitkAbstractView], [http://docs.mitk.org/nightly-qt4/structmitk_1_1IRenderWindowPart.html mitk::IRenderWindowPart], and related interfaces.
+
The [http://docs.mitk.org/nightly/classQmitkFunctionality.html QmitkFunctionality] API has been replaced by the one provided by [http://docs.mitk.org/nightly/classQmitkAbstractView.html QmitkAbstractView], [http://docs.mitk.org/nightly/structmitk_1_1IRenderWindowPart.html mitk::IRenderWindowPart], and related interfaces.
  
  
 
===== QmitkFunctionality API Mapping =====
 
===== QmitkFunctionality API Mapping =====
  
The following table maps the deprecated [http://docs.mitk.org/nightly-qt4/classQmitkFunctionality.html QmitkFunctionality] API to the new API offered by [http://docs.mitk.org/nightly-qt4/classQmitkAbstractView.html QmitkAbstractView] or related interfaces. If you are unsure
+
The following table maps the deprecated [http://docs.mitk.org/nightly/classQmitkFunctionality.html QmitkFunctionality] API to the new API offered by [http://docs.mitk.org/nightly/classQmitkAbstractView.html QmitkAbstractView] or related interfaces. If you are unsure
about a method's usage, please consult its [http://docs.mitk.org/nightly-qt4 Doxygen documentation].
+
about a method's usage, please consult its [http://docs.mitk.org/nightly Doxygen documentation].
  
 
{| class="wikitable" width=100% style="background-color:#ffffff;"
 
{| class="wikitable" width=100% style="background-color:#ffffff;"
| '''[http://docs.mitk.org/nightly-qt4/classQmitkFunctionality.html QmitkFunctionality]'''
+
| '''[http://docs.mitk.org/nightly/classQmitkFunctionality.html QmitkFunctionality]'''
| '''[http://docs.mitk.org/nightly-qt4/classQmitkAbstractView.html QmitkAbstractView]'''  
+
| '''[http://docs.mitk.org/nightly/classQmitkAbstractView.html QmitkAbstractView]'''  
 
|-
 
|-
| void [http://docs.mitk.org/nightly-qt4/classQmitkFunctionality.html#a3eea2aa34381ff5b493c8a7a82430bd4 OnSelectionChanged](std::vector<mitk::DataNode*>)
+
| void [http://docs.mitk.org/nightly/classQmitkFunctionality.html#a3eea2aa34381ff5b493c8a7a82430bd4 OnSelectionChanged](std::vector<mitk::DataNode*>)
 
| void OnSelectionChanged(berry::IWorkbenchPart::Pointer, const QList<mitk::DataNode::Pointer>&)
 
| void OnSelectionChanged(berry::IWorkbenchPart::Pointer, const QList<mitk::DataNode::Pointer>&)
 
|-
 
|-
| mitk::DataStorage::Pointer [http://docs.mitk.org/nightly-qt4/classQmitkFunctionality.html#a1ece3b5a4d550e0e606362cdf5726006 GetDefaultDataStorage]()
+
| mitk::DataStorage::Pointer [http://docs.mitk.org/nightly/classQmitkFunctionality.html#a1ece3b5a4d550e0e606362cdf5726006 GetDefaultDataStorage]()
| mitk::DataStorage::Pointer [http://docs.mitk.org/nightly-qt4/classQmitkAbstractView.html#a9c929a0f380e188bb704d48134cb7617 GetDataStorage]()
+
| mitk::DataStorage::Pointer [http://docs.mitk.org/nightly/classQmitkAbstractView.html#a9c929a0f380e188bb704d48134cb7617 GetDataStorage]()
 
|-
 
|-
| bool [http://docs.mitk.org/nightly-qt4/classQmitkFunctionality.html#a5002d38edafa20ea0132ea992c5545eb IsActivated]()
+
| bool [http://docs.mitk.org/nightly/classQmitkFunctionality.html#a5002d38edafa20ea0132ea992c5545eb IsActivated]()
|<span style="font-size: large; color: white; background: red">|X</span> (remeber the state yourself by implementing the [http://docs.mitk.org/nightly-qt4/structmitk_1_1ILifecycleAwarePart.html mitk::ILifecycleAwarePart] interface)
+
|<span style="font-size: large; color: white; background: red">|X</span> (remeber the state yourself by implementing the [http://docs.mitk.org/nightly/structmitk_1_1ILifecycleAwarePart.html mitk::ILifecycleAwarePart] interface)
 
|-
 
|-
| QmitkStdMultiWidget* [http://docs.mitk.org/nightly-qt4/classQmitkFunctionality.html#a86775317ab58b8fa64cd56283ca88c95 GetActiveStdMultiWidget](bool)  
+
| QmitkStdMultiWidget* [http://docs.mitk.org/nightly/classQmitkFunctionality.html#a86775317ab58b8fa64cd56283ca88c95 GetActiveStdMultiWidget](bool)  
| mitk::IRenderWindowPart* [http://docs.mitk.org/nightly-qt4/classQmitkAbstractView.html#a474ed928f45b061b1fdd0ff2b6a18dd8 GetRenderWindowPart](IRenderWindowPartStrategies)
+
| mitk::IRenderWindowPart* [http://docs.mitk.org/nightly/classQmitkAbstractView.html#a474ed928f45b061b1fdd0ff2b6a18dd8 GetRenderWindowPart](IRenderWindowPartStrategies)
 
|-
 
|-
| [http://docs.mitk.org/nightly-qt4/classQmitkFunctionality.html#a11d096126e050af3eeaf8d17aabbfb07 m_Parent]
+
| [http://docs.mitk.org/nightly/classQmitkFunctionality.html#a11d096126e050af3eeaf8d17aabbfb07 m_Parent]
 
|<span style="font-size: large; color: white; background: red">|X</span> (remember the parent yourself in CreateQtPartControl(QWidget*) )
 
|<span style="font-size: large; color: white; background: red">|X</span> (remember the parent yourself in CreateQtPartControl(QWidget*) )
 
|-
 
|-
| bool [http://docs.mitk.org/nightly-qt4/classQmitkFunctionality.html#a1bfb2236c415145f30f99beac25cae11 IsExclusiveFunctionality]()
+
| bool [http://docs.mitk.org/nightly/classQmitkFunctionality.html#a1bfb2236c415145f30f99beac25cae11 IsExclusiveFunctionality]()
|<span style="font-size: large; color: white; background: red">|X</span> (implement the [http://docs.mitk.org/nightly-qt4/structmitk_1_1IZombieViewPart.html mitk::IZombieViewPart] interface to indicate special behavior)
+
|<span style="font-size: large; color: white; background: red">|X</span> (implement the [http://docs.mitk.org/nightly/structmitk_1_1IZombieViewPart.html mitk::IZombieViewPart] interface to indicate special behavior)
 
|-
 
|-
 
|   
 
|   
| '''[http://docs.mitk.org/nightly-qt4/structmitk_1_1IRenderWindowPartListener.html mitk::IRenderWindowPartListener]'''  
+
| '''[http://docs.mitk.org/nightly/structmitk_1_1IRenderWindowPartListener.html mitk::IRenderWindowPartListener]'''  
 
|-
 
|-
| void [http://docs.mitk.org/nightly-qt4/classQmitkFunctionality.html#ae4f7598453e5628833a6a9895cc4aca8 StdMultiWidgetAvailable](QmitkStdMultiWidget&)
+
| void [http://docs.mitk.org/nightly/classQmitkFunctionality.html#ae4f7598453e5628833a6a9895cc4aca8 StdMultiWidgetAvailable](QmitkStdMultiWidget&)
| void [http://docs.mitk.org/nightly-qt4/structmitk_1_1IRenderWindowPartListener.html#ad4045472a83ebca19c79d5d8a8a801ec RenderWindowPartActivated](mitk::IRenderWindowPart*)
+
| void [http://docs.mitk.org/nightly/structmitk_1_1IRenderWindowPartListener.html#ad4045472a83ebca19c79d5d8a8a801ec RenderWindowPartActivated](mitk::IRenderWindowPart*)
 
|-
 
|-
 
|   
 
|   
| '''[http://docs.mitk.org/nightly-qt4/structmitk_1_1ILifecycleAwarePart.html mitk::ILifecycleAwarePart]'''  
+
| '''[http://docs.mitk.org/nightly/structmitk_1_1ILifecycleAwarePart.html mitk::ILifecycleAwarePart]'''  
 
|-
 
|-
| void [http://docs.mitk.org/nightly-qt4/classQmitkFunctionality.html#a8e2e5481d215cab424e4d6803ba21d0d Visible]()
+
| void [http://docs.mitk.org/nightly/classQmitkFunctionality.html#a8e2e5481d215cab424e4d6803ba21d0d Visible]()
| void [http://docs.mitk.org/nightly-qt4/structmitk_1_1ILifecycleAwarePart.html#a285a895975981ed6c8c17a0b260eb955 Visible(])
+
| void [http://docs.mitk.org/nightly/structmitk_1_1ILifecycleAwarePart.html#a285a895975981ed6c8c17a0b260eb955 Visible(])
 
|-
 
|-
| void [http://docs.mitk.org/nightly-qt4/classQmitkFunctionality.html#ae438df2a7e3e1badce997c034e3d73ec Hidden]()
+
| void [http://docs.mitk.org/nightly/classQmitkFunctionality.html#ae438df2a7e3e1badce997c034e3d73ec Hidden]()
| void [http://docs.mitk.org/nightly-qt4/structmitk_1_1ILifecycleAwarePart.html#a55cf62d8ad0e5bd7bf999a548768bb25 Hidden]()
+
| void [http://docs.mitk.org/nightly/structmitk_1_1ILifecycleAwarePart.html#a55cf62d8ad0e5bd7bf999a548768bb25 Hidden]()
 
|-
 
|-
 
|   
 
|   
| '''[http://docs.mitk.org/nightly-qt4/structmitk_1_1IZombieViewPart.html mitk::IZombieViewPart]'''
+
| '''[http://docs.mitk.org/nightly/structmitk_1_1IZombieViewPart.html mitk::IZombieViewPart]'''
 
|-
 
|-
| void [http://docs.mitk.org/nightly-qt4/classQmitkFunctionality.html#a4ffecad69e023b23bf50c48effe5523c Deactivated]()
+
| void [http://docs.mitk.org/nightly/classQmitkFunctionality.html#a4ffecad69e023b23bf50c48effe5523c Deactivated]()
| void [http://docs.mitk.org/nightly-qt4/structmitk_1_1IZombieViewPart.html#a4b766bcd29f5da52613252325bebec4b ActivatedZombieView] (berry::IWorkbenchPartReference::Pointer)
+
| void [http://docs.mitk.org/nightly/structmitk_1_1IZombieViewPart.html#a4b766bcd29f5da52613252325bebec4b ActivatedZombieView] (berry::IWorkbenchPartReference::Pointer)
 
|}
 
|}
  
Line 109: Line 109:
 
===== QmitkStdMultiWidget API Mapping =====
 
===== QmitkStdMultiWidget API Mapping =====
  
The direct usage of the [http://docs.mitk.org/nightly-qt4/classQmitkStdMultiWidget.html QmitkStdMultiWidget] API via an instance returned by QmitkFunctionality::GetActiveStdMultiWidget() is now deprecated. Use the table below to look up the corresponding methods offered by the new interfaces.
+
The direct usage of the [http://docs.mitk.org/nightly/classQmitkStdMultiWidget.html QmitkStdMultiWidget] API via an instance returned by QmitkFunctionality::GetActiveStdMultiWidget() is now deprecated. Use the table below to look up the corresponding methods offered by the new interfaces.
  
 
{| class="wikitable" width=100% style="background-color:#ffffff;"
 
{| class="wikitable" width=100% style="background-color:#ffffff;"
| '''[http://docs.mitk.org/nightly-qt4/classQmitkStdMultiWidget.html QmitkStdMultiWidget]'''
+
| '''[http://docs.mitk.org/nightly/classQmitkStdMultiWidget.html QmitkStdMultiWidget]'''
| '''[http://docs.mitk.org/nightly-qt4/structmitk_1_1IRenderWindowPart.html IRenderWindowPart]'''
+
| '''[http://docs.mitk.org/nightly/structmitk_1_1IRenderWindowPart.html IRenderWindowPart]'''
| '''[http://docs.mitk.org/nightly-qt4/structmitk_1_1ILinkedRenderWindowPart.html ILinkedRenderWindowPart]'''
+
| '''[http://docs.mitk.org/nightly/structmitk_1_1ILinkedRenderWindowPart.html ILinkedRenderWindowPart]'''
 
|-
 
|-
| [http://docs.mitk.org/nightly-qt4/classQmitkStdMultiWidget.html#a116123b3be2ec3b092c08721f555877a GetTimeNavigationController]()
+
| [http://docs.mitk.org/nightly/classQmitkStdMultiWidget.html#a116123b3be2ec3b092c08721f555877a GetTimeNavigationController]()
|  [http://docs.mitk.org/nightly-qt4/structmitk_1_1IRenderWindowPart.html#aeedf0e665ab24c3f8c18a40541b2c77c GetTimeNavigationController]()  
+
|  [http://docs.mitk.org/nightly/structmitk_1_1IRenderWindowPart.html#aeedf0e665ab24c3f8c18a40541b2c77c GetTimeNavigationController]()  
 
|   
 
|   
 
|-
 
|-
| [http://docs.mitk.org/nightly-qt4/classQmitkStdMultiWidget.html#a485f382824d3679c5811ac51a476d395 GetRenderWindow][X]()
+
| [http://docs.mitk.org/nightly/classQmitkStdMultiWidget.html#a485f382824d3679c5811ac51a476d395 GetRenderWindow][X]()
| [http://docs.mitk.org/nightly-qt4/structmitk_1_1IRenderWindowPart.html#a9cb035e817c7200ed32c49c3dc452484 GetRenderWindow](const QString&)
+
| [http://docs.mitk.org/nightly/structmitk_1_1IRenderWindowPart.html#a9cb035e817c7200ed32c49c3dc452484 GetRenderWindow](const QString&)
 
|   
 
|   
 
|-
 
|-
| [http://docs.mitk.org/nightly-qt4/classQmitkStdMultiWidget.html#a04b6cbca6740999719cb907b7fef4f54 GetCrossPosition]()
+
| [http://docs.mitk.org/nightly/classQmitkStdMultiWidget.html#a04b6cbca6740999719cb907b7fef4f54 GetCrossPosition]()
| [http://docs.mitk.org/nightly-qt4/structmitk_1_1IRenderWindowPart.html#a7545949190945fd38cedb5e2e4a404ec GetSelectedPosition]()
+
| [http://docs.mitk.org/nightly/structmitk_1_1IRenderWindowPart.html#a7545949190945fd38cedb5e2e4a404ec GetSelectedPosition]()
 
|   
 
|   
 
|-
 
|-
| [http://docs.mitk.org/nightly-qt4/classQmitkStdMultiWidget.html#ad5ce6aa34618ee630272072ecd97861d MoveCrossToPosition](const mitk::Point3D&)
+
| [http://docs.mitk.org/nightly/classQmitkStdMultiWidget.html#ad5ce6aa34618ee630272072ecd97861d MoveCrossToPosition](const mitk::Point3D&)
| [http://docs.mitk.org/nightly-qt4/structmitk_1_1IRenderWindowPart.html#a6c3c9c3e27cfccb482a2661fdda17b3e SetSelectedPosition]()
+
| [http://docs.mitk.org/nightly/structmitk_1_1IRenderWindowPart.html#a6c3c9c3e27cfccb482a2661fdda17b3e SetSelectedPosition]()
 
|   
 
|   
 
|-
 
|-
| [http://docs.mitk.org/nightly-qt4/classQmitkStdMultiWidget.html#ad3e8a645628be855f068cac06acc0e94 GetSlicesRotator]()
+
| [http://docs.mitk.org/nightly/classQmitkStdMultiWidget.html#ad3e8a645628be855f068cac06acc0e94 GetSlicesRotator]()
 
|   
 
|   
| [http://docs.mitk.org/nightly-qt4/structmitk_1_1ILinkedRenderWindowPart.html#ac05814f10aeb9b17806dd475a9b13248 GetSlicesRotator]()
+
| [http://docs.mitk.org/nightly/structmitk_1_1ILinkedRenderWindowPart.html#ac05814f10aeb9b17806dd475a9b13248 GetSlicesRotator]()
 
|-
 
|-
| [http://docs.mitk.org/nightly-qt4/classQmitkStdMultiWidget.html#ac3a3e5338ab4d577c94ffcdf1da3f69d GetSlicesSwiveller]()
+
| [http://docs.mitk.org/nightly/classQmitkStdMultiWidget.html#ac3a3e5338ab4d577c94ffcdf1da3f69d GetSlicesSwiveller]()
 
|   
 
|   
| [http://docs.mitk.org/nightly-qt4/structmitk_1_1ILinkedRenderWindowPart.html#a70ca2b68e6f9ea7d50a06ee945e31a5f GetSlicesSwiveller]()
+
| [http://docs.mitk.org/nightly/structmitk_1_1ILinkedRenderWindowPart.html#a70ca2b68e6f9ea7d50a06ee945e31a5f GetSlicesSwiveller]()
 
|-
 
|-
| [http://docs.mitk.org/nightly-qt4/classQmitkStdMultiWidget.html#aa144965da14b62e12d23c1ebb35260dc SetWidgetPlanesVisibility](bool)
+
| [http://docs.mitk.org/nightly/classQmitkStdMultiWidget.html#aa144965da14b62e12d23c1ebb35260dc SetWidgetPlanesVisibility](bool)
 
|   
 
|   
| [http://docs.mitk.org/nightly-qt4/structmitk_1_1ILinkedRenderWindowPart.html#a5e32e5a451b1a328c5740ba96fd7a557 EnableSlicingPlanes](bool)
+
| [http://docs.mitk.org/nightly/structmitk_1_1ILinkedRenderWindowPart.html#a5e32e5a451b1a328c5740ba96fd7a557 EnableSlicingPlanes](bool)
 
|-
 
|-
| [http://docs.mitk.org/nightly-qt4/classQmitkStdMultiWidget.html#a66f516f710450bbaa94730597cdd8239 RequestUpdate]()
+
| [http://docs.mitk.org/nightly/classQmitkStdMultiWidget.html#a66f516f710450bbaa94730597cdd8239 RequestUpdate]()
|  [http://docs.mitk.org/nightly-qt4/structmitk_1_1IRenderWindowPart.html#a554614c3e6a8b9c684b9f26138bc161d RequestUpdate]()  
+
|  [http://docs.mitk.org/nightly/structmitk_1_1IRenderWindowPart.html#a554614c3e6a8b9c684b9f26138bc161d RequestUpdate]()  
 
|   
 
|   
 
|-
 
|-
| [http://docs.mitk.org/nightly-qt4/classQmitkStdMultiWidget.html#aeb34b798760332b3f9f4426a018ba79e ForceImmediateUpdate]()
+
| [http://docs.mitk.org/nightly/classQmitkStdMultiWidget.html#aeb34b798760332b3f9f4426a018ba79e ForceImmediateUpdate]()
|  [http://docs.mitk.org/nightly-qt4/structmitk_1_1IRenderWindowPart.html#a782c3d9dcb1b5f39ff7b53dd71719957 ForceImmediateUpdate]()  
+
|  [http://docs.mitk.org/nightly/structmitk_1_1IRenderWindowPart.html#a782c3d9dcb1b5f39ff7b53dd71719957 ForceImmediateUpdate]()  
 
|   
 
|   
 
|-
 
|-
| [http://docs.mitk.org/nightly-qt4/classQmitkStdMultiWidget.html#a41646540f87ee0d44e1a70221ad0e26d DisableColoredRectangles]()
+
| [http://docs.mitk.org/nightly/classQmitkStdMultiWidget.html#a41646540f87ee0d44e1a70221ad0e26d DisableColoredRectangles]()
| [http://docs.mitk.org/nightly-qt4/structmitk_1_1IRenderWindowPart.html#a5a1e80ef29bc1d01c05647323ca1d576 EnableDecorations](false, QStringList(DECORATION_BORDER))
+
| [http://docs.mitk.org/nightly/structmitk_1_1IRenderWindowPart.html#a5a1e80ef29bc1d01c05647323ca1d576 EnableDecorations](false, QStringList(DECORATION_BORDER))
 
|   
 
|   
 
|-
 
|-
| [http://docs.mitk.org/nightly-qt4/classQmitkStdMultiWidget.html#afc87bab4a9f7cec2f7783cb8c4cff010 DisableDepartmentLogo]()
+
| [http://docs.mitk.org/nightly/classQmitkStdMultiWidget.html#afc87bab4a9f7cec2f7783cb8c4cff010 DisableDepartmentLogo]()
| [http://docs.mitk.org/nightly-qt4/structmitk_1_1IRenderWindowPart.html#a5a1e80ef29bc1d01c05647323ca1d576 EnableDecorations](false, QStringList(DECORATION_LOGO))
+
| [http://docs.mitk.org/nightly/structmitk_1_1IRenderWindowPart.html#a5a1e80ef29bc1d01c05647323ca1d576 EnableDecorations](false, QStringList(DECORATION_LOGO))
 
|   
 
|   
 
|-
 
|-
| [http://docs.mitk.org/nightly-qt4/classQmitkStdMultiWidget.html#a9b90dd299ddba7494575849078adfb93 DisableGradientBackground]()
+
| [http://docs.mitk.org/nightly/classQmitkStdMultiWidget.html#a9b90dd299ddba7494575849078adfb93 DisableGradientBackground]()
| [http://docs.mitk.org/nightly-qt4/structmitk_1_1IRenderWindowPart.html#a5a1e80ef29bc1d01c05647323ca1d576 EnableDecorations](false, QStringList(DECORATION_BACKGROUND))
+
| [http://docs.mitk.org/nightly/structmitk_1_1IRenderWindowPart.html#a5a1e80ef29bc1d01c05647323ca1d576 EnableDecorations](false, QStringList(DECORATION_BACKGROUND))
 
|   
 
|   
 
|}
 
|}
  
Calls to the global [http://docs.mitk.org/nightly-qt4/classmitk_1_1RenderingManager.html mitk::RenderingManager] instance should be replaced by calls to the [http://docs.mitk.org/nightly-qt4/structmitk_1_1IRenderingManager.html mitk::IRenderingManager] instance returned by the [http://docs.mitk.org/nightly-qt4/structmitk_1_1IRenderWindowPart.html#a80c097c227868915af22986e173ec95e mitk::IRenderWindowPart::GetRenderingManager()] method.
+
Calls to the global [http://docs.mitk.org/nightly/classmitk_1_1RenderingManager.html mitk::RenderingManager] instance should be replaced by calls to the [http://docs.mitk.org/nightly/structmitk_1_1IRenderingManager.html mitk::IRenderingManager] instance returned by the [http://docs.mitk.org/nightly/structmitk_1_1IRenderWindowPart.html#a80c097c227868915af22986e173ec95e mitk::IRenderWindowPart::GetRenderingManager()] method.
  
If a rendering update is requested from a [http://docs.mitk.org/nightly-qt4/classQmitkAbstractView.html QmitkAbstractView] subclass, the request should be done by calling [http://docs.mitk.org/nightly-qt4/classQmitkAbstractView.html#adb0d756b51c3734bd3031618fe5aaea7 QmitkAbstractView::RequestRenderWindowUpdate()].
+
If a rendering update is requested from a [http://docs.mitk.org/nightly/classQmitkAbstractView.html QmitkAbstractView] subclass, the request should be done by calling [http://docs.mitk.org/nightly/classQmitkAbstractView.html#adb0d756b51c3734bd3031618fe5aaea7 QmitkAbstractView::RequestRenderWindowUpdate()].

Latest revision as of 15:44, 1 June 2016

Motivation

In the past, BlueBerry-based MITK Views always had a hard dependency on the QmitkStdMultiWidget (the big widget with four render windows, in the center of the application). This dependency was partly due to API misuse but also due to the lack of a proper abstraction layer.

Recently, more use cases popped up which require a specialized render window editor. However the functionality offered by most MITK Views is tied to the QmitkStdMultiWidget although they would theoretically be functional in a much broader scope.


Recent Changes

To enable MITK Views to work together with an abstract render window editor, the work on bug #10963 has been merged into MITK master on 23.02.2012.

If you wrote your own MITK View it is likely that you will be affected by these changes. The changes make it necessary that you take one of two possible actions in order to keep your View working:

  1. In your plug-ins manifest_headers.cmake file, change the plug-in dependency org.mitk.gui.qt.common to org.mitk.gui.qt.common.legacy

<syntaxhighlight lang="cmake"> set(Require-Plugin org.mitk.gui.qt.common.legacy) </syntaxhighlight>

This will keep your plug-in functional for the time being. However, you should consider migrating your plug-in code to the new API (see below).

  1. Keep your plug-in dependencies as they are and fix your plug-in code. See the guideline below.


Fixing API usage

The most prominent change is that you should now inherit your View class from QmitkAbstractView instead of QmitkFunctionality and direct calls to a QmitkStdMultiWidget instance should be avoided.

<syntaxhighlight lang="cpp"> //#include <QmitkStdMultiWidget.h> <-- Remove this include //#include <QmitkFunctionality.h> <-- Remove this include

  1. include <QmitkAbstractView.h>

//class MyView : public QmitkFunctionality {...}; class MyView : public QmitkAbstractView {...}; </syntaxhighlight>

You must implement the method SetFocus(). Previously, an empty default implementation was provided by QmitkFunctionality which generally is not a good default.

<syntaxhighlight lang="cpp"> void SetFocus() {

 m_Controls->someWidget->setFocus();

} </syntaxhighlight>

You can have a look at a commit fixing the API issues for a very simple plug-in here:

https://github.com/MITK/MITK-ProjectTemplate/commit/5ccc8d0048848e2c2968f1f64d8467bc0901df9b


API changes

The QmitkFunctionality API has been replaced by the one provided by QmitkAbstractView, mitk::IRenderWindowPart, and related interfaces.


QmitkFunctionality API Mapping

The following table maps the deprecated QmitkFunctionality API to the new API offered by QmitkAbstractView or related interfaces. If you are unsure about a method's usage, please consult its Doxygen documentation.

QmitkFunctionality QmitkAbstractView
void OnSelectionChanged(std::vector<mitk::DataNode*>) void OnSelectionChanged(berry::IWorkbenchPart::Pointer, const QList<mitk::DataNode::Pointer>&)
mitk::DataStorage::Pointer GetDefaultDataStorage() mitk::DataStorage::Pointer GetDataStorage()
bool IsActivated() X (remeber the state yourself by implementing the mitk::ILifecycleAwarePart interface)
QmitkStdMultiWidget* GetActiveStdMultiWidget(bool) mitk::IRenderWindowPart* GetRenderWindowPart(IRenderWindowPartStrategies)
m_Parent X (remember the parent yourself in CreateQtPartControl(QWidget*) )
bool IsExclusiveFunctionality() X (implement the mitk::IZombieViewPart interface to indicate special behavior)
mitk::IRenderWindowPartListener
void StdMultiWidgetAvailable(QmitkStdMultiWidget&) void RenderWindowPartActivated(mitk::IRenderWindowPart*)
mitk::ILifecycleAwarePart
void Visible() void Visible()
void Hidden() void Hidden()
mitk::IZombieViewPart
void Deactivated() void ActivatedZombieView (berry::IWorkbenchPartReference::Pointer)


QmitkStdMultiWidget API Mapping

The direct usage of the QmitkStdMultiWidget API via an instance returned by QmitkFunctionality::GetActiveStdMultiWidget() is now deprecated. Use the table below to look up the corresponding methods offered by the new interfaces.

QmitkStdMultiWidget IRenderWindowPart ILinkedRenderWindowPart
GetTimeNavigationController() GetTimeNavigationController()
GetRenderWindow[X]() GetRenderWindow(const QString&)
GetCrossPosition() GetSelectedPosition()
MoveCrossToPosition(const mitk::Point3D&) SetSelectedPosition()
GetSlicesRotator() GetSlicesRotator()
GetSlicesSwiveller() GetSlicesSwiveller()
SetWidgetPlanesVisibility(bool) EnableSlicingPlanes(bool)
RequestUpdate() RequestUpdate()
ForceImmediateUpdate() ForceImmediateUpdate()
DisableColoredRectangles() EnableDecorations(false, QStringList(DECORATION_BORDER))
DisableDepartmentLogo() EnableDecorations(false, QStringList(DECORATION_LOGO))
DisableGradientBackground() EnableDecorations(false, QStringList(DECORATION_BACKGROUND))

Calls to the global mitk::RenderingManager instance should be replaced by calls to the mitk::IRenderingManager instance returned by the mitk::IRenderWindowPart::GetRenderingManager() method.

If a rendering update is requested from a QmitkAbstractView subclass, the request should be done by calling QmitkAbstractView::RequestRenderWindowUpdate().