From 5ebdc82b5d1be22f41dc1791a62443d816d83860 Mon Sep 17 00:00:00 2001 From: jrheinlaender Date: Fri, 10 May 2013 15:32:13 +0430 Subject: [PATCH] Moved unsetEdit() to ViewProvider to avoid code duplication in all feature ViewProviders --- src/Mod/PartDesign/Gui/ViewProvider.cpp | 22 +++++++++++++++++++ src/Mod/PartDesign/Gui/ViewProvider.h | 2 ++ .../PartDesign/Gui/ViewProviderChamfer.cpp | 14 ------------ src/Mod/PartDesign/Gui/ViewProviderChamfer.h | 1 - src/Mod/PartDesign/Gui/ViewProviderDraft.cpp | 14 ------------ src/Mod/PartDesign/Gui/ViewProviderDraft.h | 1 - src/Mod/PartDesign/Gui/ViewProviderFillet.cpp | 14 ------------ src/Mod/PartDesign/Gui/ViewProviderFillet.h | 1 - src/Mod/PartDesign/Gui/ViewProviderGroove.cpp | 14 ------------ src/Mod/PartDesign/Gui/ViewProviderGroove.h | 3 +-- src/Mod/PartDesign/Gui/ViewProviderPad.cpp | 14 ------------ src/Mod/PartDesign/Gui/ViewProviderPad.h | 1 - src/Mod/PartDesign/Gui/ViewProviderPocket.cpp | 14 ------------ src/Mod/PartDesign/Gui/ViewProviderPocket.h | 1 - .../PartDesign/Gui/ViewProviderRevolution.cpp | 14 ------------ .../PartDesign/Gui/ViewProviderRevolution.h | 1 - 16 files changed, 25 insertions(+), 106 deletions(-) diff --git a/src/Mod/PartDesign/Gui/ViewProvider.cpp b/src/Mod/PartDesign/Gui/ViewProvider.cpp index 89658c81a5..dfe39e3eb9 100644 --- a/src/Mod/PartDesign/Gui/ViewProvider.cpp +++ b/src/Mod/PartDesign/Gui/ViewProvider.cpp @@ -31,6 +31,7 @@ #include #include #include +#include #include #include @@ -60,6 +61,27 @@ bool ViewProvider::doubleClicked(void) return true; } +void ViewProvider::unsetEdit(int ModNum) +{ + // return to the WB we were in before editing the PartDesign feature + Gui::Command::assureWorkbench(oldWb.c_str()); + + if (ModNum == ViewProvider::Default) { + // when pressing ESC make sure to close the dialog + Gui::Control().closeDialog(); + if ((PartDesignGui::ActivePartObject != NULL) && (oldTip != NULL)) { + Gui::Selection().clearSelection(); + Gui::Selection().addSelection(oldTip->getDocument()->getName(), oldTip->getNameInDocument()); + Gui::Command::doCommand(Gui::Command::Gui,"FreeCADGui.runCommand('PartDesign_MoveTip')"); + } + oldTip = NULL; + } + else { + PartGui::ViewProviderPart::unsetEdit(ModNum); + oldTip = NULL; + } +} + void ViewProvider::updateData(const App::Property* prop) { if (prop->getTypeId() == Part::PropertyPartShape::getClassTypeId() && diff --git a/src/Mod/PartDesign/Gui/ViewProvider.h b/src/Mod/PartDesign/Gui/ViewProvider.h index 178f84afd7..7dff03edb3 100644 --- a/src/Mod/PartDesign/Gui/ViewProvider.h +++ b/src/Mod/PartDesign/Gui/ViewProvider.h @@ -43,6 +43,8 @@ public: void updateData(const App::Property*); protected: + virtual void unsetEdit(int ModNum); + std::string oldWb; }; diff --git a/src/Mod/PartDesign/Gui/ViewProviderChamfer.cpp b/src/Mod/PartDesign/Gui/ViewProviderChamfer.cpp index 490c01b693..7be0f498f2 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderChamfer.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderChamfer.cpp @@ -102,20 +102,6 @@ bool ViewProviderChamfer::setEdit(int ModNum) } } -void ViewProviderChamfer::unsetEdit(int ModNum) -{ - // return to the WB we were in before editing the PartDesign feature - Gui::Command::assureWorkbench(oldWb.c_str()); - - if (ModNum == ViewProvider::Default ) { - // when pressing ESC make sure to close the dialog - Gui::Control().closeDialog(); - } - else { - PartGui::ViewProviderPart::unsetEdit(ModNum); - } -} - bool ViewProviderChamfer::onDelete(const std::vector &s) { return ViewProvider::onDelete(s); diff --git a/src/Mod/PartDesign/Gui/ViewProviderChamfer.h b/src/Mod/PartDesign/Gui/ViewProviderChamfer.h index 4393f9a7df..507a7bb0eb 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderChamfer.h +++ b/src/Mod/PartDesign/Gui/ViewProviderChamfer.h @@ -46,7 +46,6 @@ public: protected: virtual bool setEdit(int ModNum); - virtual void unsetEdit(int ModNum); }; diff --git a/src/Mod/PartDesign/Gui/ViewProviderDraft.cpp b/src/Mod/PartDesign/Gui/ViewProviderDraft.cpp index 7d8b60f077..a4632d4dab 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderDraft.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderDraft.cpp @@ -102,20 +102,6 @@ bool ViewProviderDraft::setEdit(int ModNum) } } -void ViewProviderDraft::unsetEdit(int ModNum) -{ - // return to the WB we were in before editing the PartDesign feature - Gui::Command::assureWorkbench(oldWb.c_str()); - - if (ModNum == ViewProvider::Default ) { - // when pressing ESC make sure to close the dialog - Gui::Control().closeDialog(); - } - else { - PartGui::ViewProviderPart::unsetEdit(ModNum); - } -} - bool ViewProviderDraft::onDelete(const std::vector &s) { return ViewProvider::onDelete(s); diff --git a/src/Mod/PartDesign/Gui/ViewProviderDraft.h b/src/Mod/PartDesign/Gui/ViewProviderDraft.h index 07829d2ead..0709c8f40f 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderDraft.h +++ b/src/Mod/PartDesign/Gui/ViewProviderDraft.h @@ -46,7 +46,6 @@ public: protected: virtual bool setEdit(int ModNum); - virtual void unsetEdit(int ModNum); }; diff --git a/src/Mod/PartDesign/Gui/ViewProviderFillet.cpp b/src/Mod/PartDesign/Gui/ViewProviderFillet.cpp index 0882ce5760..db604d595f 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderFillet.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderFillet.cpp @@ -102,20 +102,6 @@ bool ViewProviderFillet::setEdit(int ModNum) } } -void ViewProviderFillet::unsetEdit(int ModNum) -{ - // return to the WB we were in before editing the PartDesign feature - Gui::Command::assureWorkbench(oldWb.c_str()); - - if (ModNum == ViewProvider::Default ) { - // when pressing ESC make sure to close the dialog - Gui::Control().closeDialog(); - } - else { - PartGui::ViewProviderPart::unsetEdit(ModNum); - } -} - bool ViewProviderFillet::onDelete(const std::vector &s) { return ViewProvider::onDelete(s); diff --git a/src/Mod/PartDesign/Gui/ViewProviderFillet.h b/src/Mod/PartDesign/Gui/ViewProviderFillet.h index 0c9a01ff14..f2f80df7c2 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderFillet.h +++ b/src/Mod/PartDesign/Gui/ViewProviderFillet.h @@ -46,7 +46,6 @@ public: protected: virtual bool setEdit(int ModNum); - virtual void unsetEdit(int ModNum); }; diff --git a/src/Mod/PartDesign/Gui/ViewProviderGroove.cpp b/src/Mod/PartDesign/Gui/ViewProviderGroove.cpp index cbfa9b3d3c..09b120110e 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderGroove.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderGroove.cpp @@ -119,20 +119,6 @@ bool ViewProviderGroove::setEdit(int ModNum) } } -void ViewProviderGroove::unsetEdit(int ModNum) -{ - // return to the WB we were in before editing the PartDesign feature - Gui::Command::assureWorkbench(oldWb.c_str()); - - if (ModNum == ViewProvider::Default) { - // when pressing ESC make sure to close the dialog - Gui::Control().closeDialog(); - } - else { - PartGui::ViewProviderPart::unsetEdit(ModNum); - } -} - bool ViewProviderGroove::onDelete(const std::vector &s) { // get the Sketch diff --git a/src/Mod/PartDesign/Gui/ViewProviderGroove.h b/src/Mod/PartDesign/Gui/ViewProviderGroove.h index 6f02326e30..c569d3dfca 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderGroove.h +++ b/src/Mod/PartDesign/Gui/ViewProviderGroove.h @@ -47,8 +47,7 @@ public: virtual bool onDelete(const std::vector &); protected: - virtual bool setEdit(int ModNum); - virtual void unsetEdit(int ModNum); + virtual bool setEdit(int ModNum); }; diff --git a/src/Mod/PartDesign/Gui/ViewProviderPad.cpp b/src/Mod/PartDesign/Gui/ViewProviderPad.cpp index 131e8b1451..4204ca62df 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderPad.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderPad.cpp @@ -116,20 +116,6 @@ bool ViewProviderPad::setEdit(int ModNum) } } -void ViewProviderPad::unsetEdit(int ModNum) -{ - // return to the WB we were in before editing the PartDesign feature - Gui::Command::assureWorkbench(oldWb.c_str()); - - if (ModNum == ViewProvider::Default) { - // when pressing ESC make sure to close the dialog - Gui::Control().closeDialog(); - } - else { - PartGui::ViewProviderPart::unsetEdit(ModNum); - } -} - bool ViewProviderPad::onDelete(const std::vector &s) { PartDesign::Pad* pcPad = static_cast(getObject()); diff --git a/src/Mod/PartDesign/Gui/ViewProviderPad.h b/src/Mod/PartDesign/Gui/ViewProviderPad.h index 597a140c68..71fb2c334c 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderPad.h +++ b/src/Mod/PartDesign/Gui/ViewProviderPad.h @@ -47,7 +47,6 @@ public: protected: virtual bool setEdit(int ModNum); - virtual void unsetEdit(int ModNum); }; diff --git a/src/Mod/PartDesign/Gui/ViewProviderPocket.cpp b/src/Mod/PartDesign/Gui/ViewProviderPocket.cpp index 4df05c2353..23d04a981b 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderPocket.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderPocket.cpp @@ -109,20 +109,6 @@ bool ViewProviderPocket::setEdit(int ModNum) } } -void ViewProviderPocket::unsetEdit(int ModNum) -{ - // return to the WB we were in before editing the PartDesign feature - Gui::Command::assureWorkbench(oldWb.c_str()); - - if (ModNum == ViewProvider::Default ) { - // when pressing ESC make sure to close the dialog - Gui::Control().closeDialog(); - } - else { - PartGui::ViewProviderPart::unsetEdit(ModNum); - } -} - bool ViewProviderPocket::onDelete(const std::vector &s) { // get the Sketch diff --git a/src/Mod/PartDesign/Gui/ViewProviderPocket.h b/src/Mod/PartDesign/Gui/ViewProviderPocket.h index 701cb77ff6..56e10d63f8 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderPocket.h +++ b/src/Mod/PartDesign/Gui/ViewProviderPocket.h @@ -47,7 +47,6 @@ public: protected: virtual bool setEdit(int ModNum); - virtual void unsetEdit(int ModNum); }; diff --git a/src/Mod/PartDesign/Gui/ViewProviderRevolution.cpp b/src/Mod/PartDesign/Gui/ViewProviderRevolution.cpp index caa00dd8f0..05b18d4d91 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderRevolution.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderRevolution.cpp @@ -119,20 +119,6 @@ bool ViewProviderRevolution::setEdit(int ModNum) } } -void ViewProviderRevolution::unsetEdit(int ModNum) -{ - // return to the WB we were in before editing the PartDesign feature - Gui::Command::assureWorkbench(oldWb.c_str()); - - if (ModNum == ViewProvider::Default) { - // when pressing ESC make sure to close the dialog - Gui::Control().closeDialog(); - } - else { - PartGui::ViewProviderPart::unsetEdit(ModNum); - } -} - bool ViewProviderRevolution::onDelete(const std::vector &s) { // get the Sketch diff --git a/src/Mod/PartDesign/Gui/ViewProviderRevolution.h b/src/Mod/PartDesign/Gui/ViewProviderRevolution.h index faad403d5c..a2dbeaeaf6 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderRevolution.h +++ b/src/Mod/PartDesign/Gui/ViewProviderRevolution.h @@ -48,7 +48,6 @@ public: protected: virtual bool setEdit(int ModNum); - virtual void unsetEdit(int ModNum); };