]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
The save returns the list of saved files
authormpv <mikhail.ponikarov@opencascade.com>
Thu, 11 Sep 2014 06:36:59 +0000 (10:36 +0400)
committermpv <mikhail.ponikarov@opencascade.com>
Thu, 11 Sep 2014 06:36:59 +0000 (10:36 +0400)
src/Model/Model_Document.cpp
src/Model/Model_Document.h
src/ModelAPI/ModelAPI_Document.h
src/XGUI/XGUI_Workshop.cpp

index cfe40d5f72dd3f48f3a713c047023e6a8d36bf1f..cb1b6d3073a089da1cfbfa54e900888ff0bf6496 100644 (file)
@@ -148,7 +148,7 @@ bool Model_Document::load(const char* theFileName)
   return !isError;
 }
 
-bool Model_Document::save(const char* theFileName)
+bool Model_Document::save(const char* theFileName, std::list<std::string>& theResults)
 {
   // create a directory in the root document if it is not yet exist
   if (this == Model_PluginManager::get()->rootDocument().get()) {
@@ -186,9 +186,10 @@ bool Model_Document::save(const char* theFileName)
   }
   myTransactionsAfterSave = 0;
   if (isDone) {  // save also sub-documents if any
+    theResults.push_back(TCollection_AsciiString(aPath).ToCString());
     std::set<std::string>::iterator aSubIter = mySubs.begin();
     for (; aSubIter != mySubs.end() && isDone; aSubIter++)
-      isDone = subDocument(*aSubIter)->save(theFileName);
+      isDone = subDocument(*aSubIter)->save(theFileName, theResults);
   }
   return isDone;
 }
index 0a53b920c9cfdd8f05b22cdc1a53087dd0796450..7b407252052d97afed27e17a523034b7a5fe7e50 100644 (file)
@@ -40,8 +40,9 @@ class Model_Document : public ModelAPI_Document
 
   //! Saves the OCAF document to the file.
   //! \param theFileName full name of the file to store
+  //! \param theResults the result full file names that were stored by "save"
   //! \returns true if file was stored successfully
-  MODEL_EXPORT virtual bool save(const char* theFileName);
+  MODEL_EXPORT virtual bool save(const char* theFileName, std::list<std::string>& theResults);
 
   //! Removes document data
   MODEL_EXPORT virtual void close();
index 5b1cfb0af115f6acf8a36c07a667106188f08b1c..f6ed8c5ab5e4fa87a78b12145ae6db3d6c2cee0b 100644 (file)
@@ -9,6 +9,7 @@
 #include <string>
 #include <boost/shared_ptr.hpp>
 #include <vector>
+#include <list>
 
 class ModelAPI_Feature;
 class ModelAPI_Object;
@@ -35,8 +36,9 @@ class ModelAPI_Document
 
   //! Saves the OCAF document to the file.
   //! \param theFileName full name of the file to store
+  //! \param theResults the result full file names that were stored by "save"
   //! \returns true if file was stored successfully
-  virtual bool save(const char* theFileName) = 0;
+  virtual bool save(const char* theFileName, std::list<std::string>& theResults) = 0;
 
   //! Removes document data
   virtual void close() = 0;
index 0668917e20e15d1c373136e67c467b8286b81a4e..4bd292de7fcd7459df0e1c9f91e07bbb84aeea0b 100644 (file)
@@ -533,7 +533,8 @@ void XGUI_Workshop::saveDocument(QString theName)
   QApplication::restoreOverrideCursor();
   PluginManagerPtr aMgr = ModelAPI_PluginManager::get();
   DocumentPtr aDoc = aMgr->rootDocument();
-  aDoc->save(theName.toLatin1().constData());
+  std::list<std::string> aFileNames;
+  aDoc->save(theName.toLatin1().constData(), aFileNames);
   QApplication::restoreOverrideCursor();
 }