]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
[bos #29098] Help panel for SHAPER module. Eliminate the limitation on store/restore...
authorjfa <jfa@opencascade.com>
Wed, 14 Sep 2022 16:10:41 +0000 (19:10 +0300)
committerjfa <jfa@opencascade.com>
Wed, 14 Sep 2022 16:10:41 +0000 (19:10 +0300)
src/SHAPERGUI/SHAPERGUI.cpp
src/XGUI/XGUI_Workshop.cpp

index e8850f6273b7ff7c3f7946331a0d737944b9466e..acc61de03c35b39f698511d773e05ffaa546847a 100644 (file)
@@ -335,14 +335,6 @@ bool SHAPERGUI::activateModule(SUIT_Study* theStudy)
   myIsEditEnabled = getApp()->isEditEnabled();
   getApp()->setEditEnabled(false);
 
-  // this following row is caused by #187 bug.
-  // SALOME saves the dock widget positions before deactivateModule() and
-  // load it after the module activation. So, if the panel is visible before
-  // deactivate, it becomes visible after activate.
-  // In order to avoid the visible property panel, the widget position save is
-  // switch off in this module
-  aResMgr->setValue("Study", "store_positions", false);
-
   // Synchronize displayed objects
   Handle(AIS_InteractiveContext) aContext;
   if (mySelector && mySelector->viewer())
@@ -1058,6 +1050,16 @@ void SHAPERGUI::updateModuleVisibilityState()
 {
   LightApp_Module::updateModuleVisibilityState();
   onWhatIs(myIsInspectionVisible);
+
+  // the following code is caused by #187 bug.
+  // SALOME saves the dock widget positions before deactivateModule() and
+  // load it after the module activation. So, if the panel is visible before
+  // deactivate, it becomes visible after activate.
+  // In order to avoid the visible property panel, we hide it here
+  ModuleBase_Operation* anOperation = myWorkshop->module()->currentOperation();
+  if (!anOperation) {
+    myWorkshop->hidePanel(myWorkshop->propertyPanel());
+  }
 }
 
 void SHAPERGUI::onEditToolbars()
index 8859ef6546a163852b28fd902d1389e201563700..124ac7bc109ce985c6e7ca3d7b81767053ce3e05 100644 (file)
@@ -1728,11 +1728,14 @@ void XGUI_Workshop::showPanel(QDockWidget* theDockWidget)
 //******************************************************
 void XGUI_Workshop::hidePanel(QDockWidget* theDockWidget)
 {
-  if (theDockWidget && theDockWidget == myPropertyPanel) {
+  if (!theDockWidget) return;
+
+  if (theDockWidget == myPropertyPanel) {
     QAction* aViewAct = theDockWidget->toggleViewAction();
     ///<! Do not allow to show empty property panel
     aViewAct->setEnabled(false);
   }
+
   theDockWidget->hide();
 
   // the property panel is active window of the desktop, when it is