]> SALOME platform Git repositories - modules/jobmanager.git/commitdiff
Salome HOME
Better management of the viewers
authorribes <ribes>
Mon, 4 Oct 2010 13:50:09 +0000 (13:50 +0000)
committerribes <ribes>
Mon, 4 Oct 2010 13:50:09 +0000 (13:50 +0000)
src/salomegui/BL_SalomeGui.cxx
src/salomegui/BL_SalomeGui.hxx

index 4d2304113fb4ab653d2e2324966389b88f4c7570..4461486a5628589115ba5deac0b2167ec1bd84ce 100644 (file)
@@ -41,6 +41,9 @@ BL::SalomeGui::initialize(CAM_Application* app)
    DEBTRACE("Entering in initialize");
    SalomeApp_Module::initialize(app); // MANDATORY -> Otherwise SISEGV...
    connect( getApp(), SIGNAL(studyClosed()), this, SLOT(studyClosed()));
+   if ( app && app->desktop() )
+     connect( app->desktop(), SIGNAL( windowActivated( SUIT_ViewWindow* ) ),
+              this, SLOT(onWindowActivated( SUIT_ViewWindow* )) );
 }
 
 void
@@ -51,6 +54,7 @@ BL::SalomeGui::studyClosed()
     _gengui->deleteDockWidget();
     delete _gengui;
     _gengui = NULL;
+    _viewWin = NULL;
   }
 }
 
@@ -107,6 +111,18 @@ BL::SalomeGui::deactivateModule(SUIT_Study* theStudy)
   return bOk;
 }
 
+void 
+BL::SalomeGui::onWindowActivated( SUIT_ViewWindow* svw)
+{
+  DEBTRACE("BL::SalomeGui::onWindowActivated");
+  DEBTRACE("activeModule()->moduleName() " << (getApp()->activeModule() ? getApp()->activeModule()->moduleName().toStdString() : "") );
+  
+  if (_viewWin) // Be sure to have a _viewWindow
+    if (svw->getId() == _viewWin->getId()) // Same Id ?
+      if (getApp()->activeModule() && getApp()->activeModule()->moduleName().compare("JobManager") != 0) // JobManager already activated ?
+        getApp()->activateModule("JobManager");
+}
+
 // --- Export the module
 extern "C"
 {
index 5ca85dee8f0a055cede4fafcf1b52f56617f468f..f6069a9f8d2ac555485bf2e190d36f43397a41fa 100644 (file)
@@ -46,6 +46,9 @@ namespace BL
       bool activateModule( SUIT_Study* theStudy);
       void studyClosed();
 
+    protected slots:
+      void onWindowActivated( SUIT_ViewWindow* svw);
+
     protected:
       BL::GenericGui * _gengui;
   };