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();