]> SALOME platform Git repositories - modules/superv.git/commitdiff
Salome HOME
Fix for bug IPAL9209 : 3.0.0: (/dn06/../current1506) "Graph Supervisor" viewer isn...
authormkr <mkr@opencascade.com>
Thu, 23 Jun 2005 12:52:45 +0000 (12:52 +0000)
committermkr <mkr@opencascade.com>
Thu, 23 Jun 2005 12:52:45 +0000 (12:52 +0000)
src/SUPERVGUI/SUPERVGUI.cxx
src/SUPERVGUI/SUPERVGUI.h

index 6ee1bda3a7ef5ddab9740236df2e496c7667ad7c..a158d5f401950a1c4610d8fcc655108e8d8fd9dc 100644 (file)
@@ -75,6 +75,7 @@ SUPERVGUI::SUPERVGUI()
        study(0),
        browser(0),
        myFirstActivation(true),
+       myAllGraphsClosed(false),
        myInitialViewFrame(0)
   //info(0)
 {
@@ -229,9 +230,11 @@ bool SUPERVGUI::activateModule( SUIT_Study* theStudy )
   connect( application()->desktop(), SIGNAL( windowActivated( SUIT_ViewWindow* ) ), 
           this, SLOT( setMain( SUIT_ViewWindow* ) ) );
 
-  if ( myFirstActivation )
+  if ( myFirstActivation ) {
+    myAllGraphsClosed = false;
     // create new empty dataflow
     createDataflow( New, true );
+  }
   
   return true;
 }
@@ -252,7 +255,8 @@ bool SUPERVGUI::deactivateModule( SUIT_Study* theStudy )
              this, SLOT( setMain( SUIT_ViewWindow* ) ) );
   //---------------------------------------
   
-  myFirstActivation = false;
+  if ( !myAllGraphsClosed )
+    myFirstActivation = false;
 
   return SalomeApp_Module::deactivateModule( theStudy );
 }
@@ -269,6 +273,7 @@ SalomeApp_Selection* SUPERVGUI::createSelection() const
 
 SUIT_ViewWindow* SUPERVGUI::createGraph() {
   SUPERVGraph_ViewManager* aVM = new SUPERVGraph_ViewManager( study, application()->desktop(), new SUPERVGraph_Viewer() );
+  (( SalomeApp_Application* )application())->addViewManager( aVM );
   SUIT_ViewWindow* aVW = aVM->createViewWindow();
   if ( aVW ) {
     connect( aVM, 
@@ -404,6 +409,10 @@ void SUPERVGUI::onGraphClosed(SUIT_ViewWindow* theViewWindow) {
       }
     }
   }
+  if ( myGraphList.isEmpty() ) {
+    myAllGraphsClosed = true;
+    myFirstActivation = true;
+  }
 }
 
 void SUPERVGUI::setMain( SUIT_ViewWindow* w) {
index 578a7345bfca0d7e4ed3e0b4ed34962065f01e60..12d6986a197d2dd74e4c262e41b9a455162aafa4 100644 (file)
@@ -156,6 +156,7 @@ class SUPERVGUI: public SalomeApp_Module {
     QMap<QString, QString> myInterfaceNameMap;
 
     bool                   myFirstActivation;
+    bool                   myAllGraphsClosed;
     SUPERVGraph_ViewFrame* myInitialViewFrame;
 };