]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
To introduce and handle Modified method for SUIT_Study
authorapo <apo@opencascade.com>
Wed, 1 Aug 2007 09:31:56 +0000 (09:31 +0000)
committerapo <apo@opencascade.com>
Wed, 1 Aug 2007 09:31:56 +0000 (09:31 +0000)
src/STD/STD_Application.cxx
src/SUIT/SUIT_Application.cxx
src/SUIT/SUIT_Application.h
src/SUIT/SUIT_Study.cxx
src/SUIT/SUIT_Study.h

index 90690cad7c3b0e0162d3ac58cd78c3b9f5dcf2cb..41f98bcaa0eaca906cc0aa6ef2fadd61daf0fba7 100755 (executable)
@@ -577,6 +577,8 @@ void STD_Application::updateDesktopTitle()
 /*!Update commands status.*/
 void STD_Application::updateCommandsStatus()
 {
+  SUIT_Application::updateCommandsStatus();
+
   bool aHasStudy = activeStudy() != 0;
   bool aIsNeedToSave = false;
   if ( aHasStudy )
index bbe68030d2b757c51ddd1624e2802656960ba6fd..61b218470372d3fe7e1693f81e9902ce652f2dd4 100755 (executable)
@@ -46,8 +46,8 @@ myStatusLabel( 0 )
 */
 SUIT_Application::~SUIT_Application() 
 {
+  setActiveStudy( 0 );
   delete myStudy;
-  myStudy = 0;
 
   setDesktop( 0 );
 }
@@ -204,6 +204,12 @@ void SUIT_Application::onInfoClear()
     emit infoChanged( QString::null );
 }
 
+/*!
+  Updates status of the registerd actions
+*/
+void SUIT_Application::updateCommandsStatus()
+{}
+
 /*!
   Initialize with application arguments
   \param argc - number of application arguments
@@ -263,6 +269,12 @@ void SUIT_Application::setActiveStudy( SUIT_Study* study )
   if ( myStudy == study )
     return;
 
+  if(myStudy)
+    disconnect(myStudy, SIGNAL( studyModified( SUIT_Study* ) ), this, SLOT( updateCommandsStatus() ) );
+
+  if(study)
+    connect(study, SIGNAL( studyModified( SUIT_Study* ) ), this, SLOT( updateCommandsStatus() ) );
+           
   myStudy = study;
 }
 
index 0bf48847e47efb99ae3aaaa7a08de43aabc794b7..b6d69edca073efab8493fa62710a2dfc2a4f74dd 100755 (executable)
@@ -114,6 +114,9 @@ signals:
   void                  activated( SUIT_Application* );
   void                  infoChanged( QString );
 
+public slots:
+  virtual void          updateCommandsStatus();
+
 private slots:
   void                  onInfoClear();
 
index a3baef3ce8bc7dfa153cea62db34b2e91c3cd4a4..01387d92a872e4205e766248142a5cbbb3a721e4 100755 (executable)
@@ -200,6 +200,15 @@ void SUIT_Study::setIsModified( const bool on )
   myIsModified = on;
 }
 
+/*!
+  Set study modified to \a on.
+ */
+void SUIT_Study::Modified()
+{
+  setIsModified( TRUE );
+  sendChangesNotification();
+}
+
 /*!
   Set root object.
  */
index 156c6bc74df61f24a70f95fe04b46b75bd69e98a..c206d4fbb74bc91779eac7399c91aacea1558ec2 100755 (executable)
@@ -50,6 +50,7 @@ public:
 
   virtual bool      isSaved()  const;
   virtual bool      isModified() const;
+  virtual void      Modified();
 
   virtual void      createDocument();
   virtual void      closeDocument( bool = true );