Hi,

further investigations revealed that using the "lib" prefix in the US_INITIALIZE_MODULE macro and the usFunctionEmbedResources CMake function solves the problem (works both on Windows and Linux).

We should have followed the documentation of the macro and CMake function closely, which states that you have to use the library name. On Linux, omitting the "lib" prefix still works (MITK modules do not have the "lib" prefix on Windows, but they do on Linux whereas MITK plug-ins always have a "lib" prefix) but on Windows the library is not found if you are using for example "org_mitk_gui_qt_imagenavigator" instead of "liborg_mitk_gui_qt_imagenavigator".

I attached again a test-patch for the imagenavigator which did the trick for me on both Linux and Windows.

Best,
Sascha

On 12/13/2013 11:07 AM, Miguel Nunes wrote:
Hi Sascha,

Those are good news! I hope you can find the bug really quick, and provide us 
with a solution :)

Best regards and have a nice weekend!
Miguel
On Friday, December 13, 2013 11:01 CET, Sascha Zelzer <[email protected]> wrote:
Hi,

just a short update. While it did work for me on Linux, it didn't work
on Windows. It is related to some library naming issues (using the "lib"
prefix or not). I am still investigating it and will let you know when a
fix is available.

Best,
Sascha

On 12/09/2013 12:14 PM, Miguel Nunes wrote:
   Hi Sascha,

when I apply the patch there are no xml files... I guess I have to add them 
manually.

I am not connected to the SVN. I just got the zip with the source.

So, I rebuild MITK with the new patch with success... but it still doesn't load 
the xml files.

0.50 blueberry.ui.wrkbncPlg: LOG: Unable to create view ID org.mitk.views.imagen
avigator: Part initialization error: D:\src\MITK2013.09.0\Core\Code\Interactions
\mitkStateMachineContainer.cpp:73:
Resource not valid. State machine pattern not found:MyInteractor.xml
0.64 blueberry.ui.wrkbnc: BlueBerry Workbench ready


As you can see I am using 2013.09.
Best,
Miguel
On Monday, December 9, 2013 11:40 CET, Sascha Zelzer <[email protected]> wrote:
Hi,

could you try applying the patch as it is and check if the patched
imagenavigator plug-in "works"?

Also, what MITK version are you using again?

- Sascha

On 12/08/2013 06:15 PM, Miguel Nunes wrote:
Hello Sascha,

I have created a new plugin and tried to do the basics of adding the xml 
resources, but without success.

Maybe it only works in plugins directly connected to MITK. My plugin is in new 
MITK project that uses my base MITK build as an external MITK.

Is it possible that MITK gets lots somehow by having this structure?
Best,
Miguel
On Friday, December 6, 2013 16:15 CET, Sascha Zelzer <[email protected]> wrote:
On 12/05/2013 05:17 PM, Miguel Nunes wrote:
Thanks for going through all that work Sascha.

My resources vector has size zero, but a name is printed which is the same I pass on the line: 
US_INITIALIZE_MODULE("My Module", "org_proj_plugin")
Maybe something is not right in your CMake files then. Looks like the
generated resource .cpp file was not compiled into the plug-in's shared
library.

I wonder if you could send us your own plugin, sascha, in zip file, so we can 
compare, build and run locally.
I attached a patch file where I just added some code to the image
navigator plug-in for testing purposes.

Best,
Sascha

Kind regards,
Miguel
On Thursday, December 5, 2013 16:23 CET, Sascha Zelzer <[email protected]> wrote:
Guys, I just tried it myself and added some interaction xml files to a
plug-in and instantiate a mitk::DataInteractor and loaded the plug-ins
xml files. Everything worked okay so far.

@Sebastian I noticed the your config xml file was written differently in
the files.cmake file and your C++ code.


You can list all embedded resources of your plug-in by doing something
like this:

us::Module* module = us::GetModuleContext()->GetModule();
std::vector<us::ModuleResource> resources = module->FindResources("/", "*", 
true);
for (std::vector<us::ModuleResource>::iterator iter = resources.begin(); iter 
!= resources.end(); ++iter)
{
       MITK_INFO << "[" << module->GetName() << "] resource: " << 
iter->GetResourcePath();
}


- Sascha

On 12/05/2013 03:21 PM, Miguel Nunes wrote:
yes, I confirm.

Also, on the plugin's ..._resources.cpp fie I can see the xml were found and 
generated:

static const unsigned char us_resource_data[] = {
       // D:\src\* PATH * \resources\Interactions\StatemachineVrvis.xml
       0x0,0x0,0x0,0x90,
       
0x0,0x0,0x0,0xdd,0x55,0x8f,0x4d,0xa,0x2,0x31,0xc,0x85,0xf7,0x9e,0x22,0xe4,
       0x2,0x73,0x81,...,
// D:\src\ *PATH*\resources\Interactions\StatemachineVrvisConfig.xml
       0x0,0x0,0x0,0xbf,
       
0x0,0x0,0x1,0x9c,0x95,0x91,0x41,0xe,0x82,0x40,0xc,0x45,0xf7,0x9e,0xa2,0xb2,
       0x27,0x5c,...
}; On Thursday, December 5, 2013 15:12 CET, Sebastian Ordas <[email protected]> wrote:
yes, just like this:

void QmitkMultiLabelSegmentationView::InitializeListeners()
{
        if (m_Interactor.IsNull())
        {
          us::ModuleContext* moduleContext = us::GetModuleContext();
          m_Interactor = mitk::SegmentationInteractor::New();
          m_Interactor->LoadStateMachine( "SegmentationInteraction.xml",
moduleContext->GetModule());
          m_Interactor->SetEventConfig ( "SegmentationConfig.xml",
moduleContext->GetModule());
us::GetModuleContext()->RegisterService<mitk::InteractionEventObserver>(
m_Interactor.GetPointer(), us::ServiceProperties() );
        }
}

On 05/12/2013 11:10 a.m., Sascha Zelzer wrote:
Just to make sure: Did you call LoadStateMachine("...xml",
GetModuleContext()->GetModule()) using the second argument to provide
the module instance which contains the embedded xml file?

On 12/05/2013 02:38 PM, Miguel Nunes wrote:
Sebastian,

I just tested my plugin and I continue without success. The same
Error remains in the MITK plugin tab says:
"   Part initialization error:
D:\src\MITK2013.09.0\Core\Code\Interactions\mitkStateMachineContainer.cpp:73:
Resource not valid. State machine pattern not
found:StatemachineVrvis.xml "
         Do you have any new stuff on this issue?

On Thursday, December 5, 2013 13:37 CET, "Miguel Nunes"
<[email protected]> wrote:
Hi Sebastian,

Sorry for taking so long to reply but out of nowhere Poco stopped
working and I am re-buidling the whole MITK framework from scratch,
which takes some hours as u know.

Comparing my code to yours, I can only say we have exactly the same
thing from all points from 1 to 4, except in dont have the line
Q_EXPORT_PLUGIN2(..., mitk::PluginActivator)

And since MITK is not ready yet in my machine I cannot test with
this extra line.

As soon as I am ready, I will email the list.
Best,
Miguel
       On Thursday, December 5, 2013 13:21 CET, Sebastian Ordas
<[email protected]> wrote:
Hi Miguel,

Are you still stuck on loading the xml files from your plugin?
Let me know if you have tried the suggestion below. It did not work
for me

best regards,
sebastian

On 04/12/2013 02:29 p.m., Sascha Zelzer wrote:
Hi,

in

m_Interactor->LoadStateMachine( "SegmentationInteraction.xml");


you are not specifying a module as the second argument. It will
default to the "Mitk" module for searching the XML file, which of
course doesn't contain it. Use

m_Interactor->LoadStateMachine( "SegmentationInteraction.xml",
GetModuleContext()->GetModule());


instead. The same goes for the SetEventConfig() method call. I agree
that the documentation is lacking and the API could be improved...

Best,

Sascha
------------------------------------------------------------------------------

Sponsored by Intel(R) XDK
Develop, test and display web and hybrid apps with a single code base.
Download it for free now!
http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk

_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users
       --
VRVis Zentrum fuer Virtual Reality und Visualisierung
Forschungs-GmbH                  FN: 195369h, HG Wien
Donau-City-Strasse 1              +43(0)1 20501 30100
A-1220 Wien, Austria        web:<http://www.vrvis.at>


------------------------------------------------------------------------------

Sponsored by Intel(R) XDK
Develop, test and display web and hybrid apps with a single code base.
Download it for free now!
http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk

_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users

diff --git a/Plugins/org.mitk.gui.qt.imagenavigator/files.cmake b/Plugins/org.mitk.gui.qt.imagenavigator/files.cmake
index 71882b2..b40d908 100644
--- a/Plugins/org.mitk.gui.qt.imagenavigator/files.cmake
+++ b/Plugins/org.mitk.gui.qt.imagenavigator/files.cmake
@@ -30,6 +30,13 @@ foreach(file ${SRC_CPP_FILES})
   set(CPP_FILES ${CPP_FILES} src/${file})
 endforeach(file ${SRC_CPP_FILES})
 
+usFunctionEmbedResources(CPP_FILES
+  LIBRARY_NAME "liborg_mitk_gui_qt_imagenavigator"
+  ROOT_DIR resources
+  FILES Interactions/MyInteractor.xml
+        Interactions/MyInteractorConfig.xml
+)
+
 foreach(file ${INTERNAL_CPP_FILES})
   set(CPP_FILES ${CPP_FILES} src/internal/${file})
 endforeach(file ${INTERNAL_CPP_FILES})
diff --git a/Plugins/org.mitk.gui.qt.imagenavigator/resources/Interactions/MyInteractor.xml b/Plugins/org.mitk.gui.qt.imagenavigator/resources/Interactions/MyInteractor.xml
new file mode 100644
index 0000000..7029ab4
--- /dev/null
+++ b/Plugins/org.mitk.gui.qt.imagenavigator/resources/Interactions/MyInteractor.xml
@@ -0,0 +1,232 @@
+<statemachine NAME="PlanarFigureInteractor">
+  <state name="Start" startstate="true">
+    <transition event_class="MouseMoveEvent" event_variant="MouseMove" target="EditFigure"> <!-- Figure is placed -->
+      <condition name="figure_is_placed" />
+    </transition>
+
+    <transition event_class="MouseMoveEvent" event_variant="MouseMove" target="PlaceFigure"> <!-- Figure is not placed -->
+      <condition name="figure_is_placed" inverted="true"/>
+    </transition>
+  </state>
+
+  <state name="FigurePlaced">
+    <transition event_class="MouseMoveEvent" event_variant="MouseMove" target="FigurePlaced" >
+      <condition name="figure_is_on_current_slice" />
+      <action name="move_current_point" ID="90" />
+    </transition>
+
+    <transition event_class="MouseMoveEvent" event_variant="PrimaryButtonPressedAndMouseMove" target="FigurePlacedByDrag" >
+      <condition name="figure_is_on_current_slice" />
+      <action name="move_current_point" ID="90" />
+    </transition>
+
+    <transition event_class="MouseDoubleClickEvent" event_variant="PrimaryButtonDoubleClick" target="Start" >
+      <condition name="minimal_figure_is_finished" />
+      <action name="finalize_figure" />"
+    </transition>
+
+    <transition event_class="MouseDoubleClickEvent" event_variant="PrimaryButtonDoubleClick" target="FigurePlaced" >
+      <condition name="minimal_figure_is_finished" inverted="true" />
+    </transition>
+
+    <transition event_class="MousePressEvent" event_variant="PrimaryButtonPressed" target="Start" >
+      <condition name="point_is_valid" />
+      <condition name="figure_is_finished" />
+      <action name="finalize_figure" />"
+    </transition>
+
+    <transition event_class="MousePressEvent" event_variant="PrimaryButtonPressed" target="FigurePlaced" >
+      <condition name="point_is_valid" />
+      <condition name="figure_is_finished" inverted="true" />
+      <action name="add_new_point" ID="10" /> <!-- AcADDPOINT -->
+    </transition>
+
+    <transition event_class="MousePressEvent" event_variant="PrimaryButtonPressed" target="FigurePlaced" > <!-- point is invalid -->
+      <condition name="point_is_valid" inverted="true" />
+    </transition>
+  </state>
+
+  <state name="ControlPointSelected">
+    <transition event_class="MouseMoveEvent" event_variant="PrimaryButtonPressedAndMouseMove" target="ControlPointSelected" >
+      <action name="move_current_point" ID="90" /> <!-- AcMOVEPOINT -->
+    </transition>
+
+    <transition event_class="MouseReleaseEvent" event_variant="PrimaryButtonReleased" target="EditFigure" >
+      <action name="deselect_point" ID="76" /> <!-- AcDESELECTPOINT -->
+    </transition>
+  </state>
+
+  <state name="PlaceFigure">
+    <transition event_class="MousePressEvent" event_variant="PrimaryButtonPressed" target="FigurePlaced" >
+      <action name="add_initial_point" ID="11" /> <!-- AcADD -->
+    </transition>
+  </state>
+
+  <state name="EditFigure">
+    <transition event_class="MouseMoveEvent" event_variant="MouseMove" target="HoveringOverFigure" >
+      <condition name="figure_is_on_current_slice" />
+      <condition name="hovering_above_figure" />
+      <action name="start_hovering" />
+    </transition>
+
+    <transition event_class="MouseMoveEvent" event_variant="MouseMove" target="HoveringOverPoint" >
+      <condition name="figure_is_on_current_slice" />
+      <condition name="hovering_above_point" />
+      <action name="start_hovering" />
+      <action name="select_point" />
+    </transition>
+  </state>
+
+  <state name="HoveringOverFigure">
+    <transition event_class="MouseMoveEvent" event_variant="MouseMove" target="EditFigure" > <!-- end hovering -->
+      <condition name="hovering_above_figure" inverted="true" />
+      <action name="hide_preview_point" />
+      <action name="end_hovering" />
+    </transition>
+
+    <transition event_class="MouseMoveEvent" event_variant="MouseMove" target="HoveringOverFigure" >  <!-- continue hovering -->
+      <condition name="hovering_above_point" inverted="true"/>
+      <condition name="hovering_above_figure" />
+      <action name="set_preview_point_position" />
+    </transition>
+
+    <transition event_class="MouseMoveEvent" event_variant="MouseMove" target="HoveringOverPoint" >  <!-- continue hovering -->
+      <condition name="hovering_above_point" />
+      <action name="hide_preview_point" />
+      <action name="select_point" />
+    </transition>
+
+    <transition event_class="MousePressEvent" event_variant="PrimaryButtonPressed" target="FigurePlacedByDrag" >
+      <condition name="figure_is_on_current_slice" />
+      <condition name="figure_is_selected" />
+      <condition name="point_is_valid" />
+      <condition name="figure_is_finished" inverted="true" />
+      <action name="add_new_point" ID="10" /> <!-- AcADDPOINT -->
+    </transition>
+
+    <transition event_class="MousePressEvent" event_variant="PrimaryButtonPressed" target="HoveringOverFigure" > <!-- continue hovering -->
+      <condition name="figure_is_on_current_slice" />
+      <condition name="figure_is_selected" inverted="true" />
+      <action name="select_figure" />
+    </transition>
+
+    <transition event_class="MouseMoveEvent" event_variant="PrimaryButtonPressedAndMouseMove" target="FigurePlacedByDrag" >
+      <condition name="figure_is_on_current_slice" />
+      <action name="move_current_point" ID="90" />
+    </transition>
+
+    <transition event_class="MousePressEvent" event_variant="SecondaryButtonPressed" target="HoveringOverFigure" > <!-- continue hovering -->
+      <condition name="figure_is_on_current_slice" />
+      <action name="request_context_menu" ID="48000" />
+    </transition>
+
+  </state>
+
+  <state name="HoveringOverPoint">
+    <transition event_class="MouseMoveEvent" event_variant="MouseMove" target="HoveringOverFigure" >
+      <condition name="hovering_above_point" inverted="true" />
+      <condition name="hovering_above_figure" />
+      <action name="set_preview_point_position" />
+      <action name="select_point" />
+    </transition>
+
+    <transition event_class="MouseMoveEvent" event_variant="MouseMove" target="EditFigure" > <!-- end hovering -->
+      <condition name="hovering_above_point" inverted="true" />
+      <condition name="hovering_above_figure" inverted="true" />
+      <action name="hide_preview_point" />
+      <action name="end_hovering" />
+      <action name="select_point" />
+    </transition>
+
+    <transition event_class="MousePressEvent" event_variant="PrimaryButtonPressed" target="FigurePlaced" >
+      <condition name="figure_is_on_current_slice" />
+      <condition name="figure_is_selected" />
+      <condition name="reset_on_point_select_needed" />
+    </transition>
+
+    <transition event_class="MousePressEvent" event_variant="PrimaryButtonPressed" target="ControlPointSelected" >
+      <condition name="figure_is_on_current_slice" />
+      <condition name="figure_is_selected" />
+      <condition name="reset_on_point_select_needed" inverted="true" />
+    </transition>
+
+    <transition event_class="MousePressEvent" event_variant="PrimaryButtonPressed" target="HoveringOverPoint" >
+      <!-- select the control-point under the cursor -->
+      <condition name="figure_is_on_current_slice" />
+      <condition name="figure_is_selected" inverted="true" />
+      <action name="select_figure" />
+      <action name="select_point" />
+    </transition>
+
+    <transition event_class="MouseMoveEvent" event_variant="PrimaryButtonPressedAndMouseMove" target="FigurePlacedByDrag" >
+      <condition name="figure_is_on_current_slice" />
+      <action name="move_current_point" ID="90" />
+    </transition>
+
+    <transition event_class="MousePressEvent" event_variant="SecondaryButtonPressed" target="HoveringAfterPointRemovedGuardState" >
+      <!-- remove the control-point under the cursor -->
+      <condition name="figure_is_on_current_slice" />
+      <condition name="points_can_be_added_or_removed" />
+      <action name="remove_selected_point" />
+    </transition>
+
+    <transition event_class="MousePressEvent" event_variant="SecondaryButtonPressed" target="HoveringOverPoint" >
+      <!-- nothing to do, just blocking event -->
+      <condition name="figure_is_on_current_slice" />
+      <condition name="points_can_be_added_or_removed" inverted="true" />
+    </transition>
+
+  </state>
+
+  <state name="HoveringAfterPointRemovedGuardState">
+    <transition event_class="InternalEvent" event_variant="Dummy-Event" target="HoveringOverFigure" >
+      <!-- yes, we are still hovering above the figure -->
+      <condition name="hovering_above_figure" />
+    </transition>
+
+    <transition event_class="InternalEvent" event_variant="Dummy-Event" target="EditFigure" >
+      <!-- no, we are no longer hovering above the figure -->
+      <condition name="hovering_above_figure" inverted="true"/>
+      <action name="deselect_point" />
+      <action name="end_hovering" />
+    </transition>
+  </state>
+
+  <state name="FigurePlacedByDrag">
+    <transition event_class="MouseMoveEvent" event_variant="PrimaryButtonPressedAndMouseMove" target="FigurePlacedByDrag" >
+      <!-- move the currently selected point by drag -->
+      <action name="move_current_point" ID="90" />
+    </transition>
+
+    <transition event_class="MouseReleaseEvent" event_variant="PrimaryButtonReleased" target="HoveringOverPoint" >
+      <!-- we just put the point there, hovering by definition -->
+      <condition name="point_is_valid" />
+      <condition name="minimal_figure_is_finished" />
+      <condition name="figure_is_placed" />
+      <action name="select_point" />
+      <action name="end_interaction" />
+    </transition>
+
+    <transition event_class="MouseReleaseEvent" event_variant="PrimaryButtonReleased" target="HoveringOverPoint" >
+      <!-- we just put the point there, hovering by definition -->
+      <condition name="point_is_valid" />
+      <condition name="minimal_figure_is_finished" />
+      <condition name="figure_is_placed" inverted="true" />
+      <action name="select_point" />
+      <!--<action name="end_interaction" />-->
+      <action name="finalize_figure" />
+    </transition>
+
+    <transition event_class="MouseReleaseEvent" event_variant="PrimaryButtonReleased" target="FigurePlaced" >
+      <!-- add this point, we are not finished yet -->
+      <condition name="point_is_valid" />
+      <condition name="figure_is_finished" inverted="true" />
+      <action name="add_new_point" ID="10" />
+    </transition>
+
+    <transition event_class="MouseReleaseEvent" event_variant="PrimaryButtonReleased" target="FigurePlaced" >
+      <!-- point is invalid, nothing to do here -->
+      <condition name="point_is_valid" inverted="true" />
+    </transition>
+  </state>
+</statemachine>
\ No newline at end of file
diff --git a/Plugins/org.mitk.gui.qt.imagenavigator/resources/Interactions/MyInteractorConfig.xml b/Plugins/org.mitk.gui.qt.imagenavigator/resources/Interactions/MyInteractorConfig.xml
new file mode 100644
index 0000000..357c4f5
--- /dev/null
+++ b/Plugins/org.mitk.gui.qt.imagenavigator/resources/Interactions/MyInteractorConfig.xml
@@ -0,0 +1,33 @@
+<config>
+  <!-- Undeclared tags are filled with standard values -->
+  <!-- Mouse Events -->
+  <!-- MousePressEvents -->
+  <event_variant class="MousePressEvent" name="PrimaryButtonPressed">
+    <attribute name="EventButton" value="LeftMouseButton" />
+  </event_variant>
+  <event_variant class="MousePressEvent" name="SecondaryButtonPressed">
+    <attribute name="EventButton" value="RightMouseButton" />
+  </event_variant>
+
+  <event_variant class="MouseDoubleClickEvent" name="PrimaryButtonDoubleClick">
+    <attribute name="EventButton" value="LeftMouseButton" />
+  </event_variant>
+
+
+  <!-- MouseMoveEvents -->
+  <event_variant class="MouseMoveEvent" name="MouseMove" />
+  <event_variant class="MouseMoveEvent" name="PrimaryButtonPressedAndMouseMove">
+    <attribute name="ButtonState" value="LeftMouseButton" />
+  </event_variant>
+
+  <!-- MouseReleaseEvents -->
+  <event_variant class="MouseReleaseEvent" name="PrimaryButtonReleased">
+    <attribute name="EventButton" value="LeftMouseButton" />
+  </event_variant>
+
+  <event_variant class="InternalEvent" name="Dummy-Event" >
+    <attribute name="SignalName" value="Dummy-Event" />
+  </event_variant>
+
+
+</config>
diff --git a/Plugins/org.mitk.gui.qt.imagenavigator/src/internal/QmitkImageNavigatorView.cpp b/Plugins/org.mitk.gui.qt.imagenavigator/src/internal/QmitkImageNavigatorView.cpp
index bfbcf73..b569c29 100644
--- a/Plugins/org.mitk.gui.qt.imagenavigator/src/internal/QmitkImageNavigatorView.cpp
+++ b/Plugins/org.mitk.gui.qt.imagenavigator/src/internal/QmitkImageNavigatorView.cpp
@@ -23,6 +23,12 @@ See LICENSE.txt or http://www.mitk.org for details.
 
 #include <berryConstants.h>
 
+#include <usGetModuleContext.h>
+#include <usModuleContext.h>
+#include <usModule.h>
+#include <usModuleResource.h>
+
+#include <mitkDataInteractor.h>
 
 const std::string QmitkImageNavigatorView::VIEW_ID = "org.mitk.views.imagenavigator";
 
@@ -56,6 +62,24 @@ void QmitkImageNavigatorView::CreateQtPartControl(QWidget *parent)
 
   mitk::IRenderWindowPart* renderPart = this->GetRenderWindowPart();
   this->RenderWindowPartActivated(renderPart);
+
+  us::Module* module = us::GetModuleContext()->GetModule();
+
+  std::vector<us::ModuleResource> resources = module->FindResources("/", "*", true);
+  for (std::vector<us::ModuleResource>::iterator iter = resources.begin(); iter != resources.end(); ++iter)
+  {
+    MITK_INFO << iter->GetResourcePath();
+  }
+
+  mitk::DataInteractor::Pointer interactor = mitk::DataInteractor::New();
+  if (!interactor->LoadStateMachine("MyInteractor.xml", module))
+  {
+    MITK_WARN << "Error loading state machine";
+  }
+  if (!interactor->SetEventConfig ("MyInteractorConfig.xml", module))
+  {
+    MITK_WARN << "Error loading state machine configuration";
+  }
 }
 
 void QmitkImageNavigatorView::SetFocus ()
diff --git a/Plugins/org.mitk.gui.qt.imagenavigator/src/internal/mitkImageNavigatorPluginActivator.cpp b/Plugins/org.mitk.gui.qt.imagenavigator/src/internal/mitkImageNavigatorPluginActivator.cpp
index 5dafa9f..0b83b95 100644
--- a/Plugins/org.mitk.gui.qt.imagenavigator/src/internal/mitkImageNavigatorPluginActivator.cpp
+++ b/Plugins/org.mitk.gui.qt.imagenavigator/src/internal/mitkImageNavigatorPluginActivator.cpp
@@ -19,6 +19,8 @@ See LICENSE.txt or http://www.mitk.org for details.
 
 #include <QtPlugin>
 
+#include <usModuleInitialization.h>
+
 namespace mitk {
 
   void ImageNavigatorPluginActivator::start(ctkPluginContext* context)
@@ -34,3 +36,5 @@ namespace mitk {
 }
 
 Q_EXPORT_PLUGIN2(org_mitk_gui_qt_imagenavigator, mitk::ImageNavigatorPluginActivator)
+
+US_INITIALIZE_MODULE("ImageNavigator", "liborg_mitk_gui_qt_imagenavigator")
------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users

Reply via email to