#include "LaunchConfig.hxx" #include
#include #include #include static bool static_enableDownloadDirUI = true; LaunchConfig::LaunchConfig(QObject* parent) : QObject(parent) { } void LaunchConfig::reset() { m_values.clear(); } void LaunchConfig::applyToOptions() const { flightgear::Options* options = flightgear::Options::sharedInstance(); std::for_each(m_values.begin(), m_values.end(), [options](const Arg& arg) { options->addOption(arg.arg.toStdString(), arg.value.toStdString()); }); } void LaunchConfig::setArg(QString name, QString value) { m_values.push_back(Arg(name, value)); } void LaunchConfig::setArg(const std::string &name, const std::string &value) { setArg(QString::fromStdString(name), QString::fromStdString(value)); } void LaunchConfig::setProperty(QString path, QVariant value) { m_values.push_back(Arg("prop", path + "=" + value.toString())); } void LaunchConfig::setEnableDisableOption(QString name, bool value) { m_values.push_back(Arg((value ? "enable-" : "disable-") + name)); } QVariant LaunchConfig::getValueForKey(QString group, QString key, QVariant defaultValue) const { QSettings settings; settings.beginGroup(group); auto v = settings.value(key, defaultValue); bool convertedOk = v.convert(defaultValue.type()); if (!convertedOk) { qWarning() << "type forcing on loaded value failed:" << key << v << v.typeName() << defaultValue; } // qInfo() << Q_FUNC_INFO << key << "value" << v << v.typeName() << convertedOk; return v; } void LaunchConfig::setValueForKey(QString group, QString key, QVariant var) { QSettings settings; settings.beginGroup(group); // qInfo() << "saving" << key << "with value" << var << var.typeName(); settings.setValue(key, var); settings.endGroup(); } QString LaunchConfig::defaultDownloadDir() const { return QString::fromStdString(flightgear::defaultDownloadDir().utf8Str()); } bool LaunchConfig::enableDownloadDirUI() const { return static_enableDownloadDirUI; } void LaunchConfig::setEnableDownloadDirUI(bool enableDownloadDirUI) { static_enableDownloadDirUI = enableDownloadDirUI; } auto LaunchConfig::values() const -> std::vector { return m_values; }