diff --git a/src/blackcore/application/applicationsettings.h b/src/blackcore/application/applicationsettings.h index 1ee96d114..31015d511 100644 --- a/src/blackcore/application/applicationsettings.h +++ b/src/blackcore/application/applicationsettings.h @@ -54,6 +54,19 @@ namespace BlackCore static const QStringList enabledSimulators(BlackMisc::Simulation::CSimulatorPluginInfo::guessDefaultPlugins()); return enabledSimulators; } + + //! Simulator plugin identifiers valid? + static bool isValid(const QStringList &pluginIdentifiers) + { + for (const QString &pluginIdentifier : pluginIdentifiers) + { + if (!BlackMisc::Simulation::CSimulatorPluginInfo::allIdentifiers().contains(pluginIdentifier)) + { + return false; + } + } + return true; + } }; //! Uploading of crash dumps is enabled or disabled diff --git a/src/blackmisc/simulation/simulatorplugininfo.cpp b/src/blackmisc/simulation/simulatorplugininfo.cpp index 0c4e6c313..0b9e4188c 100644 --- a/src/blackmisc/simulation/simulatorplugininfo.cpp +++ b/src/blackmisc/simulation/simulatorplugininfo.cpp @@ -74,6 +74,18 @@ namespace BlackMisc return s; } + const QStringList &CSimulatorPluginInfo::allIdentifiers() + { + static const QStringList identifiers( + { + fsxPluginIndentifier(), + p3dPluginIndentifier(), + xplanePluginIndentifier(), + fs9PluginIndentifier() + }); + return identifiers; + } + QStringList CSimulatorPluginInfo::guessDefaultPlugins() { if (BlackConfig::CBuildConfig::isRunningOnUnixPlatform()) diff --git a/src/blackmisc/simulation/simulatorplugininfo.h b/src/blackmisc/simulation/simulatorplugininfo.h index 0f0397657..16683d12e 100644 --- a/src/blackmisc/simulation/simulatorplugininfo.h +++ b/src/blackmisc/simulation/simulatorplugininfo.h @@ -76,6 +76,9 @@ namespace BlackMisc //! Plugin identifier (XPlane) static const QString &xplanePluginIndentifier(); + //! All valid identifiers + static const QStringList &allIdentifiers(); + //! Guess default plugins static QStringList guessDefaultPlugins();