From ecc28163bbc7c5f8c2979b263ac45fb8c2d38f35 Mon Sep 17 00:00:00 2001 From: jmaustpc Date: Thu, 14 Mar 2013 02:01:12 +1100 Subject: [PATCH] Enable Part_Mirror child item in tree Part_Mirror now shows its child shape in the tree under the newly created Mirror Feature. On deletion it's child shape is set to show (if it had been hidden). Thus making its behaviour and appearance consistant with other Part tools, E.G. Part Fillet, Part Loft, etc. --- src/Mod/Part/Gui/ViewProviderMirror.cpp | 18 ++++++++++++++++++ src/Mod/Part/Gui/ViewProviderMirror.h | 3 +++ 2 files changed, 21 insertions(+) diff --git a/src/Mod/Part/Gui/ViewProviderMirror.cpp b/src/Mod/Part/Gui/ViewProviderMirror.cpp index 8158ddf3c..5296fa8a3 100644 --- a/src/Mod/Part/Gui/ViewProviderMirror.cpp +++ b/src/Mod/Part/Gui/ViewProviderMirror.cpp @@ -169,6 +169,24 @@ void ViewProviderMirror::unsetEdit(int ModNum) } } +std::vector ViewProviderMirror::claimChildren() const +{ + std::vector temp; + temp.push_back(static_cast(getObject())->Source.getValue()); + return temp; +} + +bool ViewProviderMirror::onDelete(const std::vector &) +{ + // get the input shape + Part::Mirroring* pMirroring = static_cast(getObject()); + App::DocumentObject *pSource = pMirroring->Source.getValue(); + if (pSource) + Gui::Application::Instance->showViewProvider(pSource); + + return true; +} + void ViewProviderMirror::dragStartCallback(void *data, SoDragger *) { // This is called when a manipulator is about to manipulating diff --git a/src/Mod/Part/Gui/ViewProviderMirror.h b/src/Mod/Part/Gui/ViewProviderMirror.h index c747d74b6..ab0ec4c2d 100644 --- a/src/Mod/Part/Gui/ViewProviderMirror.h +++ b/src/Mod/Part/Gui/ViewProviderMirror.h @@ -39,6 +39,9 @@ public: /** @name Edit methods */ //@{ void setupContextMenu(QMenu*, QObject*, const char*); + std::vector claimChildren() const; + bool onDelete(const std::vector &); + protected: bool setEdit(int ModNum); void unsetEdit(int ModNum);