PD: open transaction when calling item of context-menu of sketch based features

This commit is contained in:
wmayer
2021-10-22 20:01:43 +02:00
parent d39233313b
commit 45c3cee264
6 changed files with 28 additions and 18 deletions

View File

@@ -31,6 +31,7 @@
#include <Inventor/nodes/SoSwitch.h>
#endif
#include <Gui/ActionFunction.h>
#include <Gui/Command.h>
#include <Gui/MDIView.h>
#include <Gui/Control.h>
@@ -66,9 +67,8 @@ bool ViewProvider::doubleClicked(void)
{
try {
PartDesign::Body* body = PartDesign::Body::findBodyOf(getObject());
std::string Msg("Edit ");
Msg += this->pcObject->Label.getValue();
Gui::Command::openCommand(Msg.c_str());
QString text = QObject::tr("Edit %1").arg(QString::fromUtf8(getObject()->Label.getValue()));
Gui::Command::openCommand(text.toUtf8());
PartDesignGui::setEdit(pcObject,body);
}
catch (const Base::Exception&) {
@@ -77,6 +77,25 @@ 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

@@ -76,6 +76,8 @@ 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

@@ -47,9 +47,7 @@ ViewProviderGroove::~ViewProviderGroove()
void ViewProviderGroove::setupContextMenu(QMenu* menu, QObject* receiver, const char* member)
{
QAction* act;
act = menu->addAction(QObject::tr("Edit groove"), receiver, member);
act->setData(QVariant((int)ViewProvider::Default));
addDefaultAction(menu, QObject::tr("Edit groove"));
PartDesignGui::ViewProviderSketchBased::setupContextMenu(menu, receiver, member);
}

View File

@@ -47,12 +47,7 @@ ViewProviderPad::~ViewProviderPad()
void ViewProviderPad::setupContextMenu(QMenu* menu, QObject* receiver, const char* member)
{
// Note: This methode couldn't be unified with others because menu entry string
// should present united in sources for proper translation and shouldn't be
// constructed on runtime.
QAction* act;
act = menu->addAction(QObject::tr("Edit pad"), receiver, member);
act->setData(QVariant((int)ViewProvider::Default));
addDefaultAction(menu, QObject::tr("Edit pad"));
PartDesignGui::ViewProviderSketchBased::setupContextMenu(menu, receiver, member);
}

View File

@@ -49,9 +49,7 @@ ViewProviderPocket::~ViewProviderPocket()
void ViewProviderPocket::setupContextMenu(QMenu* menu, QObject* receiver, const char* member)
{
QAction* act;
act = menu->addAction(QObject::tr("Edit pocket"), receiver, member);
act->setData(QVariant((int)ViewProvider::Default));
addDefaultAction(menu, QObject::tr("Edit pocket"));
PartDesignGui::ViewProviderSketchBased::setupContextMenu(menu, receiver, member);
}

View File

@@ -47,9 +47,7 @@ ViewProviderRevolution::~ViewProviderRevolution()
void ViewProviderRevolution::setupContextMenu(QMenu* menu, QObject* receiver, const char* member)
{
QAction* act;
act = menu->addAction(QObject::tr("Edit revolution"), receiver, member);
act->setData(QVariant((int)ViewProvider::Default));
addDefaultAction(menu, QObject::tr("Edit revolution"));
PartDesignGui::ViewProviderSketchBased::setupContextMenu(menu, receiver, member);
}