mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-30 11:55:35 +08:00
Ref T246, simulator settings improvements
This commit is contained in:
@@ -46,6 +46,11 @@ namespace BlackMisc
|
||||
m_modelDirectories.removeDuplicates();
|
||||
}
|
||||
|
||||
void CSimulatorSettings::clearModelDirectories()
|
||||
{
|
||||
m_modelDirectories.clear();
|
||||
}
|
||||
|
||||
void CSimulatorSettings::setModelDirectory(const QString &modelDirectory)
|
||||
{
|
||||
m_modelDirectories = QStringList({ modelDirectory });
|
||||
@@ -107,7 +112,7 @@ namespace BlackMisc
|
||||
switch (i)
|
||||
{
|
||||
case IndexSimulatorDirectory: return CVariant::fromValue(m_simulatorDirectory);
|
||||
case IndexModelDirectory: return CVariant::fromValue(m_modelDirectories);
|
||||
case IndexModelDirectories: return CVariant::fromValue(m_modelDirectories);
|
||||
case IndexModelExcludeDirectoryPatterns: return CVariant::fromValue(m_excludeDirectoryPatterns);
|
||||
default: return CValueObject::propertyByIndex(index);
|
||||
}
|
||||
@@ -120,7 +125,7 @@ namespace BlackMisc
|
||||
switch (i)
|
||||
{
|
||||
case IndexSimulatorDirectory: this->setSimulatorDirectory(variant.toQString()); break;
|
||||
case IndexModelDirectory: this->setSimulatorDirectory(variant.toQString()); break;
|
||||
case IndexModelDirectories: this->setSimulatorDirectory(variant.toQString()); break;
|
||||
case IndexModelExcludeDirectoryPatterns: m_excludeDirectoryPatterns = variant.value<QStringList>(); break;
|
||||
default: CValueObject::setPropertyByIndex(index, variant); break;
|
||||
}
|
||||
@@ -178,6 +183,13 @@ namespace BlackMisc
|
||||
return this->setSettings(s, simulator);
|
||||
}
|
||||
|
||||
CStatusMessage CMultiSimulatorSettings::clearModelDirectories(const CSimulatorInfo &simulator)
|
||||
{
|
||||
CSimulatorSettings s = this->getSettings(simulator);
|
||||
s.clearModelDirectories();
|
||||
return this->setSettings(s, simulator);
|
||||
}
|
||||
|
||||
CStatusMessage CMultiSimulatorSettings::setAndSaveSettings(const CSimulatorSettings &settings, const CSimulatorInfo &simulator)
|
||||
{
|
||||
Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "No single simulator");
|
||||
@@ -194,6 +206,11 @@ namespace BlackMisc
|
||||
return CStatusMessage({ CLogCategory::settings() }, CStatusMessage::SeverityError, "wrong simulator");
|
||||
}
|
||||
|
||||
CStatusMessage CMultiSimulatorSettings::setAndSaveSettings(const CSpecializedSimulatorSettings &settings, const CSimulatorInfo &simulator)
|
||||
{
|
||||
return this->setAndSaveSettings(settings.getGenericSettings(), simulator);
|
||||
}
|
||||
|
||||
CStatusMessage CMultiSimulatorSettings::saveSettings(const CSimulatorInfo &simulator)
|
||||
{
|
||||
Q_ASSERT_X(simulator.isSingleSimulator(), Q_FUNC_INFO, "No single simulator");
|
||||
@@ -276,22 +293,27 @@ namespace BlackMisc
|
||||
|
||||
void CMultiSimulatorSettings::onFsxSettingsChanged()
|
||||
{
|
||||
emit this->simulatorSettingsChanged(CSimulatorInfo::fsx());
|
||||
this->emitSettingsChanged(CSimulatorInfo::fsx());
|
||||
}
|
||||
|
||||
void CMultiSimulatorSettings::onP3DSettingsChanged()
|
||||
{
|
||||
emit this->simulatorSettingsChanged(CSimulatorInfo::p3d());
|
||||
this->emitSettingsChanged(CSimulatorInfo::p3d());
|
||||
}
|
||||
|
||||
void CMultiSimulatorSettings::onFs9SettingsChanged()
|
||||
{
|
||||
emit this->simulatorSettingsChanged(CSimulatorInfo::fs9());
|
||||
this->emitSettingsChanged(CSimulatorInfo::fs9());
|
||||
}
|
||||
|
||||
void CMultiSimulatorSettings::onXPSettingsChanged()
|
||||
{
|
||||
emit this->simulatorSettingsChanged(CSimulatorInfo::xplane());
|
||||
this->emitSettingsChanged(CSimulatorInfo::xplane());
|
||||
}
|
||||
|
||||
void CMultiSimulatorSettings::emitSettingsChanged(const CSimulatorInfo &simInfo)
|
||||
{
|
||||
emit this->settingsChanged(simInfo);
|
||||
}
|
||||
|
||||
void CSimulatorMessagesSettings::setTechnicalLogSeverity(CStatusMessage::StatusSeverity severity)
|
||||
@@ -439,11 +461,6 @@ namespace BlackMisc
|
||||
}
|
||||
}
|
||||
|
||||
void CSpecializedSimulatorSettings::setSimulatorDirectory(const QString &simDir)
|
||||
{
|
||||
m_genericSettings.setSimulatorDirectory(simDir);
|
||||
}
|
||||
|
||||
const QString &CSpecializedSimulatorSettings::getDefaultSimulatorDirectory() const
|
||||
{
|
||||
return CSpecializedSimulatorSettings::defaultSimulatorDirectory(m_simulator);
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace BlackMisc
|
||||
enum ColumnIndex
|
||||
{
|
||||
IndexSimulatorDirectory = CPropertyIndex::GlobalIndexCSimulatorSettings,
|
||||
IndexModelDirectory,
|
||||
IndexModelDirectories,
|
||||
IndexModelExcludeDirectoryPatterns
|
||||
};
|
||||
|
||||
@@ -61,6 +61,9 @@ namespace BlackMisc
|
||||
//! Set model directories
|
||||
void setModelDirectories(const QStringList &modelDirectories);
|
||||
|
||||
//! Clear the model directories
|
||||
void clearModelDirectories();
|
||||
|
||||
//! Set single model directory
|
||||
void setModelDirectory(const QString &modelDirectory);
|
||||
|
||||
@@ -98,7 +101,7 @@ namespace BlackMisc
|
||||
void setPropertyByIndex(const CPropertyIndex &index, const CVariant &variant);
|
||||
|
||||
private:
|
||||
QString m_simulatorDirectory; //! Simulator directory
|
||||
QString m_simulatorDirectory; //!< Simulator directory
|
||||
QStringList m_modelDirectories; //!< Model directory
|
||||
QStringList m_excludeDirectoryPatterns; //!< Exclude model directory
|
||||
|
||||
@@ -123,9 +126,6 @@ namespace BlackMisc
|
||||
//! Ctor
|
||||
CSpecializedSimulatorSettings(const QString &simulatorDir, const CSimulatorInfo &simulator) : m_genericSettings(CSimulatorSettings(simulatorDir)), m_simulator(simulator) {}
|
||||
|
||||
//! Alter simulator directory
|
||||
void setSimulatorDirectory(const QString &simDir);
|
||||
|
||||
//! Default simulator path per simulator
|
||||
const QString &getDefaultSimulatorDirectory() const;
|
||||
|
||||
@@ -162,6 +162,15 @@ namespace BlackMisc
|
||||
//! Model exclude patterns or empty if default
|
||||
const QStringList &getModelExcludeDirectoryPatternsOrDefault() const;
|
||||
|
||||
//! \copydoc CSimulatorSettings::clearModelDirectories
|
||||
void clearModelDirectories() { m_genericSettings.clearModelDirectories(); }
|
||||
|
||||
//! \copydoc CSimulatorSettings::addModelDirectory
|
||||
bool addModelDirectory(const QString &modelDirectory) { return m_genericSettings.addModelDirectory(modelDirectory); }
|
||||
|
||||
//! \copydoc CSimulatorSettings::setSimulatorDirectory
|
||||
void setSimulatorDirectory(const QString &simDir) { m_genericSettings.setSimulatorDirectory(simDir); }
|
||||
|
||||
//! Default model path per simulator
|
||||
static const QStringList &defaultModelDirectories(const CSimulatorInfo &simulator);
|
||||
|
||||
@@ -253,9 +262,15 @@ namespace BlackMisc
|
||||
//! Set model directory per simulator
|
||||
CStatusMessage addModelDirectory(const QString &modelDirectory, const CSimulatorInfo &simulator);
|
||||
|
||||
//! Clear the model directory
|
||||
CStatusMessage clearModelDirectories(const CSimulatorInfo &simulator);
|
||||
|
||||
//! Set settings per simulator
|
||||
CStatusMessage setAndSaveSettings(const CSimulatorSettings &settings, const CSimulatorInfo &simulator);
|
||||
|
||||
//! Set settings per simulator
|
||||
CStatusMessage setAndSaveSettings(const CSpecializedSimulatorSettings &settings, const CSimulatorInfo &simulator);
|
||||
|
||||
//! Set settings per simulator
|
||||
CStatusMessage saveSettings(const CSimulatorInfo &simulator);
|
||||
|
||||
@@ -296,7 +311,7 @@ namespace BlackMisc
|
||||
|
||||
signals:
|
||||
//! Simulator settings have been changed
|
||||
void simulatorSettingsChanged(const BlackMisc::Simulation::CSimulatorInfo &simulator);
|
||||
void settingsChanged(const CSimulatorInfo &simulator);
|
||||
|
||||
private:
|
||||
CSetting<Settings::TSimulatorFsx> m_simSettingsFsx { this, &CMultiSimulatorSettings::onFsxSettingsChanged }; //!< FSX settings
|
||||
@@ -304,10 +319,15 @@ namespace BlackMisc
|
||||
CSetting<Settings::TSimulatorP3D> m_simSettingsP3D { this, &CMultiSimulatorSettings::onP3DSettingsChanged }; //!< P3D settings
|
||||
CSetting<Settings::TSimulatorXP> m_simSettingsXP { this, &CMultiSimulatorSettings::onXPSettingsChanged }; //!< XP settings
|
||||
|
||||
//! Settings changed, this will only detect if settings are changed elsewhere @{
|
||||
void onFsxSettingsChanged();
|
||||
void onFs9SettingsChanged();
|
||||
void onP3DSettingsChanged();
|
||||
void onXPSettingsChanged();
|
||||
//! @}
|
||||
|
||||
//! Emit the signal, allows breakpoint
|
||||
void emitSettingsChanged(const CSimulatorInfo &simInfo);
|
||||
};
|
||||
|
||||
//! Settings regarding message handling.
|
||||
|
||||
Reference in New Issue
Block a user