Gui: move methods startDefaultEditMode() and addDefaultAction() to ViewProviderDocumentObject

This commit is contained in:
wmayer
2021-12-06 19:24:26 +01:00
parent e71051f4f0
commit 8df497b08e
10 changed files with 29 additions and 59 deletions

View File

@@ -24,7 +24,9 @@
#include "PreCompiled.h"
#ifndef _PreComp_
# include <QAction>
# include <QByteArray>
# include <QMenu>
# include <qpixmap.h>
# include <Inventor/actions/SoSearchAction.h>
# include <Inventor/nodes/SoDrawStyle.h>
@@ -47,7 +49,9 @@
#include <App/DocumentObjectGroup.h>
#include <App/DocumentObserver.h>
#include <App/Origin.h>
#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();

View File

@@ -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;

View File

@@ -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) {

View File

@@ -46,9 +46,6 @@ protected:
bool setEdit(int ModNum);
void unsetEdit(int ModNum);
private:
void startDefaultEditMode();
private:
ViewProviderAttachExtension extension;
};

View File

@@ -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);

View File

@@ -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<std::string> &) override;

View File

@@ -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 ) {

View File

@@ -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;

View File

@@ -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) {

View File

@@ -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;