diff --git a/src/Mod/TechDraw/App/DrawPagePy.xml b/src/Mod/TechDraw/App/DrawPagePy.xml
index 560456b9f..5357768f2 100644
--- a/src/Mod/TechDraw/App/DrawPagePy.xml
+++ b/src/Mod/TechDraw/App/DrawPagePy.xml
@@ -18,6 +18,11 @@
addView(DrawView) - Add a View to this Page
+
+
+ removeView(DrawView) - Remove a View to this Page
+
+
Return the width of this page
diff --git a/src/Mod/TechDraw/App/DrawPagePyImp.cpp b/src/Mod/TechDraw/App/DrawPagePyImp.cpp
index 48cc29af6..daaaaac5b 100644
--- a/src/Mod/TechDraw/App/DrawPagePyImp.cpp
+++ b/src/Mod/TechDraw/App/DrawPagePyImp.cpp
@@ -45,6 +45,31 @@ PyObject* DrawPagePy::addView(PyObject* args)
return PyInt_FromLong((long) rc);
}
+PyObject* DrawPagePy::removeView(PyObject* args)
+{
+ //this implements iRC = pyPage.removeView(pyView) -or-
+ //doCommand(Doc,"App.activeDocument().%s.removeView(App.activeDocument().%s)",PageName.c_str(),FeatName.c_str());
+ PyObject *pcDocObj;
+
+ if (!PyArg_ParseTuple(args, "O!", &(App::DocumentObjectPy::Type), &pcDocObj)) {
+ Base::Console().Error("Error: DrawPagePy::removeView - Bad Arg - not DocumentObject\n");
+ return NULL;
+ //TODO: sb PyErr??
+ //PyErr_SetString(PyExc_TypeError,"removeView expects a DrawView");
+ //return -1;
+ }
+
+ DrawPage* page = getDrawPagePtr(); //get DrawPage for pyPage
+ //how to validate that obj is DrawView before use??
+ DrawViewPy* pyView = static_cast(pcDocObj);
+ DrawView* view = pyView->getDrawViewPtr(); //get DrawView for pyView
+
+ int rc = page->removeView(view);
+
+ return PyInt_FromLong((long) rc);
+}
+
+
// double getPageWidth() const;
PyObject* DrawPagePy::getPageWidth(PyObject *args)
{
diff --git a/src/Mod/TechDraw/Gui/TaskSectionView.cpp b/src/Mod/TechDraw/Gui/TaskSectionView.cpp
index 0b555f531..63e0b9279 100644
--- a/src/Mod/TechDraw/Gui/TaskSectionView.cpp
+++ b/src/Mod/TechDraw/Gui/TaskSectionView.cpp
@@ -272,12 +272,20 @@ bool TaskSectionView::accept()
{
//calcValues();
updateValues();
+ std::string BaseName = m_base->getNameInDocument();
+ Gui::Command::doCommand(Gui::Command::Gui,"App.activeDocument().%s.ShowSectionLine=True",BaseName.c_str());
return true;
}
bool TaskSectionView::reject()
{
- //TODO: remove viewSection
+ std::string BaseName = m_base->getNameInDocument();
+ std::string PageName = m_base->findParentPage()->getNameInDocument();
+ std::string SectionName = m_section->getNameInDocument();
+ Gui::Command::doCommand(Gui::Command::Gui,"App.activeDocument().%s.ShowSectionLine=False",BaseName.c_str());
+ Gui::Command::doCommand(Gui::Command::Gui,"App.activeDocument().%s.removeView(App.activeDocument().%s)",
+ PageName.c_str(),SectionName.c_str());
+ Gui::Command::doCommand(Gui::Command::Gui,"App.activeDocument().removeObject('%s')",SectionName.c_str());
return false;
}
diff --git a/src/Mod/TechDraw/Gui/TaskSectionView.h b/src/Mod/TechDraw/Gui/TaskSectionView.h
index ffc25a995..9e698f74d 100644
--- a/src/Mod/TechDraw/Gui/TaskSectionView.h
+++ b/src/Mod/TechDraw/Gui/TaskSectionView.h
@@ -46,8 +46,8 @@ public:
~TaskSectionView();
public:
- bool accept();
- bool reject();
+ virtual bool accept();
+ virtual bool reject();
protected Q_SLOTS:
void onHorizontalClicked(bool b);