From f816c927ee9d5c139ba36cbe6c8b1fd7a5aac103 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sun, 19 Mar 2017 11:39:30 +0100 Subject: [PATCH] refs #917, use utility functions in simulator settings --- .../components/settingssimulatorcomponent.cpp | 46 +++++++------------ .../simulation/simulatorplugininfolist.cpp | 5 +- .../simulation/simulatorplugininfolist.h | 2 + 3 files changed, 22 insertions(+), 31 deletions(-) diff --git a/src/blackgui/components/settingssimulatorcomponent.cpp b/src/blackgui/components/settingssimulatorcomponent.cpp index 645fe3252..4c0e12481 100644 --- a/src/blackgui/components/settingssimulatorcomponent.cpp +++ b/src/blackgui/components/settingssimulatorcomponent.cpp @@ -148,29 +148,24 @@ namespace BlackGui { Q_ASSERT(sGui->getIContextSimulator()); - CSimulatorPluginInfoList simDrivers(getAvailablePlugins()); - auto selected = std::find_if(simDrivers.begin(), simDrivers.end(), - [&identifier](const CSimulatorPluginInfo & info) - { - return info.getIdentifier() == identifier; - }); - - if (selected == simDrivers.end() || selected->isUnspecified()) + const CSimulatorPluginInfoList simDrivers(getAvailablePlugins()); + const CSimulatorPluginInfo selected = simDrivers.findByIdentifier(identifier); + if (selected.isUnspecified()) { CLogMessage(this).error("Simulator plugin does not exist: '%1'") << identifier; return; } - auto e = m_enabledSimulators.getThreadLocal(); - if (enabled != e.contains(selected->getIdentifier())) + QStringList e = m_enabledSimulators.getThreadLocal(); + if (enabled != e.contains(selected.getIdentifier())) { if (enabled) { - e << selected->getIdentifier(); + e << selected.getIdentifier(); } else { - e.removeAll(selected->getIdentifier()); + e.removeAll(selected.getIdentifier()); } m_enabledSimulators.set(e); } @@ -182,7 +177,7 @@ namespace BlackGui { // get initial aircraft to render CInterpolationAndRenderingSetup setup = sGui->getIContextSimulator()->getInterpolationAndRenderingSetup(); - int noRequested = ui->le_MaxAircraft->text().isEmpty() ? setup.InfiniteAircraft() : ui->le_MaxAircraft->text().toInt(); + const int noRequested = ui->le_MaxAircraft->text().isEmpty() ? setup.InfiniteAircraft() : ui->le_MaxAircraft->text().toInt(); const int oldValue = setup.getMaxRenderedAircraft(); if (oldValue == noRequested) { return; } @@ -286,34 +281,25 @@ namespace BlackGui void CSettingsSimulatorComponent::ps_showPluginDetails(const QString &identifier) { const CSimulatorPluginInfoList simDrivers(getAvailablePlugins()); - const auto selected = std::find_if( - simDrivers.begin(), simDrivers.end(), - [&identifier](const CSimulatorPluginInfo & info) - { - return info.getIdentifier() == identifier; - }); + const CSimulatorPluginInfo selected = simDrivers.findByIdentifier(identifier); QWidget *aw = qApp->activeWindow(); CPluginDetailsWindow *w = new CPluginDetailsWindow(aw); w->setAttribute(Qt::WA_DeleteOnClose); - w->setPluginIdentifier(selected->getIdentifier()); - w->setPluginName(selected->getName()); - w->setPluginDescription(selected->getDescription()); + w->setPluginIdentifier(selected.getIdentifier()); + w->setPluginName(selected.getName()); + w->setPluginDescription(selected.getDescription()); w->show(); } void CSettingsSimulatorComponent::ps_showPluginConfig(const QString &identifier) { - CSimulatorPluginInfoList simDrivers(getAvailablePlugins()); - const auto selected = std::find_if(simDrivers.begin(), simDrivers.end(), - [&identifier](const CSimulatorPluginInfo & info) - { - return info.getIdentifier() == identifier; - }); + const CSimulatorPluginInfoList simDrivers(getAvailablePlugins()); + const CSimulatorPluginInfo selected = simDrivers.findByIdentifier(identifier); - const QString configId = m_plugins->getPluginConfigId(selected->getIdentifier()); + const QString configId = m_plugins->getPluginConfigId(selected.getIdentifier()); IPluginConfig *config = m_plugins->getPluginById(configId); if (!config) { @@ -328,7 +314,7 @@ namespace BlackGui void CSettingsSimulatorComponent::ps_reloadPluginConfig() { // list all available simulators - auto enabledSimulators = m_enabledSimulators.getThreadLocal(); + const auto enabledSimulators = m_enabledSimulators.getThreadLocal(); for (const auto &p : getAvailablePlugins()) { ui->pluginSelector_EnabledSimulators->setEnabled(p.getIdentifier(), enabledSimulators.contains(p.getIdentifier())); diff --git a/src/blackmisc/simulation/simulatorplugininfolist.cpp b/src/blackmisc/simulation/simulatorplugininfolist.cpp index 3c2d775bb..0740765a1 100644 --- a/src/blackmisc/simulation/simulatorplugininfolist.cpp +++ b/src/blackmisc/simulation/simulatorplugininfolist.cpp @@ -19,7 +19,6 @@ namespace BlackMisc { namespace Simulation { - CSimulatorPluginInfoList::CSimulatorPluginInfoList() { } bool CSimulatorPluginInfoList::supportsSimulator(const QString &simulator) const @@ -35,5 +34,9 @@ namespace BlackMisc return this->transform([i18n](const CSimulatorPluginInfo & info) { return info.toQString(i18n); }); } + CSimulatorPluginInfo CSimulatorPluginInfoList::findByIdentifier(const QString &identifier) const + { + return this->findFirstByOrDefault(&CSimulatorPluginInfo::getIdentifier, identifier); + } } // namespace } // namespace diff --git a/src/blackmisc/simulation/simulatorplugininfolist.h b/src/blackmisc/simulation/simulatorplugininfolist.h index 18a31fd6d..54c2d073e 100644 --- a/src/blackmisc/simulation/simulatorplugininfolist.h +++ b/src/blackmisc/simulation/simulatorplugininfolist.h @@ -48,6 +48,8 @@ namespace BlackMisc //! String list with meaningful representations QStringList toStringList(bool i18n = false) const; + //! Find by identifier (unique) + CSimulatorPluginInfo findByIdentifier(const QString &identifier) const; }; } // ns } // ns