diff --git a/src/blackgui/components/settingssimulatorbasicscomponent.cpp b/src/blackgui/components/settingssimulatorbasicscomponent.cpp
index f5acaf516..94a398c00 100644
--- a/src/blackgui/components/settingssimulatorbasicscomponent.cpp
+++ b/src/blackgui/components/settingssimulatorbasicscomponent.cpp
@@ -35,11 +35,10 @@ namespace BlackGui
connect(ui->pb_Save, &QPushButton::clicked, this, &CSettingsSimulatorBasicsComponent::ps_save);
connect(ui->pb_Reset, &QPushButton::clicked, this, &CSettingsSimulatorBasicsComponent::ps_reset);
connect(ui->pb_CopyDefaults, &QPushButton::clicked, this, &CSettingsSimulatorBasicsComponent::ps_copyDefaults);
- connect(ui->comp_SimulatorSelector, &CSimulatorSelector::changed, this, &CSettingsSimulatorBasicsComponent::ps_simulatorChanged);
connect(ui->le_SimulatorDirectory, &QLineEdit::returnPressed, this, &CSettingsSimulatorBasicsComponent::ps_simulatorDirectoryEntered);
+ connect(ui->comp_SimulatorSelector, &CSimulatorSelector::changed, this, &CSettingsSimulatorBasicsComponent::ps_simulatorChanged);
- const CSimulatorInfo simulator(ui->comp_SimulatorSelector->getValue());
- this->displayDefaultValuesAsPlaceholder(simulator);
+ this->ps_simulatorChanged();
}
CSettingsSimulatorBasicsComponent::~CSettingsSimulatorBasicsComponent()
@@ -56,6 +55,11 @@ namespace BlackGui
ui->comp_SimulatorSelector->setValue(simulator);
}
+ void CSettingsSimulatorBasicsComponent::save()
+ {
+ this->ps_save();
+ }
+
void CSettingsSimulatorBasicsComponent::setSmallLayout(bool small)
{
ui->lbl_ExcludeDirectories->setWordWrap(small);
@@ -95,8 +99,8 @@ namespace BlackGui
void CSettingsSimulatorBasicsComponent::ps_simulatorDirectoryEntered()
{
const CSimulatorInfo simulator(ui->comp_SimulatorSelector->getValue());
- const QString sd = CFileUtils::normalizeFilePathToQtStandard(ui->le_SimulatorDirectory->text().trimmed());
- ui->le_SimulatorDirectory->setText(sd);
+ const QString simDir = CFileUtils::normalizeFilePathToQtStandard(ui->le_SimulatorDirectory->text().trimmed());
+ ui->le_SimulatorDirectory->setText(simDir);
this->displayDefaultValuesAsPlaceholder(simulator);
}
@@ -104,13 +108,13 @@ namespace BlackGui
{
const CSimulatorInfo simulator(ui->comp_SimulatorSelector->getValue());
CSimulatorSettings s = this->getSettings(simulator);
- const QString sd(ui->le_SimulatorDirectory->text().trimmed());
- const QStringList md(this->parseDirectories(ui->pte_ModelDirectories->toPlainText()));
- const QStringList ed(this->parseDirectories(ui->pte_ExcludeDirectories->toPlainText()));
- const QStringList red = CFileUtils::makeDirectoriesRelative(ed, this->getFileBrowserModelDirectory(), this->m_fileCaseSensitivity);
- s.setSimulatorDirectory(sd);
- s.setModelDirectories(md);
- s.setModelExcludeDirectories(red);
+ const QString simulatorDir(ui->le_SimulatorDirectory->text().trimmed());
+ const QStringList modelDirs(this->parseDirectories(ui->pte_ModelDirectories->toPlainText()));
+ const QStringList excludeDirs(this->parseDirectories(ui->pte_ExcludeDirectories->toPlainText()));
+ const QStringList relativeDirs = CFileUtils::makeDirectoriesRelative(excludeDirs, this->getFileBrowserModelDirectory(), this->m_fileCaseSensitivity);
+ s.setSimulatorDirectory(simulatorDir);
+ s.setModelDirectories(modelDirs);
+ s.setModelExcludeDirectories(relativeDirs);
const CStatusMessage m = this->m_settings.setAndSaveSettings(s, simulator);
if (!m.isEmpty())
{
@@ -219,8 +223,17 @@ namespace BlackGui
}
else
{
- const QString ms(m.join('\n'));
- ui->pte_ModelDirectories->setPlaceholderText(ms);
+ const QString ms(m.join("
"));
+ if (m.size() > 1)
+ {
+ //! \fixme correct version when Qt multiline placeholder is fixed https://bugreports.qt.io/browse/QTBUG-43817
+ ui->pte_ModelDirectories->setToolTip(ms);
+ ui->pte_ModelDirectories->setPlaceholderText("See tooltip for defaults");
+ }
+ else
+ {
+ ui->pte_ModelDirectories->setPlaceholderText(ms);
+ }
}
const QStringList e = this->m_settings.getDefaultModelExcludeDirectoryPatterns(simulator);
@@ -230,14 +243,16 @@ namespace BlackGui
}
else
{
- //! \todo correct version when Qt multiline placeholder is fixed https://bugreports.qt.io/browse/QTBUG-43817
- // const QString es(e.join('\n'));
- // ui->pte_ExcludeDirectories->setPlaceholderText(es);
-
- // workaround
- if (!e.empty())
+ const QString es(e.join("
"));
+ if (e.size() > 1)
{
- ui->pte_ExcludeDirectories->setPlaceholderText(e.first());
+ //! \fixme correct version when Qt multiline placeholder is fixed https://bugreports.qt.io/browse/QTBUG-43817
+ ui->pte_ExcludeDirectories->setToolTip(es);
+ ui->pte_ExcludeDirectories->setPlaceholderText("See tooltip for defaults");
+ }
+ else
+ {
+ ui->pte_ExcludeDirectories->setPlaceholderText(es);
}
}
}
diff --git a/src/blackgui/components/settingssimulatorbasicscomponent.h b/src/blackgui/components/settingssimulatorbasicscomponent.h
index 3283bd6b8..81df92dda 100644
--- a/src/blackgui/components/settingssimulatorbasicscomponent.h
+++ b/src/blackgui/components/settingssimulatorbasicscomponent.h
@@ -42,6 +42,9 @@ namespace BlackGui
//! Simulator
void setSimulator(const BlackMisc::Simulation::CSimulatorInfo &simulator);
+ //! Save data
+ void save();
+
private slots:
void ps_modelFileDialog();
void ps_excludeFileDialog();