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

View File

@@ -261,6 +261,16 @@ namespace BlackMisc
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
class BLACKMISC_EXPORT CMultiSimulatorSettings : public QObject
{
@@ -323,11 +333,11 @@ namespace BlackMisc
//! Default model exclude patterns per simulator
//! \deprecated use CSpecializedSimulatorSettings::defaultModelExcludeDirectoryPatterns
static const QStringList &defaultModelExcludeDirectoryPatterns(const CSimulatorInfo &simulator);
// static const QStringList &defaultModelExcludeDirectoryPatterns(const CSimulatorInfo &simulator);
//! Default simulator path per simulator
//! \deprecated use CSpecializedSimulatorSettings::defaultSimulatorDirectory
static const QString &defaultSimulatorDirectory(const CSimulatorInfo &simulator);
// static const QString &defaultSimulatorDirectory(const CSimulatorInfo &simulator);
signals:
//! Simulator settings have been changed
@@ -338,12 +348,14 @@ namespace BlackMisc
CSetting<Settings::TSimulatorFs9> m_simSettingsFs9 { this, &CMultiSimulatorSettings::onFs9SettingsChanged }; //!< FS9 settings
CSetting<Settings::TSimulatorP3D> m_simSettingsP3D { this, &CMultiSimulatorSettings::onP3DSettingsChanged }; //!< P3D 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 @{
void onFsxSettingsChanged();
void onFs9SettingsChanged();
void onP3DSettingsChanged();
void onXPSettingsChanged();
void onFGSettingsChanged();
//! @}
//! Emit the signal, allows breakpoint