Salome HOME
Fixing menus.
[modules/paravis.git] / src / PVGUI / PVGUI_Module_actions.cxx
index 3752d6edcd712a4c403609f2d72912d663972adc..271c01aaf54eb13351076afe0591d504f103bb5a 100644 (file)
@@ -1,11 +1,11 @@
 // PARAVIS : ParaView wrapper SALOME module
 //
-// Copyright (C) 2010-2013  CEA/DEN, EDF R&D
+// 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.
+// 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
@@ -23,6 +23,8 @@
 //
 
 #include "PVGUI_Module.h"
+#include <PVViewer_GUIElements.h>
+#include <PVViewer_ViewManager.h>
 
 #include <QtxAction.h>
 #include <QtxActionMenuMgr.h>
@@ -30,7 +32,7 @@
 #include <SUIT_Desktop.h>
 #include <SUIT_ResourceMgr.h>
 #include <SUIT_Session.h>
-#include <SalomeApp_Application.h>
+#include <SalomeApp_Application.h>  // should ultimately be a LightApp only
 #include <LightApp_Application.h>
 
 #include <QAction>
 #include <QFile>
 
 #include <pqApplicationCore.h>
-#include <pqColorScaleToolbar.h>
+// #include <pqColorScaleToolbar.h>
 #include <pqProgressManager.h>
-#include <pqRubberBandHelper.h>
-#include <pqScalarBarVisibilityAdaptor.h>
+//#include <pqRubberBandHelper.h>
+//#include <pqScalarBarVisibilityAdaptor.h>
 #include <pqUndoStack.h>
 #include <pqVCRController.h>
 
@@ -61,7 +63,7 @@
 #include <pqDeleteReaction.h>
 #include <pqChangePipelineInputReaction.h>
 #include <pqApplicationSettingsReaction.h>
-#include <pqViewSettingsReaction.h>
+//#include <pqViewSettingsReaction.h>
 #include <pqIgnoreSourceTimeReaction.h>
 #include <pqViewMenuManager.h>
 #include <pqParaViewMenuBuilders.h>
@@ -255,11 +257,11 @@ void PVGUI_Module::pvCreateActions()
   new pqApplicationSettingsReaction(anAction);*/
   
   // View Settings
-  anAction = new QAction(tr("MEN_VIEW_SETTINGS"), this);
-  anAction->setToolTip(tr("TOP_VIEW_SETTINGS"));
-  anAction->setStatusTip(tr("STB_VIEW_SETTINGS"));
-  registerAction(ViewSettingsId, anAction);
-  new pqViewSettingsReaction(anAction);
+//  anAction = new QAction(tr("MEN_VIEW_SETTINGS"), this);
+//  anAction->setToolTip(tr("TOP_VIEW_SETTINGS"));
+//  anAction->setStatusTip(tr("STB_VIEW_SETTINGS"));
+//  registerAction(ViewSettingsId, anAction);
+//  new pqViewSettingsReaction(anAction);
 
   // --- Menu "View"
   //pqViewManager* viewManager = qobject_cast<pqViewManager*>(
@@ -373,6 +375,13 @@ void PVGUI_Module::pvCreateActions()
   connect(anAction, SIGNAL(triggered()), this, SLOT(onShowTrace()));
   registerAction(ShowTraceId, anAction);
 
+  //Show Trace
+  anAction = new QAction(tr("MEN_RESTART_TRACE"), this);
+  anAction->setToolTip(tr("TOP_RESTART_TRACE"));
+  anAction->setStatusTip(tr("STB_RESTART_TRACE"));
+  connect(anAction, SIGNAL(triggered()), this, SLOT(onRestartTrace()));
+  registerAction(RestartTraceId, anAction);
+
   // --- Menu "Help"
 
   // About
@@ -415,10 +424,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 );
 
@@ -458,7 +465,7 @@ void PVGUI_Module::pvCreateMenus()
   createMenu( separator(), aPVMnu );
 
   //createMenu( SettingsId, aPVMnu );
-  createMenu( ViewSettingsId, aPVMnu );
+  //createMenu( ViewSettingsId, aPVMnu );
   createMenu( separator(), aPVMnu );
 
   // --- Menu "View"
@@ -474,30 +481,26 @@ void PVGUI_Module::pvCreateMenus()
   createMenu( FullScreenId, aPVMnu );
   
   // --- Menu "Sources"
-
   // Install ParaView managers for "Sources" menu
   QMenu* aRes = 0;
+  QMenu* filtersMenu = 0;
+  PVViewer_GUIElements * guiElements = PVViewer_GUIElements::GetInstance(desk);
   mySourcesMenuId = createMenu( tr( "MEN_DESK_SOURCES" ), -1, -1, 60);
-  if ( (aRes = getMenu( mySourcesMenuId )) ) {
+  if ( (aRes = getMenu( mySourcesMenuId )) )
     pqParaViewMenuBuilders::buildSourcesMenu(*aRes, desk);
-  }
   
   // --- 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 ( (filtersMenu = getMenu( myFiltersMenuId )) )
+    pqParaViewMenuBuilders::buildFiltersMenu(*filtersMenu, desk);
 
    // --- Menu "Macros"
   myMacrosMenuId = createMenu( tr( "MEN_MACROS" ), -1, -1, 80 );
-  if ( (aRes = getMenu( myMacrosMenuId )) ) {
+  if ( (aRes = getMenu( myMacrosMenuId )) )
     pqParaViewMenuBuilders::buildMacrosMenu(*aRes);
-  }
  
   // --- Menu "Tools"
-
   int aToolsMnu = createMenu( tr( "MEN_DESK_TOOLS" ), -1, -1, 90 );
 
   createMenu( CreateCustomFilterId, aToolsMnu );
@@ -521,6 +524,7 @@ void PVGUI_Module::pvCreateMenus()
   createMenu( PythonShellId, aToolsMnu );
   createMenu( separator(), aToolsMnu );
   createMenu( ShowTraceId, aToolsMnu );
+  createMenu( RestartTraceId, aToolsMnu );
 
   // --- Menu "Help"
 
@@ -531,6 +535,20 @@ void PVGUI_Module::pvCreateMenus()
   createMenu( separator(),     aPVHelpMnu );
 #endif
   createMenu( AboutParaViewId, aPVHelpMnu );
+
+  // Reload configuration to populate dynamic menus from ParaView:
+  PVViewer_ViewManager::ParaviewLoadConfigurations(true);
+
+  // Disable all filters for now (for some weird reasons they are all on when starting?)
+  QList<QMenu*> sub_menus = filtersMenu->findChildren<QMenu*>();
+  foreach(QMenu * m, sub_menus)
+    {
+      QList<QAction *> act_list = m->actions();
+      foreach(QAction * a, act_list)
+      {
+        a->setEnabled(false);
+      }
+    }
 }
 
 /*!
@@ -549,7 +567,8 @@ void PVGUI_Module::pvCreateToolBars()
 QMenu* PVGUI_Module::getMenu( const int id )
 {
   QMenu* res = 0;
-  SalomeApp_Application* anApp = getApp();
+  //SalomeApp_Application* anApp = getApp();
+  LightApp_Application* anApp = getApp();
   SUIT_Desktop* desk = anApp->desktop();
   if ( desk ){
     QtxActionMenuMgr* menuMgr = desk->menuMgr();
@@ -621,11 +640,11 @@ void PVGUI_Module::createActions()
 {
   QAction* anAction;
 
-  // New ParaView window
-  anAction = new QtxAction(tr("MEN_NEW_PV_VIEW"), tr("MEN_NEW_PV_VIEW"), 0, 
-                          this, false, "ParaViS:Create new ParaView view");
-  connect(anAction, SIGNAL(triggered()), this, SLOT(onNewParaViewWindow()));
-  registerAction(ParaViewNewWindowId, anAction);
+//  // New ParaView window
+//  anAction = new QtxAction(tr("MEN_NEW_PV_VIEW"), tr("MEN_NEW_PV_VIEW"), 0,
+//        this, false, "ParaViS:Create new ParaView view");
+//  connect(anAction, SIGNAL(triggered()), this, SLOT(onNewParaViewWindow()));
+//  registerAction(ParaViewNewWindowId, anAction);
 
   // Save state under the module root object
   anAction = new QAction(tr("MEN_SAVE_MULTI_STATE"), this);