From d78b5874da318ad3dc2c12ecf9fc38f7af286168 Mon Sep 17 00:00:00 2001 From: Abdullah Tahiri Date: Sat, 14 Jul 2018 07:33:33 +0200 Subject: [PATCH] Sketcher: UI command to delete all the constraints at once --- src/Mod/Sketcher/Gui/CommandSketcherTools.cpp | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/src/Mod/Sketcher/Gui/CommandSketcherTools.cpp b/src/Mod/Sketcher/Gui/CommandSketcherTools.cpp index eba6d8f9c1..998f2f4db5 100644 --- a/src/Mod/Sketcher/Gui/CommandSketcherTools.cpp +++ b/src/Mod/Sketcher/Gui/CommandSketcherTools.cpp @@ -2007,6 +2007,72 @@ bool CmdSketcherDeleteAllGeometry::isActive(void) return isSketcherAcceleratorActive( getActiveGuiDocument(), false ); } +DEF_STD_CMD_A(CmdSketcherDeleteAllConstraints); + +CmdSketcherDeleteAllConstraints::CmdSketcherDeleteAllConstraints() +:Command("Sketcher_DeleteAllConstraints") +{ + sAppModule = "Sketcher"; + sGroup = QT_TR_NOOP("Sketcher"); + sMenuText = QT_TR_NOOP("Delete All Constraints"); + sToolTipText = QT_TR_NOOP("Deletes all the constraints"); + sWhatsThis = "Sketcher_DeleteAllConstraints"; + sStatusTip = sToolTipText; + sPixmap = "Sketcher_Element_SelectionTypeInvalid"; + sAccel = ""; + eType = ForEdit; +} + +void CmdSketcherDeleteAllConstraints::activated(int iMsg) +{ + Q_UNUSED(iMsg); + + int ret = QMessageBox::question(Gui::getMainWindow(), QObject::tr("Delete All Constraints"), + QObject::tr("Are you really sure you want to delete all the constraints?"), + QMessageBox::Yes, QMessageBox::Cancel); + + if (ret == QMessageBox::Yes) { + getSelection().clearSelection(); + + Gui::Document * doc= getActiveGuiDocument(); + + SketcherGui::ViewProviderSketch* vp = static_cast(doc->getInEdit()); + + Sketcher::SketchObject* Obj= vp->getSketchObject(); + + try { + Gui::Command::openCommand("Delete All Constraints"); + Gui::Command::doCommand(Gui::Command::Doc, + "App.ActiveDocument.%s.deleteAllConstraints()", + Obj->getNameInDocument()); + + Gui::Command::commitCommand(); + } + catch (const Base::Exception& e) { + Base::Console().Error("Failed to delete All Constraints: %s\n", e.what()); + Gui::Command::abortCommand(); + } + + ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Mod/Sketcher"); + bool autoRecompute = hGrp->GetBool("AutoRecompute",false); + + if(autoRecompute) + Gui::Command::updateActive(); + else + Obj->solve(); + } + else if (ret == QMessageBox::Cancel) { + // do nothing + return; + } + +} + +bool CmdSketcherDeleteAllConstraints::isActive(void) +{ + return isSketcherAcceleratorActive( getActiveGuiDocument(), false ); +} + void CreateSketcherCommandsConstraintAccel(void) { Gui::CommandManager &rcCmdMgr = Gui::Application::Instance->commandManager(); @@ -2029,4 +2095,5 @@ void CreateSketcherCommandsConstraintAccel(void) rcCmdMgr.addCommand(new CmdSketcherCompCopy()); rcCmdMgr.addCommand(new CmdSketcherRectangularArray()); rcCmdMgr.addCommand(new CmdSketcherDeleteAllGeometry()); + rcCmdMgr.addCommand(new CmdSketcherDeleteAllConstraints()); }