fix: Settings dialog blocking return to Automatic

fixes:# 9501
This commit is contained in:
sithlord48
2026-02-20 16:39:21 -05:00
committed by Nick Bolton
parent bde89d4026
commit 263a23fcaa
2 changed files with 14 additions and 6 deletions

View File

@ -264,10 +264,15 @@ void SettingsDialog::loadFromConfig()
ui->lblDebugWarning->setVisible(Settings::value(Settings::Log::Level).toInt() > 4);
ui->comboInterface->setCurrentText(Settings::value(Settings::Core::Interface).toString());
if (ui->comboInterface->currentIndex() < 0)
if (ui->comboInterface->currentIndex() <= 0) {
ui->comboInterface->setCurrentIndex(0);
m_interfaceSetOnLoad = false;
} else {
m_interfaceSetOnLoad = true;
}
qDebug() << "load from config done";
updateControls();
}
@ -381,9 +386,9 @@ void SettingsDialog::logLevelChanged()
bool SettingsDialog::isModified() const
{
const auto processMode = Settings::value(Settings::Core::ProcessMode).value<Settings::ProcessMode>();
const auto interfaceSet = ui->comboInterface->currentIndex();
const bool ignoreInterface = !m_interfaceSetOnLoad && (ui->comboInterface->currentIndex() == 0);
return (
bool modified =
(ui->sbPort->value() != Settings::value(Settings::Core::Port).toInt()) ||
(ui->comboLogLevel->currentIndex() != Settings::value(Settings::Log::Level).toInt()) ||
(ui->groupLogToFile->isChecked() != Settings::value(Settings::Log::ToFile).toBool()) ||
@ -398,13 +403,15 @@ bool SettingsDialog::isModified() const
(ui->cbShowVersion->isChecked() != Settings::value(Settings::Gui::ShowVersionInTitle).toBool()) ||
(ui->rbIconMono->isChecked() != Settings::value(Settings::Gui::SymbolicTrayIcon).toBool()) ||
(ui->groupService->isChecked() != (processMode == Settings::ProcessMode::Service)) ||
((ui->comboInterface->currentText() != Settings::value(Settings::Core::Interface).toString()) && interfaceSet) ||
(ui->lineTlsCertPath->text() != Settings::value(Settings::Security::Certificate).toString()) ||
(ui->comboTlsKeyLength->currentText() != Settings::value(Settings::Security::KeySize).toString()) ||
(ui->groupSecurity->isChecked() != Settings::value(Settings::Security::TlsEnabled).toBool()) ||
(ui->cbRequireClientCert->isChecked() != Settings::value(Settings::Security::CheckPeers).toBool()) ||
(I18N::nativeTo639Name(ui->comboLanguage->currentText()) != Settings::value(Settings::Core::Language).toString())
);
(I18N::nativeTo639Name(ui->comboLanguage->currentText()) != Settings::value(Settings::Core::Language).toString());
if (!ignoreInterface)
modified = modified || ui->comboInterface->currentText() != Settings::value(Settings::Core::Interface).toString();
return modified;
}
bool SettingsDialog::isDefault() const

View File

@ -84,6 +84,7 @@ private:
*/
void setButtonBoxEnabledButtons() const;
bool m_interfaceSetOnLoad = false;
std::unique_ptr<Ui::SettingsDialog> ui;
const IServerConfig &m_serverConfig;
};