]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Issue #1803 Occurrence of the object browser SALOME when I load a script file
authornds <nds@opencascade.com>
Wed, 30 Nov 2016 12:53:52 +0000 (15:53 +0300)
committernds <nds@opencascade.com>
Wed, 30 Nov 2016 12:53:52 +0000 (15:53 +0300)
src/SHAPERGUI/SHAPERGUI.cpp
src/SHAPERGUI/SHAPERGUI.h

index c670b01840f1e52f5612b8a0fb710d04ac2c7d13..ed44c1d91bd19973a65bc191d25ba14c1ca0df4e 100644 (file)
@@ -29,6 +29,7 @@
 #include <SUIT_Desktop.h>
 #include <SUIT_ViewManager.h>
 #include <SUIT_ResourceMgr.h>
+#include <SUIT_DataBrowser.h>
 
 #include <QtxPopupMgr.h>
 #include <QtxActionMenuMgr.h>
@@ -247,6 +248,10 @@ bool SHAPERGUI::activateModule(SUIT_Study* theStudy)
     Events_Loop::loop()->flush(Events_Loop::eventByName(EVENT_OBJECT_TO_REDISPLAY));
   }
   myProxyViewer->activateViewer(true);
+
+  // Postrrocessing for LoadScriptId to remove created(if it was created) SALOME Object Browser\r
+  connect(getApp()->action(LightApp_Application::UserID+1), SIGNAL(triggered(bool)),\r
+          this, SLOT(onScriptLoaded()));\r
   return isDone;
 }
 
@@ -291,6 +296,10 @@ bool SHAPERGUI::deactivateModule(SUIT_Study* theStudy)
   aResMgr->setValue("Study", "store_positions", myIsStorePositions);
   getApp()->setEditEnabled(myIsEditEnabled);
 
+  // Postrrocessing for LoadScriptId to remove created(if it was created) SALOME Object Browser\r
+  disconnect(getApp()->action(LightApp_Application::UserID+1), SIGNAL(triggered(bool)),\r
+             this, SLOT(onScriptLoaded()));\r
+
   return LightApp_Module::deactivateModule(theStudy);
 }
 
@@ -345,6 +354,19 @@ void SHAPERGUI::onDefaultPreferences()
   myWorkshop->displayer()->redisplayObjects();
 }
 
+//******************************************************
+void SHAPERGUI::onScriptLoaded()
+{
+  // this slot is called after processing of the LoadScriptId action of SalomeApp Application
+  // Each dumped script contains updateObjBrowser() that creates a new instance of Object
+  // Browser. When SHAPER module is active, this browser should not be used. It might be removed
+  // as hidden by means of updateWindows() of SalomeApp_Application or to remove
+  // it manually (because this method of application is protected)
+  SUIT_DataBrowser* aBrowser = getApp()->objectBrowser();
+  if (aBrowser)
+    delete aBrowser;
+}
+
 //******************************************************
 void SHAPERGUI::onUpdateCommandStatus()
 {
index c9c9f91fafc82a4731853b10fc20f676412eab5d..b940d8a1921d643001afbe27fb5efd68181c2fc5 100644 (file)
@@ -165,6 +165,9 @@ Q_OBJECT
   /// Set preferences to default
   void onDefaultPreferences();
 
+  /// Hide object browser if it was created during loading script
+  void onScriptLoaded();
+
   /// Obtains the current application and updates its actions
   void onUpdateCommandStatus();