]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
0020892: EDF 1414: Reloading a study provokes SIGSEGV error V5_1_4rc2
authorvsr <vsr@opencascade.com>
Wed, 2 Jun 2010 16:03:47 +0000 (16:03 +0000)
committervsr <vsr@opencascade.com>
Wed, 2 Jun 2010 16:03:47 +0000 (16:03 +0000)
src/SUIT/SUIT_Study.h
src/SalomeApp/SalomeApp_Study.cxx
src/SalomeApp/SalomeApp_Study.h

index d269c0be61a4c06443caa6cedd8a93d1be1e32f6..bd2ec1342f54dc579a0170eeae7c71a7ec76da8d 100755 (executable)
@@ -48,7 +48,7 @@ public:
   virtual int       id() const;
 
   SUIT_DataObject*  root() const;
-  QString           studyName() const;
+  virtual QString   studyName() const;
   SUIT_Application* application() const;
 
   virtual bool      isSaved()  const;
index be3b096182c481471e634d8179eccc788c3eda76..019b882b430d563630360dc4340db7961bc64810 100644 (file)
@@ -66,11 +66,30 @@ SalomeApp_Study::~SalomeApp_Study()
 int SalomeApp_Study::id() const
 {
   int id = -1;
-  if ( myStudyDS )
+  if ( studyDS() )
     id = studyDS()->StudyId();
   return id;
 }
 
+/*!
+  Get study name.
+*/
+QString SalomeApp_Study::studyName() const
+{
+  // redefined from SUIT_Study to update study name properly since
+  // it can be changed outside of GUI
+  // TEMPORARILY SOLUTION: better to be implemented with help of SALOMEDS observers
+  if ( studyDS() ) {
+    QString newName = studyDS()->Name().c_str();
+    if ( LightApp_Study::studyName() != newName ) {
+      SalomeApp_Study* that = const_cast<SalomeApp_Study*>( this );
+      that->setStudyName( newName );
+      ((SalomeApp_Application*)application())->updateDesktopTitle();
+    }
+  }
+  return LightApp_Study::studyName();
+}
+
 /*!
   Gets studyDS pointer.
 */
index fe281212ded6b3f0f4b0e4dded0ea75e6cf271c3..597a3e069e5720dc38ea6dabcf003de17c3ed736 100644 (file)
@@ -42,6 +42,7 @@ public:
   virtual ~SalomeApp_Study();
 
   virtual int         id() const;
+  virtual QString     studyName() const;
 
   virtual bool        createDocument( const QString& );
   virtual bool        openDocument( const QString& );