Extensions: Make Python Integration work

This commit is contained in:
Stefan Tröger
2016-06-03 19:19:54 +02:00
committed by wmayer
parent 88484d7054
commit f0f31ff94c
19 changed files with 622 additions and 369 deletions

View File

@@ -50,12 +50,19 @@ GroupExtension::~GroupExtension()
DocumentObject* GroupExtension::addObject(const char* sType, const char* pObjectName)
{
DocumentObject* obj = getExtendedObject()->getDocument()->addObject(sType, pObjectName);
if(!allowObject(obj)) {
getExtendedObject()->getDocument()->remObject(obj->getNameInDocument());
return nullptr;
}
if (obj) addObject(obj);
return obj;
}
void GroupExtension::addObject(DocumentObject* obj)
{
if(!allowObject(obj))
return;
if (!hasObject(obj)) {
std::vector<DocumentObject*> grp = Group.getValues();
grp.push_back(obj);
@@ -191,3 +198,11 @@ PyObject* GroupExtension::getExtensionPyObject(void) {
}
return Py::new_reference_to(ExtensionPythonObject);
}
namespace App {
PROPERTY_SOURCE_TEMPLATE(App::GroupExtensionPython, App::GroupExtension)
// explicit template instantiation
template class AppExport ExtensionPythonT<GroupExtensionPythonT<GroupExtension>>;
}