Expose merge project function to python

This commit is contained in:
wmayer 2012-05-23 15:03:48 +02:00 committed by logari81
parent 6774f160be
commit 432a460fda
3 changed files with 22 additions and 3 deletions

View File

@ -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);

View File

@ -77,6 +77,11 @@
<Documentation>
<UserDocu>Send a message to all views of the document</UserDocu>
</Documentation>
</Methode>
<Methode Name="mergeProject">
<Documentation>
<UserDocu>Merges this document with another project file</UserDocu>
</Documentation>
</Methode>
<Attribute Name="ActiveObject" ReadOnly="false">
<Documentation>

View File

@ -32,6 +32,7 @@
#include <App/Document.h>
#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();