Fixes #12186: Two new Sketcher preferences should show "Restart required" popup

This commit is contained in:
wmayer
2024-03-19 22:06:47 +01:00
committed by wwmayer
parent 1dad1b3718
commit 4f429e3288
2 changed files with 20 additions and 1 deletions

View File

@@ -168,6 +168,8 @@ void SketcherSettings::saveSettings()
index = ui->ovpVisibility->currentIndex();
hGrp->SetInt("OnViewParameterVisibility", index);
checkForRestart();
}
void SketcherSettings::loadSettings()
@@ -179,7 +181,9 @@ void SketcherSettings::loadSettings()
ui->checkBoxNotifyConstraintSubstitutions->onRestore();
ui->checkBoxAutoRemoveRedundants->onRestore();
ui->checkBoxUnifiedCoincident->onRestore();
setProperty("checkBoxUnifiedCoincident", ui->checkBoxUnifiedCoincident->isChecked());
ui->checkBoxHorVerAuto->onRestore();
setProperty("checkBoxHorVerAuto", ui->checkBoxHorVerAuto->isChecked());
// Dimensioning constraints mode
ui->dimensioningMode->clear();
@@ -193,6 +197,7 @@ void SketcherSettings::loadSettings()
bool SeparatedTools = hGrp->GetBool("SeparatedDimensioningTools", false);
int index = SeparatedTools ? (singleTool ? 2 : 1) : 0;
ui->dimensioningMode->setCurrentIndex(index);
setProperty("dimensioningMode", index);
connect(ui->dimensioningMode,
QOverload<int>::of(&QComboBox::currentIndexChanged),
this,
@@ -225,7 +230,20 @@ void SketcherSettings::loadSettings()
void SketcherSettings::dimensioningModeChanged(int index)
{
ui->radiusDiameterMode->setEnabled(index != 1);
SketcherSettings::requireRestart();
}
void SketcherSettings::checkForRestart()
{
if (property("dimensioningMode").toInt() != ui->dimensioningMode->currentIndex()) {
SketcherSettings::requireRestart();
}
if (property("checkBoxUnifiedCoincident").toBool()
!= ui->checkBoxUnifiedCoincident->isChecked()) {
SketcherSettings::requireRestart();
}
if (property("checkBoxHorVerAuto").toBool() != ui->checkBoxHorVerAuto->isChecked()) {
SketcherSettings::requireRestart();
}
}
/**

View File

@@ -52,6 +52,7 @@ public:
protected:
void changeEvent(QEvent* e) override;
void dimensioningModeChanged(int index);
void checkForRestart();
private:
std::unique_ptr<Ui_SketcherSettings> ui;