diff --git a/src/Mod/TechDraw/Gui/TaskSectionView.cpp b/src/Mod/TechDraw/Gui/TaskSectionView.cpp index 877d8cac1..e7309d6ba 100644 --- a/src/Mod/TechDraw/Gui/TaskSectionView.cpp +++ b/src/Mod/TechDraw/Gui/TaskSectionView.cpp @@ -285,10 +285,10 @@ bool TaskSectionView::accept() { if (strcmp(sectionDir,"unset") == 0) { Base::Console().Message("No direction selected!\n"); - reject(); - return false; + return reject(); } else { updateValues(); + Gui::Command::doCommand(Gui::Command::Gui,"Gui.ActiveDocument.resetEdit()"); return true; } } @@ -301,6 +301,7 @@ bool TaskSectionView::reject() 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()); + Gui::Command::doCommand(Gui::Command::Gui,"Gui.ActiveDocument.resetEdit()"); return false; } diff --git a/src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp b/src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp index 226683ac3..bb3852de1 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderDrawingView.cpp @@ -37,6 +37,8 @@ #include #include +#include +#include #include #include #include @@ -190,6 +192,17 @@ void ViewProviderDrawingView::updateData(const App::Property* prop) Gui::ViewProviderDocumentObject::updateData(prop); } +void ViewProviderDrawingView::unsetEdit(int ModNum) +{ + if (ModNum == ViewProvider::Default) { + Gui::Control().closeDialog(); + } + else { + Gui::ViewProviderDocumentObject::unsetEdit(ModNum); + } +} + + MDIViewPage* ViewProviderDrawingView::getMDIViewPage() const { MDIViewPage* result = nullptr; diff --git a/src/Mod/TechDraw/Gui/ViewProviderDrawingView.h b/src/Mod/TechDraw/Gui/ViewProviderDrawingView.h index 8a4c634fa..73931d4fe 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderDrawingView.h +++ b/src/Mod/TechDraw/Gui/ViewProviderDrawingView.h @@ -59,6 +59,7 @@ public: virtual void onChanged(const App::Property *prop); virtual void updateData(const App::Property*); + virtual void unsetEdit(int ModNum); QGIView* getQView(void); MDIViewPage* getMDIViewPage() const; diff --git a/src/Mod/TechDraw/Gui/ViewProviderProjGroup.cpp b/src/Mod/TechDraw/Gui/ViewProviderProjGroup.cpp index 2b20c452d..1ed0ddc2c 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderProjGroup.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderProjGroup.cpp @@ -153,7 +153,12 @@ bool ViewProviderProjGroup::setEdit(int ModNum) void ViewProviderProjGroup::unsetEdit(int ModNum) { Q_UNUSED(ModNum); - Gui::Control().closeDialog(); + if (ModNum == ViewProvider::Default) { + Gui::Control().closeDialog(); + } + else { + ViewProviderDrawingView::unsetEdit(ModNum); + } } bool ViewProviderProjGroup::doubleClicked(void)