diff --git a/src/Mod/TechDraw/Gui/CMakeLists.txt b/src/Mod/TechDraw/Gui/CMakeLists.txt index 722cc0d3c3..34de8ede6e 100644 --- a/src/Mod/TechDraw/Gui/CMakeLists.txt +++ b/src/Mod/TechDraw/Gui/CMakeLists.txt @@ -36,6 +36,13 @@ else(BUILD_QT5) ) endif(BUILD_QT5) +generate_from_xml(MDIViewPagePy) + +# The XML files +set(TechDrawGui_XML_SRCS + MDIViewPagePy.xml +) + link_directories(${OCC_LIBRARY_DIR}) set(TechDrawGui_LIBS @@ -96,6 +103,7 @@ SET(MRTE_SRCS SET(TechDrawGui_SRCS ${CMAKE_SOURCE_DIR}/src/Mod/TechDraw/InitGui.py ${TechDrawGui_SRCS} + ${TechDrawGui_XML_SRCS} ${MRTE_SRCS} AppTechDrawGui.cpp AppTechDrawGuiPy.cpp @@ -197,6 +205,7 @@ SET(TechDrawGui_SRCS SET(TechDrawGuiView_SRCS MDIViewPage.cpp MDIViewPage.h + MDIViewPagePyImp.cpp QGVPage.cpp QGVPage.h QGCustomText.cpp diff --git a/src/Mod/TechDraw/Gui/MDIViewPage.cpp b/src/Mod/TechDraw/Gui/MDIViewPage.cpp index 9aa4ea8d30..287242806d 100644 --- a/src/Mod/TechDraw/Gui/MDIViewPage.cpp +++ b/src/Mod/TechDraw/Gui/MDIViewPage.cpp @@ -47,6 +47,7 @@ #include #include "MDIViewPage.h" +#include "MDIViewPagePy.h" #include #include @@ -794,7 +795,11 @@ void MDIViewPage::print(QPrinter* printer) PyObject* MDIViewPage::getPyObject() { - return Gui::MDIView::getPyObject(); + if (!pythonObject) + pythonObject = new MDIViewPagePy(this); + + Py_INCREF(pythonObject); + return pythonObject; } void MDIViewPage::contextMenuEvent(QContextMenuEvent *event) diff --git a/src/Mod/TechDraw/Gui/MDIViewPage.h b/src/Mod/TechDraw/Gui/MDIViewPage.h index d402a99d3e..ba5c85b4cd 100644 --- a/src/Mod/TechDraw/Gui/MDIViewPage.h +++ b/src/Mod/TechDraw/Gui/MDIViewPage.h @@ -24,6 +24,8 @@ #ifndef TECHDRAWGUI_MDIVIEWPAGE_H #define TECHDRAWGUI_MDIVIEWPAGE_H +#include "ViewProviderPage.h" + #include #include @@ -31,6 +33,8 @@ #include #include +#include + QT_BEGIN_NAMESPACE class QAction; class QTimer; @@ -90,6 +94,7 @@ public: void setDocumentObject(const std::string&); void setDocumentName(const std::string&); PyObject* getPyObject(); + TechDraw::DrawPage * getPage() { return m_vpPage->getDrawPage(); } QGVPage* getQGVPage(void) {return m_view;}; diff --git a/src/Mod/TechDraw/Gui/MDIViewPagePy.xml b/src/Mod/TechDraw/Gui/MDIViewPagePy.xml new file mode 100644 index 0000000000..25292969f8 --- /dev/null +++ b/src/Mod/TechDraw/Gui/MDIViewPagePy.xml @@ -0,0 +1,23 @@ + + + + + + MDIViewPage object + + + + returns the page being displayed + + + + + diff --git a/src/Mod/TechDraw/Gui/MDIViewPagePyImp.cpp b/src/Mod/TechDraw/Gui/MDIViewPagePyImp.cpp new file mode 100644 index 0000000000..e59dc8c326 --- /dev/null +++ b/src/Mod/TechDraw/Gui/MDIViewPagePyImp.cpp @@ -0,0 +1,43 @@ + +#include "PreCompiled.h" + +#include "Mod/TechDraw/Gui/MDIViewPage.h" + +// inclusion of the generated files (generated out of MDIViewPagePy.xml) +#include "MDIViewPagePy.h" +#include "MDIViewPagePy.cpp" + +#include + +using namespace TechDrawGui; + +// returns a string which represents the object e.g. when printed in python +std::string MDIViewPagePy::representation() const +{ + return std::string(""); +} + + + +PyObject* MDIViewPagePy::getPage(PyObject * args) +{ + if (!PyArg_ParseTuple(args, "")) + return nullptr; + return new TechDraw::DrawPagePy(getMDIViewPagePtr()->getPage()); +} + + + + + +PyObject *MDIViewPagePy::getCustomAttributes(const char* /*attr*/) const +{ + return nullptr; +} + +int MDIViewPagePy::setCustomAttributes(const char* /*attr*/, PyObject* /*obj*/) +{ + return 0; +} + +