From 18778ed97ebefec2cceee040258cf37991b97241 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sat, 13 Jul 2019 03:41:47 +0200 Subject: [PATCH] Validation for XP model directory in simulator basics --- .../settingssimulatorbasicscomponent.cpp | 26 ++++++++++++------- .../settingssimulatormessagescomponent.cpp | 6 ++--- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/blackgui/components/settingssimulatorbasicscomponent.cpp b/src/blackgui/components/settingssimulatorbasicscomponent.cpp index e81e3c218..b5a0f9410 100644 --- a/src/blackgui/components/settingssimulatorbasicscomponent.cpp +++ b/src/blackgui/components/settingssimulatorbasicscomponent.cpp @@ -140,21 +140,29 @@ namespace BlackGui s.setSimulatorDirectory(simulatorDir); s.setModelDirectories(modelDirs); s.setModelExcludeDirectories(relativeDirs); - const CStatusMessage m = m_settings.setAndSaveSettings(s, simulator); - if (!m.isEmpty()) { CLogMessage::preformatted(m); } - if (m.isSuccess()) + const CStatusMessageList msgs = m_settings.setAndValidateSettings(s, simulator); + if (msgs.isSuccess()) { - this->showOverlayHTMLMessage("Saved settings", 5000); + const CStatusMessage m = m_settings.setAndSaveSettings(s, simulator); + if (!m.isEmpty()) { CLogMessage::preformatted(m); } + if (m.isSuccess()) + { + this->showOverlayHTMLMessage("Saved settings", 5000); + } + else + { + this->showOverlayMessage(m); + } + m_unsavedChanges = m_unsavedChanges && !m.isSuccess(); // reset if success, but only if there were changes + + // display as it was saved + this->displaySettings(simulator); } else { - this->showOverlayMessage(m); + this->showOverlayHTMLMessageOrMessages(msgs); } - m_unsavedChanges = m_unsavedChanges && !m.isSuccess(); // reset if success, but only if there were changes - - // display as saved - this->displaySettings(simulator); } void CSettingsSimulatorBasicsComponent::copyDefaults() diff --git a/src/blackgui/components/settingssimulatormessagescomponent.cpp b/src/blackgui/components/settingssimulatormessagescomponent.cpp index 9ed81bf63..e72ce5680 100644 --- a/src/blackgui/components/settingssimulatormessagescomponent.cpp +++ b/src/blackgui/components/settingssimulatormessagescomponent.cpp @@ -35,7 +35,7 @@ namespace BlackGui void CSettingsSimulatorMessagesComponent::save() { CSimulatorMessagesSettings settings; - settings.setGloballyEnabled(ui->cb_Messages->isChecked()); + settings.setRelayGloballyEnabled(ui->cb_Messages->isChecked()); if (ui->rb_NoTechnicalMessages->isChecked()) { settings.disableTechnicalMessages(); @@ -53,7 +53,7 @@ namespace BlackGui settings.setTechnicalLogSeverity(CStatusMessage::SeverityInfo); } - settings.setGloballyEnabled(ui->cb_Messages->isChecked()); + settings.setRelayGloballyEnabled(ui->cb_Messages->isChecked()); CSimulatorMessagesSettings::TextMessageType mt = CSimulatorMessagesSettings::NoTextMessages; if (ui->cb_PrivateMessages->isChecked()) { mt |= CSimulatorMessagesSettings::TextMessagePrivate; } @@ -69,7 +69,7 @@ namespace BlackGui void CSettingsSimulatorMessagesComponent::load() { const CSimulatorMessagesSettings settings(this->m_settings.get()); - ui->cb_Messages->setChecked(settings.isGloballyEnabled()); + ui->cb_Messages->setChecked(settings.isRelayGloballyEnabled()); if (settings.isRelayInfoMessages()) { ui->rb_ErrorWarningsInfo->setChecked(true);