Fix nested setting groups

master
wh201906 2 years ago
parent 5b84e58ecb
commit 5a26cd1936
No known key found for this signature in database

@ -1102,8 +1102,8 @@ void MainWindow::uiInit()
settings->beginGroup("Client_forceButtonsEnabled"); settings->beginGroup("Client_forceButtonsEnabled");
keepButtonsEnabled = settings->value("state", false).toBool(); keepButtonsEnabled = settings->value("state", false).toBool();
ui->Set_Client_forceEnabledBox->setChecked(keepButtonsEnabled);
settings->endGroup(); settings->endGroup();
ui->Set_Client_forceEnabledBox->setChecked(keepButtonsEnabled);
// the disconnect detection doesn't work well on Linux/macOS // the disconnect detection doesn't work well on Linux/macOS
// So it should be disabled on these platforms // So it should be disabled on these platforms
@ -1115,8 +1115,8 @@ void MainWindow::uiInit()
#else #else
keepClientActive = settings->value("state", true).toBool(); keepClientActive = settings->value("state", true).toBool();
#endif #endif
ui->Set_Client_keepClientActiveBox->setChecked(keepClientActive);
settings->endGroup(); settings->endGroup();
ui->Set_Client_keepClientActiveBox->setChecked(keepClientActive);
QDirIterator configFiles(":/config/"); QDirIterator configFiles(":/config/");
ui->Set_Client_configFileBox->blockSignals(true); ui->Set_Client_configFileBox->blockSignals(true);
@ -1139,11 +1139,17 @@ void MainWindow::uiInit()
ui->Set_Client_configFileBox->blockSignals(false); ui->Set_Client_configFileBox->blockSignals(false);
on_Set_Client_configFileBox_currentIndexChanged(ui->Set_Client_configFileBox->currentIndex()); on_Set_Client_configFileBox_currentIndexChanged(ui->Set_Client_configFileBox->currentIndex());
// setValue() will trigger valueChanged()
// setValue(settings->value()) will create a nested group
// call endGroup() before apply the value
settings->beginGroup("UI"); settings->beginGroup("UI");
ui->Set_UI_Opacity_Box->setValue(settings->value("Opacity", 100).toInt()); int opacity = settings->value("Opacity", 100).toInt();
int themeId = ui->Set_UI_Theme_nameBox->findData(settings->value("Theme_Name", "(none)").toString()); int themeId = ui->Set_UI_Theme_nameBox->findData(settings->value("Theme_Name", "(none)").toString());
settings->endGroup();
ui->Set_UI_Opacity_Box->setValue(opacity);
ui->Set_UI_Theme_nameBox->setCurrentIndex((themeId == -1) ? 0 : themeId); ui->Set_UI_Theme_nameBox->setCurrentIndex((themeId == -1) ? 0 : themeId);
settings->beginGroup("UI");
// QApplication::font() might return wrong result // QApplication::font() might return wrong result
// If fonts are not specified in config file, don't touch them. // If fonts are not specified in config file, don't touch them.
QString tmpFontName; QString tmpFontName;
@ -1157,7 +1163,7 @@ void MainWindow::uiInit()
ui->Set_UI_Font_sizeBox->setValue(tmpFontSize); ui->Set_UI_Font_sizeBox->setValue(tmpFontSize);
fontValid = true; fontValid = true;
} }
// The default values should be the same as MF_dataWidget's and MF_keyWidget's. // The default font should be the same as MF_dataWidget's and MF_keyWidget's.
tmpFontName = settings->value("DataFont_Name", "Consolas").toString(); tmpFontName = settings->value("DataFont_Name", "Consolas").toString();
tmpFontSize = settings->value("DataFont_Size", 12).toInt(); tmpFontSize = settings->value("DataFont_Size", 12).toInt();
if(!tmpFontName.isEmpty() && tmpFontSize != -1 && tmpFontName == QFont(tmpFontName).family()) if(!tmpFontName.isEmpty() && tmpFontSize != -1 && tmpFontName == QFont(tmpFontName).family())

Loading…
Cancel
Save