]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Properly update visibility state of data objects after Object browser destroyed and... SHAPER_2.1.0
authorvsr <vsr@opencascade.com>
Thu, 3 Dec 2015 14:24:09 +0000 (17:24 +0300)
committervsr <vsr@opencascade.com>
Tue, 8 Dec 2015 14:56:37 +0000 (17:56 +0300)
src/LightApp/LightApp_Application.cxx
src/LightApp/LightApp_Module.cxx
src/LightApp/LightApp_Module.h

index f50576ea8d68e4be8a404d2945d9a90dcf2dbc87..5970789d5734ea736e82e9cd7bb691aec6b80df2 100644 (file)
@@ -520,6 +520,9 @@ bool LightApp_Application::activateModule( const QString& modName )
       objectBrowser()->setRoot( activeStudy()->root() );
     updateObjectBrowser( true );
   }
+
+  if ( activeModule() ) activeModule()->updateModuleVisibilityState();
+
   return true;
 }
 
index 6a8d0e45d22f1f4ac642ed21f6e02cb8adce9889..02845df16da49ac17f4e030003f4366cb112ecf1 100644 (file)
@@ -249,11 +249,6 @@ bool LightApp_Module::activateModule( SUIT_Study* study )
     treeModel->setAppropriate( EntryCol, Qtx::Toggled );
   }*/
 
-  if ( myIsFirstActivate ) {
-    updateModuleVisibilityState();
-    myIsFirstActivate = false;
-  }
-  
   return res;
 }
 
@@ -800,9 +795,17 @@ void LightApp_Module::updateModuleVisibilityState()
   SUIT_DataBrowser* ob = app->objectBrowser();
   if ( !ob || !ob->model() ) return;
 
+  if ( !myIsFirstActivate )
+    return;
+
+  myIsFirstActivate = false;
+
   // connect to click on item
   connect( ob->model(), SIGNAL( clicked( SUIT_DataObject*, int ) ),
            this, SLOT( onObjectClicked( SUIT_DataObject*, int ) ), Qt::UniqueConnection );
+  // connect to click on item
+  connect( ob, SIGNAL( destroyed( QObject* ) ),
+           this, SLOT( onOBDestroyed() ), Qt::UniqueConnection );
 
   SUIT_DataObject* rootObj = ob->root();
   if ( !rootObj ) return;
@@ -845,3 +848,8 @@ void LightApp_Module::onObjectClicked( SUIT_DataObject* theObject, int theColumn
   if ( id != -1 )
     startOperation( id );
 }
+
+void LightApp_Module::onOBDestroyed()
+{
+  myIsFirstActivate = true;
+}
index ed716f19505d3a9f165eb5a017f53150fe8d3776..babb9c69874c47db9561791a240654b8356427e0 100644 (file)
@@ -113,6 +113,7 @@ public slots:
   virtual bool                        deactivateModule( SUIT_Study* );
   virtual void                        studyClosed( SUIT_Study* );
   virtual void                        onObjectClicked( SUIT_DataObject*, int );
+  void                                onOBDestroyed();
 
   void                                MenuItem();