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