]> SALOME platform Git repositories - modules/paravis.git/commitdiff
Salome HOME
Various improvements:
authorabn <adrien.bruneton@cea.fr>
Mon, 29 Sep 2014 09:05:57 +0000 (11:05 +0200)
committerabn <adrien.bruneton@cea.fr>
Mon, 29 Sep 2014 09:05:57 +0000 (11:05 +0200)
* Isolated ParaView's GUI elements that need an early start, so that menu loads properly
* Translated preference to have the builtin pvserver used
* Fixed Python dump to "import pvsimple"

13 files changed:
src/PVGUI/PVGUI_Module.cxx
src/PVGUI/PVGUI_Module.h
src/PVGUI/PVGUI_Module_actions.cxx
src/PVGUI/PVGUI_Module_widgets.cxx
src/PVGUI/resources/PARAVIS_msg_en.ts
src/PVGUI/view/CMakeLists.txt
src/PVGUI/view/PVViewer_Behaviors.cxx
src/PVGUI/view/PVViewer_Behaviors.h
src/PVGUI/view/PVViewer_GUIElements.cxx [new file with mode: 0644]
src/PVGUI/view/PVViewer_GUIElements.h [new file with mode: 0644]
src/PVGUI/view/PVViewer_ViewManager.cxx
src/PVGUI/view/PVViewer_ViewManager.h
src/PVGUI/view/PVViewer_ViewWindow.cxx

index f1f9b836a1365d582f84f4c483eb046c385e17d5..afac53a05057c1a59de52ef8875a4580e0beb8b6 100644 (file)
@@ -39,6 +39,7 @@
 #include "PVViewer_ViewModel.h"
 #include "PVGUI_Tools.h"
 #include "PVGUI_ParaViewSettingsPane.h"
+#include "PVViewer_GUIElements.h"
 
 // SALOME Includes
 #include <SUIT_DataBrowser.h>
@@ -267,7 +268,8 @@ PVGUI_Module::PVGUI_Module()
     myTraceWindow(0),
     myStateCounter(0),
     myInitTimer(0),
-    myPushTraceTimer(0)
+    myPushTraceTimer(0),
+    myGuiElements(0)
 {
 #ifdef HAS_PV_DOC
   Q_INIT_RESOURCE( PVGUI );
@@ -338,6 +340,7 @@ void PVGUI_Module::initialize( CAM_Application* app )
   // Initialize ParaView client and associated behaviors
   // and connect to externally launched pvserver
   PVViewer_ViewManager::ParaviewInitApp(aDesktop);
+  myGuiElements = PVViewer_GUIElements::GetInstance(aDesktop);
 
   // Remember current state of desktop toolbars
   QList<QToolBar*> foreignToolbars = aDesktop->findChildren<QToolBar*>();
@@ -603,12 +606,20 @@ bool PVGUI_Module::activateModule( SUIT_Study* study )
   bool isDone = SalomeApp_Module::activateModule( study );
   if ( !isDone ) return false;
 
-  showView( true );  // this will also trigger the connection to the server
-                     // and the instanciation of the relevant PV behaviors
+  showView( true );
   if ( mySourcesMenuId != -1 ) menuMgr()->show(mySourcesMenuId);
   if ( myFiltersMenuId != -1 ) menuMgr()->show(myFiltersMenuId);
-  if ( myFiltersMenuId != -1 ) menuMgr()->show(myMacrosMenuId);
-  if ( myFiltersMenuId != -1 ) menuMgr()->show(myToolbarsMenuId);
+  if ( myMacrosMenuId != -1 ) menuMgr()->show(myMacrosMenuId);
+  if ( myToolbarsMenuId != -1 ) menuMgr()->show(myToolbarsMenuId);
+
+  // Update the various menus with the content pre-loaded in myGuiElements
+  QMenu* srcMenu = menuMgr()->findMenu( mySourcesMenuId );
+  myGuiElements->updateSourcesMenu(srcMenu);
+  QMenu* filtMenu = menuMgr()->findMenu( myFiltersMenuId );
+  myGuiElements->updateFiltersMenu(filtMenu);
+  QMenu* macMenu = menuMgr()->findMenu( myMacrosMenuId );
+  myGuiElements->updateMacrosMenu(macMenu);
+
   setMenuShown( true );
   setToolShown( true );
 
@@ -865,7 +876,6 @@ void PVGUI_Module::executeScript(const char *script)
   \brief Returns trace string
 */
 static const QString MYReplaceStr("paraview.simple");
-static const QString MYReplaceImportStr("except: from pvsimple import *");
 QString PVGUI_Module::getTraceString()
 {
   vtkSMTrace *tracer = vtkSMTrace::GetActiveTracer();
@@ -873,6 +883,8 @@ QString PVGUI_Module::getTraceString()
     return QString("");
 
   QString traceString(tracer->GetCurrentTrace());
+  std::stringstream nl; nl << std::endl; // surely there is some Qt trick to do that in a portable way??
+  traceString = "import pvsimple" + QString(nl.str().c_str()) + traceString;
 
   // Replace import "paraview.simple" by "pvsimple"
   if ((!traceString.isNull()) && traceString.length() != 0) {
@@ -881,11 +893,6 @@ QString PVGUI_Module::getTraceString()
       traceString = traceString.replace(aPos, MYReplaceStr.length(), "pvsimple");
       aPos = traceString.indexOf(MYReplaceStr, aPos);
     }
-    int aImportPos = traceString.indexOf(MYReplaceImportStr);
-    if(aImportPos != -1)
-      {
-      traceString = traceString.replace(aImportPos, MYReplaceImportStr.length(), "except:\n  import pvsimple\n  from pvsimple import *");
-      }
   }
 
   return traceString;
index c9787b311c1f39ea64ec00197d4d6d0912abfcda..edda55245c5d221837a3cd7746b35e7aa77d7a02 100644 (file)
@@ -51,6 +51,7 @@ class pqPythonScriptEditor;
 class pqPVApplicationCore;
 class pqDataRepresentation;
 class pqRepresentation;
+class PVViewer_GUIElements;
 
 class PVGUI_Module : public SalomeApp_Module
 {
@@ -294,6 +295,8 @@ private:
 
   //! Timer used to regularly push the Python trace to the engine.
   QTimer             * myPushTraceTimer;
+
+  PVViewer_GUIElements * myGuiElements;
 };
 
 #endif // PVGUI_Module_H
index 1fdefc33f7f6762c4a72de53695b7efc73663bd1..0d3555a08e337e8ff1181bb610f2e2f78f6d181b 100644 (file)
@@ -23,6 +23,7 @@
 //
 
 #include "PVGUI_Module.h"
+#include <PVViewer_GUIElements.h>
 
 #include <QtxAction.h>
 #include <QtxActionMenuMgr.h>
@@ -422,10 +423,8 @@ void PVGUI_Module::pvCreateMenus()
    QMenu* aMenu = menuMgr()->findMenu( myRecentMenuId );
    pqRecentFilesMenu* aRecentFilesMenu = new pqRecentFilesMenu( *aMenu, getApp()->desktop() );
    QList<QAction*> anActns = aMenu->actions();
-   for (int i = 0; i < anActns.size(); ++i) {
-       createMenu( anActns.at(i), myRecentMenuId );
-   }
-
+   for (int i = 0; i < anActns.size(); ++i)
+     createMenu( anActns.at(i), myRecentMenuId );
 
   createMenu( separator(), aPVMnu, -1, 5 );
 
@@ -481,30 +480,25 @@ void PVGUI_Module::pvCreateMenus()
   createMenu( FullScreenId, aPVMnu );
   
   // --- Menu "Sources"
-
   // Install ParaView managers for "Sources" menu
   QMenu* aRes = 0;
+  PVViewer_GUIElements * guiElements = PVViewer_GUIElements::GetInstance(desk);
   mySourcesMenuId = createMenu( tr( "MEN_DESK_SOURCES" ), -1, -1, 60);
-  if ( (aRes = getMenu( mySourcesMenuId )) ) {
-    pqParaViewMenuBuilders::buildSourcesMenu(*aRes, desk);
-  }
+  if ( (aRes = getMenu( mySourcesMenuId )) )
+    guiElements->updateSourcesMenu(aRes);
   
   // --- Menu "Filters"
-
   // Install ParaView managers for "Filters" menu
   myFiltersMenuId = createMenu( tr( "MEN_DESK_FILTERS" ), -1, -1, 70 );
-  if ( (aRes = getMenu( myFiltersMenuId )) ) {
-    pqParaViewMenuBuilders::buildFiltersMenu(*aRes, desk);
-  }
+  if ( (aRes = getMenu( myFiltersMenuId )) )
+    guiElements->updateFiltersMenu(aRes);
 
    // --- Menu "Macros"
   myMacrosMenuId = createMenu( tr( "MEN_MACROS" ), -1, -1, 80 );
-  if ( (aRes = getMenu( myMacrosMenuId )) ) {
-    pqParaViewMenuBuilders::buildMacrosMenu(*aRes);
-  }
+  if ( (aRes = getMenu( myMacrosMenuId )) )
+    guiElements->updateMacrosMenu(aRes);
  
   // --- Menu "Tools"
-
   int aToolsMnu = createMenu( tr( "MEN_DESK_TOOLS" ), -1, -1, 90 );
 
   createMenu( CreateCustomFilterId, aToolsMnu );
index 31792aba70e914b3f1f6027f7f348f9ac774f787..b158fe35b5e563910cdea51e93dc883a5269b345 100644 (file)
@@ -23,6 +23,8 @@
 //
 
 #include "PVGUI_Module.h"
+#include "PVViewer_ViewManager.h"
+#include "PVViewer_GUIElements.h"
 
 #include <QtxActionToolMgr.h>
 #include <LightApp_Application.h>
 void PVGUI_Module::setupDockWidgets()
 {
   SUIT_Desktop* desk = application()->desktop();
+  PVViewer_GUIElements * guiElements = PVViewer_GUIElements::GetInstance(desk);
  
   desk->setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
   desk->setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea);
@@ -108,8 +111,7 @@ void PVGUI_Module::setupDockWidgets()
   pipelineBrowserDock->setObjectName("pipelineBrowserDock");
   pipelineBrowserDock->setAllowedAreas( Qt::LeftDockWidgetArea|Qt::NoDockWidgetArea|Qt::RightDockWidgetArea );
   desk->addDockWidget( Qt::LeftDockWidgetArea, pipelineBrowserDock );
-  pqPipelineBrowserWidget* browser = new pqPipelineBrowserWidget(pipelineBrowserDock);
-  pqParaViewMenuBuilders::buildPipelineBrowserContextMenu(*browser);
+  pqPipelineBrowserWidget* browser = guiElements->getPipelineBrowserWidget();
   pipelineBrowserDock->setWidget(browser);
   myDockWidgets[pipelineBrowserDock] = true;
 
@@ -119,7 +121,7 @@ void PVGUI_Module::setupDockWidgets()
   propertiesDock->setAllowedAreas( Qt::LeftDockWidgetArea|Qt::NoDockWidgetArea|Qt::RightDockWidgetArea );
   desk->addDockWidget( Qt::LeftDockWidgetArea, propertiesDock );
 
-  pqPropertiesPanel* propertiesPanel = new pqPropertiesPanel(propertiesDock);
+  pqPropertiesPanel* propertiesPanel = guiElements->getPropertiesPanel();
   propertiesDock->setObjectName("propertiesPanel");
   propertiesDock->setWidget(propertiesPanel);
   connect( propertiesPanel, SIGNAL( helpRequested(const QString&, const QString&) ),  this, SLOT( showHelpForProxy(const QString&, const QString&) ) );
index a9b8e5cc67b6cd393797c037dfb0d4d399957354..9acd36ca5674611db2394d414ab396eb09c6012c 100644 (file)
         <source>PREF_STOP_TRACE</source>
         <translation>Deactivate Trace (for next session only)</translation>
     </message>
+    <message>
+        <source>PREF_NO_EXT_PVSERVER</source>
+        <translation>Do not use external PVServer (Warning: scripts running outside SALOME's GUI will be unusable!)</translation>
+    </message>
     <message>
         <source>PREF_SHOW_COLOR_LEGEND</source>
         <translation>Show Color Legend</translation>
index 6ba33bf41d56f4a08e1215a3f78d2e002dc953d5..ca03716959bf8d1d76955dc8cdaf33347f92b819 100644 (file)
@@ -48,6 +48,7 @@ SET(_moc_HEADERS
   PVViewer_ViewModel.h
   PVViewer_ViewWindow.h
   PVViewer_Behaviors.h
+  PVViewer_GUIElements.h
 )
 
 # header files / no moc processing
@@ -69,6 +70,7 @@ SET(_other_SOURCES
   PVViewer_ViewWindow.cxx
   PVViewer_LogWindowAdapter.cxx
   PVViewer_Behaviors.cxx
+  PVViewer_GUIElements.cxx
   )
   
 # sources / to compile
index 5ff809ffb57611339ce11d53c3c36328711c1024..75fc467cc2adfedf8f4b30a805225316464b446b 100644 (file)
@@ -87,9 +87,6 @@ void PVViewer_Behaviors::instanciateMinimalBehaviors(SUIT_Desktop * desk)
       new pqCrashRecoveryBehavior(this);
       new pqCommandLineOptionsBehavior(this);
 
-      // Create a hidden pqPropertiesPanel()
-      hiddenProp = new pqPropertiesPanel(desk);
-
       BehaviorLoadingLevel = 1;
     }
 }
@@ -130,9 +127,3 @@ void PVViewer_Behaviors::instanciateAllBehaviors(SUIT_Desktop * desk)
       BehaviorLoadingLevel = 2;
     }
 }
-
-void PVViewer_Behaviors::onEmulateApply()
-{
-  if (hiddenProp)
-    hiddenProp->apply();
-}
index f9858cb39aab811ad86c03fb970bcea33a86718f..fa2d32af8309983d4e7a27ff888400dbe361d776 100644 (file)
@@ -41,18 +41,15 @@ public:
   PVViewer_Behaviors(SUIT_Desktop * parent);
 
   void instanciateMinimalBehaviors(SUIT_Desktop * desk);
-
   void instanciateAllBehaviors(SUIT_Desktop * desk);
 
   virtual ~PVViewer_Behaviors() {}
 
-public slots:
-  void onEmulateApply();
+//public slots:
+//  void onEmulateApply();
 
 private:
   static int BehaviorLoadingLevel;
-
-  pqPropertiesPanel * hiddenProp;
 };
 
 #endif /* PVGUIBEHAVIORS_H_ */
diff --git a/src/PVGUI/view/PVViewer_GUIElements.cxx b/src/PVGUI/view/PVViewer_GUIElements.cxx
new file mode 100644 (file)
index 0000000..57e1c15
--- /dev/null
@@ -0,0 +1,102 @@
+// Copyright (C) 2010-2014  CEA/DEN, EDF R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+// Author: Adrien Bruneton (CEA)
+
+#include "PVViewer_GUIElements.h"
+#include "SUIT_Desktop.h"
+
+#include <pqPropertiesPanel.h>
+#include <pqPipelineBrowserWidget.h>
+#include <pqParaViewMenuBuilders.h>
+
+#include <QMenu>
+#include <QList>
+#include <QAction>
+
+PVViewer_GUIElements * PVViewer_GUIElements::theInstance = 0;
+
+PVViewer_GUIElements::PVViewer_GUIElements(SUIT_Desktop* desk) :
+  propertiesPanel(0), pipelineBrowserWidget(0),
+  sourcesMenu(0)
+{
+  propertiesPanel = new pqPropertiesPanel(desk);
+  pipelineBrowserWidget  = new pqPipelineBrowserWidget(desk);
+
+  sourcesMenu = new QMenu(desk);
+  pqParaViewMenuBuilders::buildSourcesMenu(*sourcesMenu, desk);
+
+  filtersMenu = new QMenu(desk);
+  pqParaViewMenuBuilders::buildFiltersMenu(*filtersMenu, desk);
+
+  macrosMenu = new QMenu(desk);
+  pqParaViewMenuBuilders::buildMacrosMenu(*macrosMenu);
+}
+
+PVViewer_GUIElements * PVViewer_GUIElements::GetInstance(SUIT_Desktop* desk)
+{
+  if (! theInstance)
+    theInstance = new PVViewer_GUIElements(desk);
+  return theInstance;
+}
+
+void PVViewer_GUIElements::updateSourcesMenu(QMenu *menu)
+{
+  if (menu)
+    {
+      menu->clear();
+      QList<QAction *> act_list = sourcesMenu->actions();
+      foreach(QAction * a, act_list)
+      {
+        menu->addAction(a);
+      }
+    }
+}
+
+void PVViewer_GUIElements::updateFiltersMenu(QMenu *menu)
+{
+  if (menu)
+    {
+      menu->clear();
+      QList<QAction *> act_list = filtersMenu->actions();
+      foreach(QAction * a, act_list)
+      {
+        menu->addAction(a);
+      }
+    }
+}
+
+void PVViewer_GUIElements::updateMacrosMenu(QMenu *menu)
+{
+  if (menu)
+    {
+      menu->clear();
+      QList<QAction *> act_list = macrosMenu->actions();
+      foreach(QAction * a, act_list)
+      {
+        menu->addAction(a);
+      }
+    }
+}
+
+
+void PVViewer_GUIElements::onEmulateApply()
+{
+  if (propertiesPanel)
+    propertiesPanel->apply();
+}
diff --git a/src/PVGUI/view/PVViewer_GUIElements.h b/src/PVGUI/view/PVViewer_GUIElements.h
new file mode 100644 (file)
index 0000000..ca0634e
--- /dev/null
@@ -0,0 +1,71 @@
+// Copyright (C) 2010-2014  CEA/DEN, EDF R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+// Author: Adrien Bruneton (CEA)
+
+#ifndef PVVIEWERGUIELEMENTS_H_
+#define PVVIEWERGUIELEMENTS_H_
+
+#include <QObject>
+
+class pqPropertiesPanel;
+class pqPipelineBrowserWidget;
+class SUIT_Desktop;
+class QMenu;
+
+/*!
+ * Some GUI elements of ParaView need to be instanciated in a proper order. This class
+ * holds all of them for the sake of clarity.
+ * For example sources menu should be built *before* loading ParaView's configuration, so that the
+ * list of sources gets properly populated.
+ */
+class PVViewer_GUIElements: public QObject
+{
+  Q_OBJECT
+
+public:
+  static PVViewer_GUIElements * GetInstance(SUIT_Desktop* desk);
+
+  pqPropertiesPanel * getPropertiesPanel() { return propertiesPanel; }
+  pqPipelineBrowserWidget * getPipelineBrowserWidget() { return pipelineBrowserWidget; }
+
+  // Update the sources menu from what was built in private member 'sourcesMenu'
+  void updateSourcesMenu(QMenu *);
+  void updateFiltersMenu(QMenu *);
+  void updateMacrosMenu(QMenu *);
+
+public slots:
+  void onEmulateApply();  // better use the slot from PVViewer_ViewManager if you want to trigger "Apply"
+
+private:
+  PVViewer_GUIElements(SUIT_Desktop* desk);
+  virtual ~PVViewer_GUIElements() {}
+
+  static PVViewer_GUIElements * theInstance;
+
+  // Widgets
+  pqPropertiesPanel * propertiesPanel;
+  pqPipelineBrowserWidget * pipelineBrowserWidget;
+
+  // Dummy QMenus receiving ParaView's reaction for automatic add when new sources are added
+  QMenu * sourcesMenu;
+  QMenu * filtersMenu;
+  QMenu * macrosMenu;
+};
+
+#endif /* PVVIEWERGUIELEMENTS_H_ */
index 4ce117044f75ff3c62956b514a6ab692e782fd1f..6e9b640b419cd4b0638c0abb02192905f255dd81 100644 (file)
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
-#include <PVViewer_ViewManager.h>
-#include <PVViewer_ViewModel.h>
-#include <PVViewer_ViewWindow.h>
-#include <PVViewer_Behaviors.h>
-#include <PVViewer_LogWindowAdapter.h>
+#include "PVViewer_ViewManager.h"
+#include "PVViewer_ViewModel.h"
+#include "PVViewer_ViewWindow.h"
+#include "PVViewer_LogWindowAdapter.h"
+#include "PVViewer_GUIElements.h"
+#include "PVViewer_Behaviors.h"
+
 #include <utilities.h>
 #include <SalomeApp_Application.h>
 #include <SALOMEconfig.h>
@@ -36,6 +38,7 @@
 #include <QApplication>
 #include <QStringList>
 #include <QDir>
+
 #include <string>
 
 #include <pqOptions.h>
@@ -47,6 +50,9 @@
 #include <pqActiveObjects.h>
 #include <pqServerConnectReaction.h>
 
+#include <pqParaViewMenuBuilders.h>
+#include <pqPipelineBrowserWidget.h>
+
 //---------- Static init -----------------
 pqPVApplicationCore* PVViewer_ViewManager::MyCoreApp = 0;
 PARAVIS_ORB::PARAVIS_Gen_var PVViewer_ViewManager::MyEngine;
@@ -57,14 +63,15 @@ PVViewer_Behaviors * PVViewer_ViewManager::ParaviewBehaviors = NULL;
   Constructor
 */
 PVViewer_ViewManager::PVViewer_ViewManager( SUIT_Study* study, SUIT_Desktop* desk )
-: SUIT_ViewManager( study, desk, new PVViewer_Viewer() )
+: SUIT_ViewManager( study, desk, new PVViewer_Viewer() ),
+  desktop(desk)
 {
   MESSAGE("PARAVIS - view manager created ...")
   setTitle( tr( "PARAVIEW_VIEW_TITLE" ) );
   // Initialize minimal paraview stuff (if not already done)
   ParaviewInitApp(desk);
 
-  connect(this, SIGNAL(viewCreated(SUIT_ViewWindow*)), this, SLOT(onPVViewCreated(SUIT_ViewWindow*)));
+//  connect(this, SIGNAL(viewCreated(SUIT_ViewWindow*)), this, SLOT(onPVViewCreated(SUIT_ViewWindow*)));
 }
 
 pqPVApplicationCore * PVViewer_ViewManager::GetPVApplication()
@@ -125,7 +132,8 @@ bool PVViewer_ViewManager::ParaviewInitApp(SUIT_Desktop * aDesktop)
         free(argv[i]);
       delete[] argv;
   }
-
+  // Initialize GUI elements if needed:
+  PVViewer_GUIElements::GetInstance(aDesktop);
   return true;
 }
 
@@ -146,6 +154,7 @@ void PVViewer_ViewManager::ParaviewLoadConfigurations()
     {
       SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
       QString aPath = resMgr->stringValue("resources", "PARAVIS", QString());
+      std::cout << "loading conf from: " << aPath.toStdString() << std::endl;
       if (!aPath.isNull()) {
           MyCoreApp->loadConfiguration(aPath + QDir::separator() + "ParaViewFilters.xml");
           MyCoreApp->loadConfiguration(aPath + QDir::separator() + "ParaViewReaders.xml");
@@ -247,9 +256,15 @@ bool PVViewer_ViewManager::ConnectToExternalPVServer(SUIT_Desktop* aDesktop)
   return true;
 }
 
-void PVViewer_ViewManager::onPVViewCreated(SUIT_ViewWindow* w)
+//void PVViewer_ViewManager::onPVViewCreated(SUIT_ViewWindow* w)
+//{
+//  PVViewer_ViewWindow * w2 = dynamic_cast<PVViewer_ViewWindow *>(w);
+//  Q_ASSERT(w2 != NULL);
+//  connect(w2, SIGNAL(applyRequest()), ParaviewBehaviors, SLOT(onEmulateApply()));
+//}
+
+void PVViewer_ViewManager::onEmulateApply()
 {
-  PVViewer_ViewWindow * w2 = dynamic_cast<PVViewer_ViewWindow *>(w);
-  Q_ASSERT(w2 != NULL);
-  connect(w2, SIGNAL(applyRequest()), ParaviewBehaviors, SLOT(onEmulateApply()));
+  PVViewer_GUIElements * guiElements = PVViewer_GUIElements::GetInstance(desktop);
+  guiElements->onEmulateApply();
 }
index a995156575267ee99dd58be3faae1b43db404cbd..5e359b5a7f71c614867018ba8b4080f8b4f368e5 100644 (file)
@@ -30,6 +30,7 @@ class pqTabbedMultiViewWidget;
 class pqPVApplicationCore;
 class PVViewer_Behaviors;
 class pqPropertiesPanel;
+class pqPipelineBrowserWidget;
 
 class PVViewer_ViewManager : public SUIT_ViewManager
 {
@@ -53,13 +54,16 @@ public:
   static bool   ConnectToExternalPVServer(SUIT_Desktop* aDesktop);
 
 public slots:
-  void onPVViewCreated(SUIT_ViewWindow*);
+//  void onPVViewCreated(SUIT_ViewWindow*);
+  void onEmulateApply();
 
 private:
   static pqPVApplicationCore* MyCoreApp;
   static PARAVIS_ORB::PARAVIS_Gen_var MyEngine;
   static bool ConfigLoaded;
   static PVViewer_Behaviors * ParaviewBehaviors;
+
+  SUIT_Desktop * desktop;
 };
 
 #endif
index 415717a5c29c402978de50ef77a5045bdb156922..c7fff08a2c288aeb1f4a78f73de25de840b4c2ad 100644 (file)
@@ -22,6 +22,7 @@
 
 #include "PVViewer_ViewWindow.h"
 #include "PVViewer_ViewManager.h"
+#include "PVViewer_GUIElements.h"
 
 #include <SUIT_ViewManager.h>
 #include <SUIT_ResourceMgr.h>
@@ -53,7 +54,6 @@ PVViewer_ViewWindow::PVViewer_ViewWindow( SUIT_Desktop* theDesktop, PVViewer_Vie
     setCentralWidget( myPVMgr );
 
     // Finish ParaView set up: behaviors, connection and configurations.
-    // None of this is invoked in PARAVIS module case as it done earlier than View creation:
     PVViewer_ViewManager::ParaviewInitBehaviors(true, theDesktop);
     PVViewer_ViewManager::ConnectToExternalPVServer(theDesktop);
     PVViewer_ViewManager::ParaviewLoadConfigurations();