From 432a460fda32347b3884135f9ba5904e44e375d9 Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 23 May 2012 15:03:48 +0200 Subject: [PATCH] Expose merge project function to python --- src/Gui/CommandDoc.cpp | 3 --- src/Gui/DocumentPy.xml | 5 +++++ src/Gui/DocumentPyImp.cpp | 17 +++++++++++++++++ 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/Gui/CommandDoc.cpp b/src/Gui/CommandDoc.cpp index 46c5f5681..b9d0ea68b 100644 --- a/src/Gui/CommandDoc.cpp +++ b/src/Gui/CommandDoc.cpp @@ -294,9 +294,6 @@ void StdCmdMergeProjects::activated(int iMsg) return; } - QString dir1 = proj.absoluteDir().filePath(proj.baseName()); - QString dir2 = info.absoluteDir().filePath(info.baseName()); - Base::FileInfo fi((const char*)project.toUtf8()); Base::ifstream str(fi, std::ios::in | std::ios::binary); MergeDocuments md(doc); diff --git a/src/Gui/DocumentPy.xml b/src/Gui/DocumentPy.xml index 75ac71a54..c76e101cf 100644 --- a/src/Gui/DocumentPy.xml +++ b/src/Gui/DocumentPy.xml @@ -77,6 +77,11 @@ Send a message to all views of the document + + + + Merges this document with another project file + diff --git a/src/Gui/DocumentPyImp.cpp b/src/Gui/DocumentPyImp.cpp index 4d30e7cc5..67b66f36a 100644 --- a/src/Gui/DocumentPyImp.cpp +++ b/src/Gui/DocumentPyImp.cpp @@ -32,6 +32,7 @@ #include #include "Document.h" +#include "MergeDocuments.h" #include "ViewProviderExtern.h" // inclusion of the generated files (generated out of DocumentPy.xml) @@ -234,6 +235,22 @@ PyObject* DocumentPy::sendMsgToViews(PyObject *args) } PY_CATCH; } +PyObject* DocumentPy::mergeProject(PyObject *args) +{ + char* filename; + if (!PyArg_ParseTuple(args, "s", &filename)) // convert args: Python->C + return NULL; // NULL triggers exception + + PY_TRY { + Base::FileInfo fi(filename); + Base::ifstream str(fi, std::ios::in | std::ios::binary); + App::Document* doc = getDocumentPtr()->getDocument(); + MergeDocuments md(doc); + md.importObjects(str); + Py_Return; + } PY_CATCH; +} + Py::Object DocumentPy::getActiveObject(void) const { App::DocumentObject *object = getDocumentPtr()->getDocument()->getActiveObject();