diff --git a/src/Mod/Part/Gui/ViewProviderMirror.cpp b/src/Mod/Part/Gui/ViewProviderMirror.cpp index 8158ddf3cd..5296fa8a38 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 c747d74b69..ab0ec4c2d5 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);