PD: 0004742: Editing features by context menu may not be undoable
This commit is contained in:
@@ -65,9 +65,7 @@ ViewProviderBoolean::~ViewProviderBoolean()
|
||||
|
||||
void ViewProviderBoolean::setupContextMenu(QMenu* menu, QObject* receiver, const char* member)
|
||||
{
|
||||
QAction* act;
|
||||
act = menu->addAction(QObject::tr("Edit boolean"), receiver, member);
|
||||
act->setData(QVariant((int)ViewProvider::Default));
|
||||
addDefaultAction(menu, QObject::tr("Edit boolean"));
|
||||
PartDesignGui::ViewProvider::setupContextMenu(menu, receiver, member);
|
||||
}
|
||||
|
||||
|
||||
@@ -53,9 +53,7 @@ ViewProviderHelix::~ViewProviderHelix()
|
||||
|
||||
void ViewProviderHelix::setupContextMenu(QMenu* menu, QObject* receiver, const char* member)
|
||||
{
|
||||
QAction* act;
|
||||
act = menu->addAction(QObject::tr("Edit helix"), receiver, member);
|
||||
act->setData(QVariant((int)ViewProvider::Default));
|
||||
addDefaultAction(menu, QObject::tr("Edit helix"));
|
||||
PartDesignGui::ViewProviderAddSub::setupContextMenu(menu, receiver, member);
|
||||
}
|
||||
|
||||
|
||||
@@ -60,9 +60,7 @@ std::vector<App::DocumentObject*> ViewProviderHole::claimChildren(void)const
|
||||
|
||||
void ViewProviderHole::setupContextMenu(QMenu* menu, QObject* receiver, const char* member)
|
||||
{
|
||||
QAction* act;
|
||||
act = menu->addAction(QObject::tr("Edit hole"), receiver, member);
|
||||
act->setData(QVariant((int)ViewProvider::Default));
|
||||
addDefaultAction(menu, QObject::tr("Edit hole"));
|
||||
PartGui::ViewProviderPart::setupContextMenu(menu, receiver, member);
|
||||
}
|
||||
|
||||
|
||||
@@ -75,9 +75,7 @@ std::vector<App::DocumentObject*> ViewProviderLoft::claimChildren(void)const
|
||||
|
||||
void ViewProviderLoft::setupContextMenu(QMenu* menu, QObject* receiver, const char* member)
|
||||
{
|
||||
QAction* act;
|
||||
act = menu->addAction(QObject::tr("Edit loft"), receiver, member);
|
||||
act->setData(QVariant((int)ViewProvider::Default));
|
||||
addDefaultAction(menu, QObject::tr("Edit loft"));
|
||||
PartDesignGui::ViewProvider::setupContextMenu(menu, receiver, member);
|
||||
}
|
||||
|
||||
|
||||
@@ -83,9 +83,7 @@ std::vector<App::DocumentObject*> ViewProviderPipe::claimChildren(void)const
|
||||
|
||||
void ViewProviderPipe::setupContextMenu(QMenu* menu, QObject* receiver, const char* member)
|
||||
{
|
||||
QAction* act;
|
||||
act = menu->addAction(QObject::tr("Edit pipe"), receiver, member);
|
||||
act->setData(QVariant((int)ViewProvider::Default));
|
||||
addDefaultAction(menu, QObject::tr("Edit pipe"));
|
||||
PartDesignGui::ViewProvider::setupContextMenu(menu, receiver, member);
|
||||
}
|
||||
|
||||
|
||||
@@ -72,9 +72,7 @@ void ViewProviderPrimitive::attach(App::DocumentObject* obj) {
|
||||
|
||||
void ViewProviderPrimitive::setupContextMenu(QMenu* menu, QObject* receiver, const char* member)
|
||||
{
|
||||
QAction* act;
|
||||
act = menu->addAction(QObject::tr("Edit primitive"), receiver, member);
|
||||
act->setData(QVariant((int)ViewProvider::Default));
|
||||
addDefaultAction(menu, QObject::tr("Edit primitive"));
|
||||
PartDesignGui::ViewProvider::setupContextMenu(menu, receiver, member);
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,9 @@
|
||||
#endif
|
||||
|
||||
#include <Base/Console.h>
|
||||
#include <Gui/ActionFunction.h>
|
||||
#include <Gui/Application.h>
|
||||
#include <Gui/Command.h>
|
||||
#include <Gui/Control.h>
|
||||
#include <Gui/Document.h>
|
||||
|
||||
@@ -188,9 +190,23 @@ void ViewProviderShapeBinder::highlightReferences(const bool on, bool /*auxiliar
|
||||
|
||||
void ViewProviderShapeBinder::setupContextMenu(QMenu* menu, QObject* receiver, const char* member)
|
||||
{
|
||||
Q_UNUSED(receiver)
|
||||
Q_UNUSED(member)
|
||||
|
||||
QAction* act;
|
||||
act = menu->addAction(QObject::tr("Edit shape binder"), receiver, member);
|
||||
act = menu->addAction(QObject::tr("Edit shape binder"));
|
||||
act->setData(QVariant((int)ViewProvider::Default));
|
||||
|
||||
Gui::ActionFunction* func = new Gui::ActionFunction(menu);
|
||||
func->trigger(act, [this]() {
|
||||
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);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//=====================================================================================
|
||||
@@ -257,18 +273,18 @@ void ViewProviderSubShapeBinder::setupContextMenu(QMenu* menu, QObject* receiver
|
||||
{
|
||||
QAction* act;
|
||||
act = menu->addAction(QObject::tr("Synchronize"), receiver, member);
|
||||
act->setData(QVariant((int)0));
|
||||
act->setData(QVariant((int)Synchronize));
|
||||
act = menu->addAction(QObject::tr("Select bound object"), receiver, member);
|
||||
act->setData(QVariant((int)1));
|
||||
act->setData(QVariant((int)SelectObject));
|
||||
}
|
||||
|
||||
bool ViewProviderSubShapeBinder::setEdit(int ModNum) {
|
||||
|
||||
switch(ModNum) {
|
||||
case 0:
|
||||
case Synchronize:
|
||||
updatePlacement(true);
|
||||
break;
|
||||
case 1: {
|
||||
case SelectObject: {
|
||||
auto self = dynamic_cast<PartDesign::SubShapeBinder*>(getObject());
|
||||
if(!self || !self->Support.getValue())
|
||||
break;
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#define PARTGUI_ViewProviderShapeBinder_H
|
||||
|
||||
#include <Mod/Part/Gui/ViewProvider.h>
|
||||
#include <Mod/PartDesign/PartDesignGlobal.h>
|
||||
|
||||
namespace PartDesignGui {
|
||||
|
||||
@@ -73,6 +74,10 @@ public:
|
||||
virtual bool setEdit(int ModNum) override;
|
||||
|
||||
private:
|
||||
enum {
|
||||
Synchronize = 0,
|
||||
SelectObject = 1
|
||||
};
|
||||
void updatePlacement(bool transaction);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user