Skip to content

Commit

Permalink
Implement Cancel logic for TaskViewSection
Browse files Browse the repository at this point in the history
  • Loading branch information
WandererFan committed Sep 11, 2016
1 parent 17fe635 commit a5b5104
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 3 deletions.
5 changes: 5 additions & 0 deletions src/Mod/TechDraw/App/DrawPagePy.xml
Expand Up @@ -18,6 +18,11 @@
<UserDocu>addView(DrawView) - Add a View to this Page</UserDocu>
</Documentation>
</Methode>
<Methode Name="removeView">
<Documentation>
<UserDocu>removeView(DrawView) - Remove a View to this Page</UserDocu>
</Documentation>
</Methode>
<Methode Name="getPageWidth">
<Documentation>
<UserDocu>Return the width of this page</UserDocu>
Expand Down
25 changes: 25 additions & 0 deletions src/Mod/TechDraw/App/DrawPagePyImp.cpp
Expand Up @@ -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<TechDraw::DrawViewPy*>(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)
{
Expand Down
10 changes: 9 additions & 1 deletion src/Mod/TechDraw/Gui/TaskSectionView.cpp
Expand Up @@ -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;
}

Expand Down
4 changes: 2 additions & 2 deletions src/Mod/TechDraw/Gui/TaskSectionView.h
Expand Up @@ -46,8 +46,8 @@ class TaskSectionView : public QWidget
~TaskSectionView();

public:
bool accept();
bool reject();
virtual bool accept();
virtual bool reject();

protected Q_SLOTS:
void onHorizontalClicked(bool b);
Expand Down

0 comments on commit a5b5104

Please sign in to comment.