]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
IPAL BugID9021, modified method onLoadDoc
authorsrn <srn@opencascade.com>
Wed, 13 Jul 2005 08:53:34 +0000 (08:53 +0000)
committersrn <srn@opencascade.com>
Wed, 13 Jul 2005 08:53:34 +0000 (08:53 +0000)
src/SalomeApp/SalomeApp_Application.cxx

index 461d17fe272ec351ec36b59420d237c77ee1b153..1db79fa56e37f7c03f731a03474c890732f2d0ee 100644 (file)
@@ -535,9 +535,22 @@ void SalomeApp_Application::onLoadDoc()
   STD_LoadStudiesDlg aDlg( desktop(), TRUE);
 
   std::vector<std::string> List = studyMgr()->GetOpenStudies();
+  
+  SUIT_Session* aSession = SUIT_Session::session();
+  QPtrList<SUIT_Application> aAppList = aSession->applications();
+  SUIT_Application* aApp = 0;
+  
   for (unsigned int ind = 0; ind < List.size(); ind++) {
      studyname = List[ind];
-     aDlg.ListComponent->insertItem( studyname );
+     //Add to list only unloaded studies
+     bool isAlreadyOpen = false;
+     for ( QPtrListIterator<SUIT_Application> it( aAppList ); it.current() && !isAlreadyOpen; ++it )
+       {
+        aApp = it.current();
+        if ( aApp->activeStudy()->studyName() == studyname ) isAlreadyOpen = true;
+       }
+
+     if ( !isAlreadyOpen ) aDlg.ListComponent->insertItem( studyname );
   }
   
   int retVal = aDlg.exec();
@@ -1704,7 +1717,8 @@ void SalomeApp_Application::createEmptyStudy()
 
 bool SalomeApp_Application::activateModule( CAM_Module* mod )
 {
-  CAM_Application::activateModule( mod );
+  bool res = CAM_Application::activateModule( mod );
   if ( objectBrowser() )
     objectBrowser()->updateTree();
+  return res;
 }