diff --git a/src/Gui/ViewProviderDocumentObject.cpp b/src/Gui/ViewProviderDocumentObject.cpp index fc7923a3bf..2c245d9bea 100644 --- a/src/Gui/ViewProviderDocumentObject.cpp +++ b/src/Gui/ViewProviderDocumentObject.cpp @@ -24,7 +24,9 @@ #include "PreCompiled.h" #ifndef _PreComp_ +# include # include +# include # include # include # include @@ -47,7 +49,9 @@ #include #include #include +#include "ActionFunction.h" #include "Application.h" +#include "Command.h" #include "Document.h" #include "Selection.h" #include "MainWindow.h" @@ -267,6 +271,25 @@ void ViewProviderDocumentObject::setShowable(bool enable) } } +void ViewProviderDocumentObject::startDefaultEditMode() +{ + QString text = QObject::tr("Edit %1").arg(QString::fromUtf8(getObject()->Label.getValue())); + Gui::Command::openCommand(text.toUtf8()); + + Gui::Document* document = this->getDocument(); + if (document) { + document->setEdit(this, ViewProvider::Default); + } +} + +void ViewProviderDocumentObject::addDefaultAction(QMenu* menu, const QString& text) +{ + QAction* act = menu->addAction(text); + act->setData(QVariant((int)ViewProvider::Default)); + Gui::ActionFunction* func = new Gui::ActionFunction(menu); + func->trigger(act, boost::bind(&ViewProviderDocumentObject::startDefaultEditMode, this)); +} + void ViewProviderDocumentObject::setModeSwitch() { if(isShowable()) ViewProvider::setModeSwitch(); diff --git a/src/Gui/ViewProviderDocumentObject.h b/src/Gui/ViewProviderDocumentObject.h index 3af4173d13..aa8dfbe7ce 100644 --- a/src/Gui/ViewProviderDocumentObject.h +++ b/src/Gui/ViewProviderDocumentObject.h @@ -155,6 +155,9 @@ public: void setShowable(bool enable); bool isShowable() const; + /** Start the edit mode with ViewProvider::Default */ + void startDefaultEditMode(); + protected: /*! Get the active mdi view of the document this view provider is part of. @note The returned mdi view doesn't need to be a 3d view but can be e.g. @@ -203,6 +206,9 @@ protected: virtual void setModeSwitch() override; + /** Adds a menu item and bind it with \ref startDefaultEditMode(). */ + void addDefaultAction(QMenu*, const QString&); + protected: App::DocumentObject *pcObject; Gui::Document* pcDocument; diff --git a/src/Mod/Part/Gui/ViewProviderPrimitive.cpp b/src/Mod/Part/Gui/ViewProviderPrimitive.cpp index 4057f190ee..007c69b529 100644 --- a/src/Mod/Part/Gui/ViewProviderPrimitive.cpp +++ b/src/Mod/Part/Gui/ViewProviderPrimitive.cpp @@ -70,17 +70,6 @@ void ViewProviderPrimitive::setupContextMenu(QMenu* menu, QObject* receiver, con ViewProviderPart::setupContextMenu(menu, receiver, member); } -void ViewProviderPrimitive::startDefaultEditMode() -{ - QString text = QObject::tr("Edit %1").arg(QString::fromUtf8(getObject()->Label.getValue())); - Gui::Command::openCommand(text.toUtf8()); - - Gui::Document* document = this->getDocument(); - if (document) { - document->setEdit(this, ViewProvider::Default); - } -} - bool ViewProviderPrimitive::setEdit(int ModNum) { if (ModNum == ViewProvider::Default) { diff --git a/src/Mod/Part/Gui/ViewProviderPrimitive.h b/src/Mod/Part/Gui/ViewProviderPrimitive.h index 65e0f5a5b8..4c88f5daf2 100644 --- a/src/Mod/Part/Gui/ViewProviderPrimitive.h +++ b/src/Mod/Part/Gui/ViewProviderPrimitive.h @@ -46,9 +46,6 @@ protected: bool setEdit(int ModNum); void unsetEdit(int ModNum); -private: - void startDefaultEditMode(); - private: ViewProviderAttachExtension extension; }; diff --git a/src/Mod/PartDesign/Gui/ViewProvider.cpp b/src/Mod/PartDesign/Gui/ViewProvider.cpp index 8717eb0660..a46fb9072e 100644 --- a/src/Mod/PartDesign/Gui/ViewProvider.cpp +++ b/src/Mod/PartDesign/Gui/ViewProvider.cpp @@ -76,25 +76,6 @@ bool ViewProvider::doubleClicked(void) return true; } -void ViewProvider::startDefaultEditMode() -{ - QString text = QObject::tr("Edit %1").arg(QString::fromUtf8(getObject()->Label.getValue())); - Gui::Command::openCommand(text.toUtf8()); - - Gui::Document* document = this->getDocument(); - if (document) { - document->setEdit(this, ViewProvider::Default); - } -} - -void ViewProvider::addDefaultAction(QMenu* menu, const QString& text) -{ - QAction* act = menu->addAction(text); - act->setData(QVariant((int)ViewProvider::Default)); - Gui::ActionFunction* func = new Gui::ActionFunction(menu); - func->trigger(act, boost::bind(&ViewProvider::startDefaultEditMode, this)); -} - void ViewProvider::setupContextMenu(QMenu* menu, QObject* receiver, const char* member) { QAction* act = menu->addAction(QObject::tr("Set colors..."), receiver, member); diff --git a/src/Mod/PartDesign/Gui/ViewProvider.h b/src/Mod/PartDesign/Gui/ViewProvider.h index 9757469234..a12552a067 100644 --- a/src/Mod/PartDesign/Gui/ViewProvider.h +++ b/src/Mod/PartDesign/Gui/ViewProvider.h @@ -77,8 +77,6 @@ protected: virtual void setupContextMenu(QMenu* menu, QObject* receiver, const char* member) override; virtual bool setEdit(int ModNum) override; virtual void unsetEdit(int ModNum) override; - void startDefaultEditMode(); - void addDefaultAction(QMenu*, const QString&); virtual bool onDelete(const std::vector &) override; diff --git a/src/Mod/TechDraw/Gui/ViewProviderBalloon.cpp b/src/Mod/TechDraw/Gui/ViewProviderBalloon.cpp index 2d899bbc5d..68e5287441 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderBalloon.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderBalloon.cpp @@ -120,17 +120,6 @@ void ViewProviderBalloon::setupContextMenu(QMenu* menu, QObject* receiver, const ViewProviderDrawingView::setupContextMenu(menu, receiver, member); } -void ViewProviderBalloon::startDefaultEditMode() -{ - QString text = QObject::tr("Edit %1").arg(QString::fromUtf8(getObject()->Label.getValue())); - Gui::Command::openCommand(text.toUtf8()); - - Gui::Document* document = this->getDocument(); - if (document) { - document->setEdit(this, ViewProvider::Default); - } -} - bool ViewProviderBalloon::setEdit(int ModNum) { if (ModNum == ViewProvider::Default ) { diff --git a/src/Mod/TechDraw/Gui/ViewProviderBalloon.h b/src/Mod/TechDraw/Gui/ViewProviderBalloon.h index 9dcef1b50f..84c971c814 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderBalloon.h +++ b/src/Mod/TechDraw/Gui/ViewProviderBalloon.h @@ -63,7 +63,6 @@ public: virtual void unsetEdit(int ModNum); virtual bool doubleClicked(void); virtual bool canDelete(App::DocumentObject* obj) const; - void startDefaultEditMode(); virtual TechDraw::DrawViewBalloon* getViewObject() const; diff --git a/src/Mod/TechDraw/Gui/ViewProviderDimension.cpp b/src/Mod/TechDraw/Gui/ViewProviderDimension.cpp index bfd0febd65..0928523242 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderDimension.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderDimension.cpp @@ -135,17 +135,6 @@ void ViewProviderDimension::setupContextMenu(QMenu* menu, QObject* receiver, con ViewProviderDrawingView::setupContextMenu(menu, receiver, member); } -void ViewProviderDimension::startDefaultEditMode() -{ - QString text = QObject::tr("Edit %1").arg(QString::fromUtf8(getObject()->Label.getValue())); - Gui::Command::openCommand(text.toUtf8()); - - Gui::Document* document = this->getDocument(); - if (document) { - document->setEdit(this, ViewProvider::Default); - } -} - bool ViewProviderDimension::setEdit(int ModNum) { if (ModNum == ViewProvider::Default) { diff --git a/src/Mod/TechDraw/Gui/ViewProviderDimension.h b/src/Mod/TechDraw/Gui/ViewProviderDimension.h index 156369a840..8a0e04e61f 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderDimension.h +++ b/src/Mod/TechDraw/Gui/ViewProviderDimension.h @@ -76,7 +76,6 @@ public: virtual bool setEdit(int ModNum); virtual void unsetEdit(int ModNum); virtual bool doubleClicked(void); - void startDefaultEditMode(); virtual TechDraw::DrawViewDimension* getViewObject() const;