Ref T430, simulator settings for FG

This commit is contained in:
Klaus Basan
2018-12-06 23:29:32 +01:00
parent 345f207480
commit 136d161bf0
2 changed files with 33 additions and 14 deletions

View File

@@ -141,10 +141,12 @@ namespace BlackMisc
Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "No single simulator"); Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "No single simulator");
switch (simulator.getSimulator()) switch (simulator.getSimulator())
{ {
case CSimulatorInfo::FG: return m_simSettingsFG.get();
case CSimulatorInfo::FS9: return m_simSettingsFs9.get(); case CSimulatorInfo::FS9: return m_simSettingsFs9.get();
case CSimulatorInfo::FSX: return m_simSettingsFsx.get(); case CSimulatorInfo::FSX: return m_simSettingsFsx.get();
case CSimulatorInfo::P3D: return m_simSettingsP3D.get(); case CSimulatorInfo::P3D: return m_simSettingsP3D.get();
case CSimulatorInfo::XPLANE: return m_simSettingsXP.get(); case CSimulatorInfo::XPLANE: return m_simSettingsXP.get();
default: default:
Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "No single simulator"); Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "No single simulator");
break; break;
@@ -162,6 +164,7 @@ namespace BlackMisc
Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "No single simulator"); Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "No single simulator");
switch (simulator.getSimulator()) switch (simulator.getSimulator())
{ {
case CSimulatorInfo::FG: return m_simSettingsFG.set(settings);
case CSimulatorInfo::FS9: return m_simSettingsFs9.set(settings); case CSimulatorInfo::FS9: return m_simSettingsFs9.set(settings);
case CSimulatorInfo::FSX: return m_simSettingsFsx.set(settings); case CSimulatorInfo::FSX: return m_simSettingsFsx.set(settings);
case CSimulatorInfo::P3D: return m_simSettingsP3D.set(settings); case CSimulatorInfo::P3D: return m_simSettingsP3D.set(settings);
@@ -195,6 +198,7 @@ namespace BlackMisc
Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "No single simulator"); Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "No single simulator");
switch (simulator.getSimulator()) switch (simulator.getSimulator())
{ {
case CSimulatorInfo::FG: return m_simSettingsFG.setAndSave(settings);
case CSimulatorInfo::FS9: return m_simSettingsFs9.setAndSave(settings); case CSimulatorInfo::FS9: return m_simSettingsFs9.setAndSave(settings);
case CSimulatorInfo::FSX: return m_simSettingsFsx.setAndSave(settings); case CSimulatorInfo::FSX: return m_simSettingsFsx.setAndSave(settings);
case CSimulatorInfo::P3D: return m_simSettingsP3D.setAndSave(settings); case CSimulatorInfo::P3D: return m_simSettingsP3D.setAndSave(settings);
@@ -216,6 +220,7 @@ namespace BlackMisc
Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "No single simulator"); Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "No single simulator");
switch (simulator.getSimulator()) switch (simulator.getSimulator())
{ {
case CSimulatorInfo::FG: return m_simSettingsFG.save();
case CSimulatorInfo::FS9: return m_simSettingsFs9.save(); case CSimulatorInfo::FS9: return m_simSettingsFs9.save();
case CSimulatorInfo::FSX: return m_simSettingsFsx.save(); case CSimulatorInfo::FSX: return m_simSettingsFsx.save();
case CSimulatorInfo::P3D: return m_simSettingsP3D.save(); case CSimulatorInfo::P3D: return m_simSettingsP3D.save();
@@ -281,16 +286,6 @@ namespace BlackMisc
return CSpecializedSimulatorSettings::defaultModelDirectories(simulator); return CSpecializedSimulatorSettings::defaultModelDirectories(simulator);
} }
const QStringList &CMultiSimulatorSettings::defaultModelExcludeDirectoryPatterns(const CSimulatorInfo &simulator)
{
return CSpecializedSimulatorSettings::defaultModelExcludeDirectoryPatterns(simulator);
}
const QString &CMultiSimulatorSettings::defaultSimulatorDirectory(const CSimulatorInfo &simulator)
{
return CSpecializedSimulatorSettings::defaultSimulatorDirectory(simulator);
}
void CMultiSimulatorSettings::onFsxSettingsChanged() void CMultiSimulatorSettings::onFsxSettingsChanged()
{ {
this->emitSettingsChanged(CSimulatorInfo::fsx()); this->emitSettingsChanged(CSimulatorInfo::fsx());
@@ -311,6 +306,11 @@ namespace BlackMisc
this->emitSettingsChanged(CSimulatorInfo::xplane()); this->emitSettingsChanged(CSimulatorInfo::xplane());
} }
void CMultiSimulatorSettings::onFGSettingsChanged()
{
this->emitSettingsChanged(CSimulatorInfo::fg());
}
void CMultiSimulatorSettings::emitSettingsChanged(const CSimulatorInfo &simInfo) void CMultiSimulatorSettings::emitSettingsChanged(const CSimulatorInfo &simInfo)
{ {
emit this->settingsChanged(simInfo); emit this->settingsChanged(simInfo);
@@ -498,6 +498,7 @@ namespace BlackMisc
QStringList dirs; QStringList dirs;
switch (m_simulator.getSimulator()) switch (m_simulator.getSimulator())
{ {
case CSimulatorInfo::FG: break;
case CSimulatorInfo::FS9: dirs = QStringList({CFsCommonUtil::fs9AircraftDirFromSimDir(s)}); break; case CSimulatorInfo::FS9: dirs = QStringList({CFsCommonUtil::fs9AircraftDirFromSimDir(s)}); break;
case CSimulatorInfo::FSX: dirs = QStringList({CFsCommonUtil::fsxSimObjectsDirFromSimDir(s)}); break; case CSimulatorInfo::FSX: dirs = QStringList({CFsCommonUtil::fsxSimObjectsDirFromSimDir(s)}); break;
case CSimulatorInfo::P3D: dirs = QStringList({CFsCommonUtil::p3dSimObjectsDirFromSimDir(s)}); break; case CSimulatorInfo::P3D: dirs = QStringList({CFsCommonUtil::p3dSimObjectsDirFromSimDir(s)}); break;
@@ -568,6 +569,10 @@ namespace BlackMisc
static const QStringList e; static const QStringList e;
switch (simulator.getSimulator()) switch (simulator.getSimulator())
{ {
case CSimulatorInfo::FG:
{
return e;
}
case CSimulatorInfo::FS9: case CSimulatorInfo::FS9:
{ {
if (CFsCommonUtil::fs9AircraftDir().isEmpty()) { return e; } if (CFsCommonUtil::fs9AircraftDir().isEmpty()) { return e; }
@@ -600,8 +605,10 @@ namespace BlackMisc
const QString &CSpecializedSimulatorSettings::defaultSimulatorDirectory(const CSimulatorInfo &simulator) const QString &CSpecializedSimulatorSettings::defaultSimulatorDirectory(const CSimulatorInfo &simulator)
{ {
Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "No single simulator"); Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "No single simulator");
static const QString empty;
switch (simulator.getSimulator()) switch (simulator.getSimulator())
{ {
case CSimulatorInfo::FG: return empty;
case CSimulatorInfo::FS9: return CFsCommonUtil::fs9Dir(); case CSimulatorInfo::FS9: return CFsCommonUtil::fs9Dir();
case CSimulatorInfo::FSX: return CFsCommonUtil::fsxDir(); case CSimulatorInfo::FSX: return CFsCommonUtil::fsxDir();
case CSimulatorInfo::P3D: return CFsCommonUtil::p3dDir(); case CSimulatorInfo::P3D: return CFsCommonUtil::p3dDir();
@@ -610,15 +617,16 @@ namespace BlackMisc
Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "No single simulator"); Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "No single simulator");
break; break;
} }
static const QString empty;
return empty; return empty;
} }
const QStringList &CSpecializedSimulatorSettings::defaultModelExcludeDirectoryPatterns(const CSimulatorInfo &simulator) const QStringList &CSpecializedSimulatorSettings::defaultModelExcludeDirectoryPatterns(const CSimulatorInfo &simulator)
{ {
Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "No single simulator"); Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "No single simulator");
static const QStringList empty;
switch (simulator.getSimulator()) switch (simulator.getSimulator())
{ {
case CSimulatorInfo::FG: return empty;
case CSimulatorInfo::FS9: return CFsCommonUtil::fs9AircraftObjectsExcludeDirectoryPatterns(); case CSimulatorInfo::FS9: return CFsCommonUtil::fs9AircraftObjectsExcludeDirectoryPatterns();
case CSimulatorInfo::FSX: return CFsCommonUtil::fsxSimObjectsExcludeDirectoryPatterns(); case CSimulatorInfo::FSX: return CFsCommonUtil::fsxSimObjectsExcludeDirectoryPatterns();
case CSimulatorInfo::P3D: return CFsCommonUtil::p3dSimObjectsExcludeDirectoryPatterns(); case CSimulatorInfo::P3D: return CFsCommonUtil::p3dSimObjectsExcludeDirectoryPatterns();
@@ -627,7 +635,6 @@ namespace BlackMisc
Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "No single simulator"); Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "No single simulator");
break; break;
} }
static const QStringList empty;
return empty; return empty;
} }

View File

@@ -261,6 +261,16 @@ namespace BlackMisc
static const QString &humanReadable() { static const QString name("XPlane settings"); return name; } static const QString &humanReadable() { static const QString name("XPlane settings"); return name; }
}; };
//! Trait for simulator settings
struct TSimulatorFG : public TSettingTrait<CSimulatorSettings>
{
//! \copydoc BlackCore::TSettingTrait::key
static const char *key() { return "settingssimulatorfg"; }
//! \copydoc BlackCore::TSettingTrait::humanReadable
static const QString &humanReadable() { static const QString name("FG settings"); return name; }
};
//! Bundle of settings for all simulators //! Bundle of settings for all simulators
class BLACKMISC_EXPORT CMultiSimulatorSettings : public QObject class BLACKMISC_EXPORT CMultiSimulatorSettings : public QObject
{ {
@@ -323,11 +333,11 @@ namespace BlackMisc
//! Default model exclude patterns per simulator //! Default model exclude patterns per simulator
//! \deprecated use CSpecializedSimulatorSettings::defaultModelExcludeDirectoryPatterns //! \deprecated use CSpecializedSimulatorSettings::defaultModelExcludeDirectoryPatterns
static const QStringList &defaultModelExcludeDirectoryPatterns(const CSimulatorInfo &simulator); // static const QStringList &defaultModelExcludeDirectoryPatterns(const CSimulatorInfo &simulator);
//! Default simulator path per simulator //! Default simulator path per simulator
//! \deprecated use CSpecializedSimulatorSettings::defaultSimulatorDirectory //! \deprecated use CSpecializedSimulatorSettings::defaultSimulatorDirectory
static const QString &defaultSimulatorDirectory(const CSimulatorInfo &simulator); // static const QString &defaultSimulatorDirectory(const CSimulatorInfo &simulator);
signals: signals:
//! Simulator settings have been changed //! Simulator settings have been changed
@@ -338,12 +348,14 @@ namespace BlackMisc
CSetting<Settings::TSimulatorFs9> m_simSettingsFs9 { this, &CMultiSimulatorSettings::onFs9SettingsChanged }; //!< FS9 settings CSetting<Settings::TSimulatorFs9> m_simSettingsFs9 { this, &CMultiSimulatorSettings::onFs9SettingsChanged }; //!< FS9 settings
CSetting<Settings::TSimulatorP3D> m_simSettingsP3D { this, &CMultiSimulatorSettings::onP3DSettingsChanged }; //!< P3D settings CSetting<Settings::TSimulatorP3D> m_simSettingsP3D { this, &CMultiSimulatorSettings::onP3DSettingsChanged }; //!< P3D settings
CSetting<Settings::TSimulatorXP> m_simSettingsXP { this, &CMultiSimulatorSettings::onXPSettingsChanged }; //!< XP settings CSetting<Settings::TSimulatorXP> m_simSettingsXP { this, &CMultiSimulatorSettings::onXPSettingsChanged }; //!< XP settings
CSetting<Settings::TSimulatorFG> m_simSettingsFG { this, &CMultiSimulatorSettings::onFGSettingsChanged }; //!< FG settings
//! Settings changed, this will only detect if settings are changed elsewhere @{ //! Settings changed, this will only detect if settings are changed elsewhere @{
void onFsxSettingsChanged(); void onFsxSettingsChanged();
void onFs9SettingsChanged(); void onFs9SettingsChanged();
void onP3DSettingsChanged(); void onP3DSettingsChanged();
void onXPSettingsChanged(); void onXPSettingsChanged();
void onFGSettingsChanged();
//! @} //! @}
//! Emit the signal, allows breakpoint //! Emit the signal, allows breakpoint