diff --git a/src/blackgui/components/settingssimulatorbasicscomponent.cpp b/src/blackgui/components/settingssimulatorbasicscomponent.cpp index 6bc02e25e..f2656d73f 100644 --- a/src/blackgui/components/settingssimulatorbasicscomponent.cpp +++ b/src/blackgui/components/settingssimulatorbasicscomponent.cpp @@ -14,6 +14,7 @@ #include "blackmisc/logmessage.h" #include "blackconfig/buildconfig.h" +#include #include using namespace BlackMisc; @@ -64,6 +65,13 @@ namespace BlackGui ui->comp_SimulatorSelector->setVisible(show); } + bool CSettingsSimulatorBasicsComponent::hasAnyValues() const + { + return !ui->le_SimulatorDirectory->text().isEmpty() || + !ui->pte_ModelDirectories->toPlainText().isEmpty() || + !ui->pte_ExcludeDirectories->toPlainText().isEmpty(); + } + void CSettingsSimulatorBasicsComponent::setSimulator(const CSimulatorInfo &simulator) { Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "Need single simulator"); @@ -137,6 +145,13 @@ namespace BlackGui void CSettingsSimulatorBasicsComponent::copyDefaults() { const CSimulatorInfo simulator(ui->comp_SimulatorSelector->getValue()); + const bool anyValues = this->hasAnyValues(); + if (anyValues) + { + QMessageBox::StandardButton reply = QMessageBox::question(this, "Override", "Override existing values?", QMessageBox::Yes | QMessageBox::No); + if (reply != QMessageBox::Yes) { return; } + } + const QString sd(m_settings.defaultSimulatorDirectory(simulator)); ui->le_SimulatorDirectory->setText(CFileUtils::normalizeFilePathToQtStandard(sd)); const QStringList md(m_settings.defaultModelDirectories(simulator)); diff --git a/src/blackgui/components/settingssimulatorbasicscomponent.h b/src/blackgui/components/settingssimulatorbasicscomponent.h index dbdc97881..229265fe5 100644 --- a/src/blackgui/components/settingssimulatorbasicscomponent.h +++ b/src/blackgui/components/settingssimulatorbasicscomponent.h @@ -46,6 +46,9 @@ namespace BlackGui //! Show / hide selector void hideSelector(bool show); + //! Any values filled in + bool hasAnyValues() const; + //! Simulator void setSimulator(const BlackMisc::Simulation::CSimulatorInfo &simulator); diff --git a/src/blackgui/components/settingssimulatorbasicscomponent.ui b/src/blackgui/components/settingssimulatorbasicscomponent.ui index 1671b73db..736b15472 100644 --- a/src/blackgui/components/settingssimulatorbasicscomponent.ui +++ b/src/blackgui/components/settingssimulatorbasicscomponent.ui @@ -126,7 +126,7 @@ copy (materialize) defaults - copy def. + copy def.