]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Custom persistence for PRECOS
authorsln <sln@opencascade.com>
Thu, 18 Nov 2010 15:07:01 +0000 (15:07 +0000)
committersln <sln@opencascade.com>
Thu, 18 Nov 2010 15:07:01 +0000 (15:07 +0000)
src/STD/STD_Application.cxx
src/STD/STD_Application.h

index d16cca8643fa09776ad1bacdce6462a38dd1412a..b753320571f72c08bca8f8212703b916e56399b1 100755 (executable)
@@ -49,7 +49,8 @@ STD_Application::STD_Application()
 : SUIT_Application(),
   myActiveViewMgr( 0 ),
   myExitConfirm( true ),
-  myEditEnabled( true )
+  myEditEnabled( true ),
+  myCustomPersistence( false )
 {
   setDesktop( new STD_MDIDesktop() );
 }
@@ -303,6 +304,12 @@ bool STD_Application::onNewDoc( const QString& name )
 /*!Put file name from file dialog to onOpenDoc(const QString&) function*/
 void STD_Application::onOpenDoc()
 {
+  if ( myCustomPersistence )
+  {
+    emit openDoc();
+    return;
+  }
+
   // It is preferrable to use OS-specific file dialog box here !!!
   QString aName = getFileName( true, QString(), getFileFilter(), QString(), 0 );
   if ( aName.isNull() )
@@ -488,6 +495,12 @@ void STD_Application::onSaveDoc()
   if ( !activeStudy() )
     return;
 
+  if ( myCustomPersistence )
+  {
+    emit saveDoc();
+    return;
+  }
+
   bool isOk = false;
   if ( activeStudy()->isSaved() )
   {
@@ -523,6 +536,12 @@ bool STD_Application::onSaveAsDoc()
   if ( !study )
     return false;
 
+  if ( myCustomPersistence )
+  {
+    emit saveAsDoc();
+    return true;
+  }
+
   bool isOk = false;
   while ( !isOk )
   {
@@ -927,3 +946,23 @@ void STD_Application::studySaved( SUIT_Study* )
   updateDesktopTitle();
   updateCommandsStatus();
 }
+
+/*!
+  Replace standard SALOME persistence mechanism with custom one. If custom 
+  persistence is set SALOME does not perform standard actions on open/save(as) 
+  buttons pressing; it emits corresponding signal instead.
+  \sa isCustomPersistence
+*/
+void STD_Application::setCustomPersistence( const bool theVal )
+{
+  myCustomPersistence = theVal;
+}
+
+/*!
+  Check f      lag of custom persistence
+  \sa setCustomPersistence
+*/
+bool STD_Application::isCustomPersistence() const
+{
+  return myCustomPersistence;
+}
index 7a382226bf3d4de48d7e67ef4c30f2bf748896f5..f102e5e2775112ec237ef74e722e6e9a511189bb 100755 (executable)
@@ -99,6 +99,9 @@ public:
 
   virtual void          updateDesktopTitle();
 
+  void                  setCustomPersistence( const bool );
+  bool                  isCustomPersistence() const;
+
 signals:
   /*!emit that view manager added*/
   void                  viewManagerAdded( SUIT_ViewManager* );
@@ -107,6 +110,11 @@ signals:
   /*!emit that view manager activated*/
   void                  viewManagerActivated( SUIT_ViewManager* );
 
+  /*!*/
+  void                  openDoc();
+  void                  saveDoc();
+  void                  saveAsDoc();
+
 public slots:
   virtual void          onNewDoc();
   virtual bool          onNewDoc( const QString& );
@@ -168,6 +176,7 @@ private:
 private:
   bool                  myExitConfirm;
   bool                  myEditEnabled;
+  bool                  myCustomPersistence;
 };
 
 #if defined WIN32