diff --git a/src/App/Document.cpp b/src/App/Document.cpp index 73367a2cca..a87cc8bada 100644 --- a/src/App/Document.cpp +++ b/src/App/Document.cpp @@ -1327,11 +1327,6 @@ std::string Document::getTransientDirectoryName(const std::string& uuid, const s void Document::Save (Base::Writer &writer) const { - writer.Stream() << "" << endl - << "" << endl; - writer.Stream() << "GetBool("SaveBinaryBrep", false)) writer.setMode("BinaryBrep"); + writer.Stream() << "" << endl + << "" << endl; Document::Save(writer); // Special handling for Gui document. diff --git a/src/App/PropertyContainerPyImp.cpp b/src/App/PropertyContainerPyImp.cpp index a07e157651..f8182dcac7 100644 --- a/src/App/PropertyContainerPyImp.cpp +++ b/src/App/PropertyContainerPyImp.cpp @@ -231,7 +231,7 @@ PyObject* PropertyContainerPy::dumpPropertyContent(PyObject *args, PyObject *kwd int compression = 3; char* property; - static char* kwds_def[] = {"Compression",NULL}; + static char* kwds_def[] = {"Property", "Compression",NULL}; PyErr_Clear(); if (!PyArg_ParseTupleAndKeywords(args, kwds, "s|i", kwds_def, &property, &compression)) { return NULL; diff --git a/src/Mod/Test/Document.py b/src/Mod/Test/Document.py index 897f871d7f..4a03641104 100644 --- a/src/Mod/Test/Document.py +++ b/src/Mod/Test/Document.py @@ -454,7 +454,33 @@ class DocumentSaveRestoreCases(unittest.TestCase): self.failUnless(hasattr(Doc.Extension_2.ViewObject.ExtensionProxy, 'testFunction')) FreeCAD.closeDocument("SaveRestoreExtensions") - + + def testPersistenceContentDump(self): + + #test smallest level... property + self.Doc.Label_1.Vector = (1,2,3) + dump = self.Doc.Label_1.dumpPropertyContent('Vector', Compression = 9) + self.Doc.Label_2.restorePropertyContent('Vector', dump) + self.failUnless(self.Doc.Label_1.Vector == self.Doc.Label_2.Vector) + + #next higher: object + self.Doc.Label_1.Distance = 12 + self.Doc.Label_1.String = 'test' + dump = self.Doc.Label_1.dumpContent() + self.Doc.Label_3.restoreContent(dump) + self.failUnless( self.Doc.Label_1.Distance == self.Doc.Label_3.Distance) + self.failUnless( self.Doc.Label_1.String == self.Doc.Label_3.String) + + #highest level: document + dump = self.Doc.dumpContent(9) + Doc = FreeCAD.newDocument("DumpTest") + Doc.restoreContent(dump) + self.failUnless(len(self.Doc.Objects) == len(Doc.Objects)) + self.failUnless( self.Doc.Label_1.Distance == Doc.Label_1.Distance) + self.failUnless( self.Doc.Label_1.String == Doc.Label_1.String) + self.failUnless(self.Doc.Label_1.Vector == Doc.Label_1.Vector) + FreeCAD.closeDocument("DumpTest") + def tearDown(self): #closing doc FreeCAD.closeDocument("SaveRestoreTests")