Salome HOME
Join modifications from branch OCC_development_for_3_2_0a2
[modules/gui.git] / src / Session / Session_Session_i.cxx
index 41869b4d3a234262345768a0a0f8b56ad555010e..1a9662eea467dccda36069ff6ecb7a04ef3199bd 100755 (executable)
@@ -213,3 +213,27 @@ CORBA::Long SALOME_Session_i::GetActiveStudyId()
   }
   return aStudyId;
 }
+
+bool SALOME_Session_i::restoreVisualState(CORBA::Long theSavePoint)
+{
+  class TEvent: public SALOME_Event {
+    int _savePoint;
+  public:
+    TEvent(int savePoint) { _savePoint = savePoint; }
+    virtual void Execute() {
+      SUIT_Study* study = SUIT_Session::session()->activeApplication()->activeStudy();
+      if ( study ) {
+       study->restoreState(_savePoint);
+      }
+    }
+  };
+  
+  if(SUIT_Session::session() && SUIT_Session::session()->activeApplication() ) {
+    SUIT_Study* study = SUIT_Session::session()->activeApplication()->activeStudy();
+    if(!study) SUIT_Session::session()->activeApplication()->createEmptyStudy();      
+    ProcessVoidEvent( new TEvent(theSavePoint) );
+    return true;
+  }
+  return false;
+}