From d09b1e149936bd35bdfbeb32f29e178f998d9bcb Mon Sep 17 00:00:00 2001 From: Paddle Date: Tue, 14 Mar 2023 14:38:25 +0100 Subject: [PATCH] Sketcher: Solver Message simplification --- src/Gui/Stylesheets/ProDark.qss | 14 --- src/Mod/Sketcher/Gui/TaskSketcherMessages.cpp | 51 ++++---- src/Mod/Sketcher/Gui/TaskSketcherMessages.h | 5 +- src/Mod/Sketcher/Gui/TaskSketcherMessages.ui | 115 +++++------------- 4 files changed, 59 insertions(+), 126 deletions(-) diff --git a/src/Gui/Stylesheets/ProDark.qss b/src/Gui/Stylesheets/ProDark.qss index c57d0e10c8..abb5d330b1 100644 --- a/src/Gui/Stylesheets/ProDark.qss +++ b/src/Gui/Stylesheets/ProDark.qss @@ -1624,20 +1624,6 @@ QWidget#Form QPushButton:pressed { background-color: #557BB6; } -/* Sketcher Manual Update Button */ - -QPushButton#manualUpdate { - padding: 4px; - margin: 0px; - border: 1px solid #494949; -} - -QPushButton:pressed#manualUpdate { - color: #ffffff; - border: 1px solid #3c3c3c; - background-color: #48699a; -} - /* Addon Manager */ QDialog#Dialog QPushButton { diff --git a/src/Mod/Sketcher/Gui/TaskSketcherMessages.cpp b/src/Mod/Sketcher/Gui/TaskSketcherMessages.cpp index aa15f3accd..01d7c3a6b2 100644 --- a/src/Mod/Sketcher/Gui/TaskSketcherMessages.cpp +++ b/src/Mod/Sketcher/Gui/TaskSketcherMessages.cpp @@ -21,6 +21,9 @@ ***************************************************************************/ #include "PreCompiled.h" +#ifndef _PreComp_ +# include +#endif #include #include @@ -52,14 +55,6 @@ TaskSketcherMessages::TaskSketcherMessages(ViewProviderSketch *sketchView) : ui->labelConstrainStatus->setOpenExternalLinks(false); - ui->autoUpdate->onRestore(); - ui->autoRemoveRedundants->onRestore(); - - if(ui->autoUpdate->isChecked()) - sketchView->getSketchObject()->noRecomputes=false; - else - sketchView->getSketchObject()->noRecomputes=true; - // Set up the possible state values for the status label ui->labelConstrainStatus->setParameterGroup("User parameter:BaseApp/Preferences/Mod/Sketcher/General"); ui->labelConstrainStatus->registerState(QString::fromUtf8("empty_sketch"), QColor("black"), std::string("EmptySketchMessageColor")); @@ -77,14 +72,27 @@ TaskSketcherMessages::TaskSketcherMessages(ViewProviderSketch *sketchView) : connect(ui->labelConstrainStatusLink, &Gui::UrlLabel::linkClicked, this, &TaskSketcherMessages::on_labelConstrainStatusLink_linkClicked); + //Set Auto Update in the 'Manual Update' button menu. + ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Mod/Sketcher"); + bool state = hGrp->GetBool("AutoRecompute", false); + + sketchView->getSketchObject()->noRecomputes = !state; + + QAction* action = new QAction(tr("Auto update"), this); + action->setToolTip(tr("Executes a recomputation of active document after every sketch action")); + action->setCheckable(true); + action->setChecked(state); + ui->manualUpdate->addAction(action); + + QObject::connect( + qAsConst(ui->manualUpdate)->actions()[0], &QAction::changed, + this, &TaskSketcherMessages::onAutoUpdateStateChanged + ); + /*QObject::connect( ui->labelConstrainStatus, SIGNAL(linkActivated(const QString &)), this , SLOT (on_labelConstrainStatus_linkActivated(const QString &)) ); - QObject::connect( - ui->autoUpdate, SIGNAL(stateChanged(int)), - this , SLOT (on_autoUpdate_stateChanged(int)) - ); QObject::connect( ui->manualUpdate, SIGNAL(clicked(bool)), this , SLOT (on_manualUpdate_clicked(bool)) @@ -123,22 +131,13 @@ void TaskSketcherMessages::on_labelConstrainStatusLink_linkClicked(const QString } -void TaskSketcherMessages::on_autoUpdate_stateChanged(int state) +void TaskSketcherMessages::onAutoUpdateStateChanged() { - if(state==Qt::Checked) { - sketchView->getSketchObject()->noRecomputes=false; - ui->autoUpdate->onSave(); - } - else if (state==Qt::Unchecked) { - sketchView->getSketchObject()->noRecomputes=true; - ui->autoUpdate->onSave(); - } -} + bool state = qAsConst(ui->manualUpdate)->actions()[0]->isChecked(); -void TaskSketcherMessages::on_autoRemoveRedundants_stateChanged(int state) -{ - Q_UNUSED(state); - ui->autoRemoveRedundants->onSave(); + ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Mod/Sketcher"); + hGrp->SetBool("AutoRecompute", state); + sketchView->getSketchObject()->noRecomputes = !state; } void TaskSketcherMessages::on_manualUpdate_clicked(bool checked) diff --git a/src/Mod/Sketcher/Gui/TaskSketcherMessages.h b/src/Mod/Sketcher/Gui/TaskSketcherMessages.h index 7d3a462a2d..feebe23e27 100644 --- a/src/Mod/Sketcher/Gui/TaskSketcherMessages.h +++ b/src/Mod/Sketcher/Gui/TaskSketcherMessages.h @@ -47,12 +47,11 @@ public: explicit TaskSketcherMessages(ViewProviderSketch *sketchView); ~TaskSketcherMessages() override; - void slotSetUp(const QString &state, const QString &msg, const QString& link, const QString& linkText); + void slotSetUp(const QString& state, const QString& msg, const QString& link, const QString& linkText); private Q_SLOTS: void on_labelConstrainStatusLink_linkClicked(const QString &); - void on_autoUpdate_stateChanged(int state); - void on_autoRemoveRedundants_stateChanged(int state); + void onAutoUpdateStateChanged(); void on_manualUpdate_clicked(bool checked); protected: diff --git a/src/Mod/Sketcher/Gui/TaskSketcherMessages.ui b/src/Mod/Sketcher/Gui/TaskSketcherMessages.ui index 8c95744c99..38c8c0f41a 100644 --- a/src/Mod/Sketcher/Gui/TaskSketcherMessages.ui +++ b/src/Mod/Sketcher/Gui/TaskSketcherMessages.ui @@ -7,104 +7,53 @@ 0 0 253 - 108 + 48 Form - + - - - - - DOF - - - - - - - Link - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - New constraints that would be redundant will automatically be removed - + - Auto remove redundants - - - false - - - AutoRemoveRedundants - - - Mod/Sketcher + DOF - - - - - Executes a recomputation of active document after every sketch action - - - Auto update - - - false - - - AutoRecompute - - - Mod/Sketcher - - - - - - - Forces recomputation of active document - - - Update - - - - + + + Link + + + + + + + + 0 + 0 + + + + Forces recomputation of active document + + + + + + + :/icons/view-refresh.svg:/icons/view-refresh.svg + + + QToolButton::MenuButtonPopup + + - - Gui::PrefCheckBox - QCheckBox -
Gui/PrefWidgets.h
-
Gui::StatefulLabel QLabel