]> SALOME platform Git repositories - modules/med.git/commitdiff
Salome HOME
[MEDCalc]: connecting ParaView VCR toolbar. V8_1_0a1
authorabn <adrien.bruneton@cea.fr>
Thu, 7 Jul 2016 08:22:55 +0000 (10:22 +0200)
committerabn <adrien.bruneton@cea.fr>
Thu, 7 Jul 2016 08:22:55 +0000 (10:22 +0200)
src/MEDCalc/gui/MEDModule.cxx
src/MEDCalc/gui/MEDModule.hxx

index 448cc7f04d203f9a8be3d670dba364359d9214ce..4278c0a9b45e80d96dcb79348d1672ba9b6612b1 100644 (file)
 
 #ifndef DISABLE_PVVIEWER
 #include "PVViewer_ViewModel.h"
+#include "PVViewer_GUIElements.h"
 #endif
 
 #include <sstream>
 
+#include <pqAnimationManager.h>
+#include <pqPVApplicationCore.h>
+
+
 //! The only instance of the reference to engine
 MED_ORB::MED_Gen_var MEDModule::myEngine;
 
 MEDModule::MEDModule() :
-  SalomeApp_Module("MED"), _studyEditor(0), _datasourceController(0), _workspaceController(0), _presentationController(0), _processingController(0)
+  SalomeApp_Module("MED"), _studyEditor(0),
+  _datasourceController(0), _workspaceController(0), _presentationController(0),
+  _processingController(0), _pvGuiElements(0)
 {
   // Note also that we can't use the getApp() function here because
   // the initialize(...) function has not been called yet.
@@ -237,6 +244,27 @@ MEDModule::createModuleWidgets() {
 
   connect(_workspaceController, SIGNAL(workspaceSignal(const MEDCALC::MedEvent*)),
     _presentationController, SLOT(processWorkspaceEvent(const MEDCALC::MedEvent*)));
+
+  // Now that the workspace controller is created, ParaView core application has normally been started,
+  // and hidden GUI elements have been created.  We can fire the VCR toolbar activation:
+  initToolbars();
+}
+
+void
+MEDModule::initToolbars()
+{
+  // VCR and Time toolbars:
+  SUIT_Desktop* dsk = getApp()->desktop();
+  _pvGuiElements = PVViewer_GUIElements::GetInstance(dsk);
+
+  _pvGuiElements->getVCRToolbar();  // make sure VCR toolbar is built
+  _pvGuiElements->setToolBarVisible(false);
+  _pvGuiElements->setVCRTimeToolBarVisible(true);
+
+  // Emit signal in order to make sure that animation scene is set - same trick as in PARAVIS module activation
+  QMetaObject::invokeMethod( pqPVApplicationCore::instance()->animationManager(),
+                             "activeSceneChanged",
+                             Q_ARG( pqAnimationScene*, pqPVApplicationCore::instance()->animationManager()->getActiveScene() ) );
 }
 
 void
index f05d6616e834e2d5b5c745e9831bff3886e7ce0c..d5cfa816fd2025f4fb14d2161bf6230f45b492e7 100644 (file)
@@ -40,6 +40,7 @@
 #include <QModelIndex>
 
 class SalomeApp_Application;
+class PVViewer_GUIElements;
 
 /*!
  * This class defines the gui of the MED module.
@@ -87,9 +88,12 @@ public slots:
   virtual bool deactivateModule(SUIT_Study* theStudy);
   virtual void onDblClick(const QModelIndex& index);
 
+
+
 private:
   void createModuleWidgets();
   void createModuleActions();
+  void initToolbars();
   static void init();
 
 private:
@@ -100,6 +104,7 @@ private:
   PresentationController* _presentationController;
   ProcessingController* _processingController;
   static MED_ORB::MED_Gen_var myEngine;
+  PVViewer_GUIElements*   _pvGuiElements;
 };
 
 #endif