Salome HOME
Fixing menus.
[modules/paravis.git] / src / PVGUI / PVGUI_Module_actions.cxx
index 42adaf84bbb4f88402d466c1e36d51e53a7eddaf..271c01aaf54eb13351076afe0591d504f103bb5a 100644 (file)
@@ -24,6 +24,7 @@
 
 #include "PVGUI_Module.h"
 #include <PVViewer_GUIElements.h>
+#include <PVViewer_ViewManager.h>
 
 #include <QtxAction.h>
 #include <QtxActionMenuMgr.h>
@@ -31,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>
@@ -482,21 +483,22 @@ void PVGUI_Module::pvCreateMenus()
   // --- 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 )) )
-    guiElements->updateSourcesMenu(aRes);
+    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 )) )
-    guiElements->updateFiltersMenu(aRes);
+  if ( (filtersMenu = getMenu( myFiltersMenuId )) )
+    pqParaViewMenuBuilders::buildFiltersMenu(*filtersMenu, desk);
 
    // --- Menu "Macros"
   myMacrosMenuId = createMenu( tr( "MEN_MACROS" ), -1, -1, 80 );
   if ( (aRes = getMenu( myMacrosMenuId )) )
-    guiElements->updateMacrosMenu(aRes);
+    pqParaViewMenuBuilders::buildMacrosMenu(*aRes);
  
   // --- Menu "Tools"
   int aToolsMnu = createMenu( tr( "MEN_DESK_TOOLS" ), -1, -1, 90 );
@@ -533,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);
+      }
+    }
 }
 
 /*!
@@ -551,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();