FlightGear next
LaunchConfig.hxx
Go to the documentation of this file.
1#ifndef FG_GUI_LAUNCHCONFIG_HXX
2#define FG_GUI_LAUNCHCONFIG_HXX
3
4#include <set>
5#include <QObject>
6#include <QVariant>
7#include <QScopedPointer>
8
9// forwards decls
10class QSettings;
11
12namespace flightgear { class Options; }
13
14class LaunchConfig : public QObject
15{
16 Q_OBJECT
17
18 Q_PROPERTY(QString defaultDownloadDir READ defaultDownloadDir CONSTANT)
19 Q_PROPERTY(bool enableDownloadDirUI READ enableDownloadDirUI CONSTANT)
20public:
21 enum Origin
22 {
25 };
26
28
29 class Arg
30 {
31 public:
32 explicit Arg(QString k, QString v, Origin o) : arg(k), value(v), origin(o) {}
33
34 QString arg;
35 QString value;
37 };
38
39
40 LaunchConfig(QObject* parent = nullptr);
42
43 void reset();
44 void applyToOptions() const;
45
46 std::vector<Arg> values() const;
47
48
49
50 Q_INVOKABLE void setArg(QString name, QString value = QString(), Origin origin = Launcher);
51
52 Q_INVOKABLE void setArg(const std::string& name, const std::string& value = std::string());
53
54 Q_INVOKABLE void setProperty(QString path, QVariant value, Origin origin = Launcher);
55
56 Q_INVOKABLE void setEnableDisableOption(QString name, bool value);
57
58 Q_INVOKABLE QString htmlForCommandLine();
59
60 Q_INVOKABLE void copyCommandLine();
61
62 bool saveConfigToINI();
63 bool loadConfigFromINI();
64
65 Q_INVOKABLE bool saveConfigToFile(QString path);
66
67 Q_INVOKABLE bool loadConfigFromFile(QString path);
68
69 Q_INVOKABLE QVariant getValueForKey(QString group, QString key, QVariant defaultValue = QVariant()) const;
70 Q_INVOKABLE void setValueForKey(QString group, QString key, QVariant var);
71
72 QString defaultDownloadDir() const;
73
74 bool enableDownloadDirUI() const;
75
77
78 std::vector<Arg> valuesFromLauncher() const;
79 std::vector<Arg> valuesFromExtraArgs() const;
80
81signals:
82 void collect();
83
84 void save();
85
86 void restore();
87
89private:
90 std::set<std::string> extraArgNames() const;
91
92 std::vector<Arg> m_values;
93 QString m_defaultDownloadDir;
94 mutable QScopedPointer<QSettings> m_loadSaveSettings;
95};
96
97#endif
Arg(QString k, QString v, Origin o)
Q_INVOKABLE void setValueForKey(QString group, QString key, QVariant var)
void postRestore()
Q_INVOKABLE QString htmlForCommandLine()
QString defaultDownloadDir
std::vector< Arg > values() const
bool saveConfigToINI()
Q_INVOKABLE bool saveConfigToFile(QString path)
bool enableDownloadDirUI
void restore()
void collect()
bool loadConfigFromINI()
static void setEnableDownloadDirUI(bool enableDownloadDirUI)
std::vector< Arg > valuesFromExtraArgs() const
Q_ENUMS(Origin)
std::vector< Arg > valuesFromLauncher() const
Q_INVOKABLE void setEnableDisableOption(QString name, bool value)
LaunchConfig(QObject *parent=nullptr)
Q_INVOKABLE void setArg(QString name, QString value=QString(), Origin origin=Launcher)
Q_INVOKABLE void copyCommandLine()
Q_INVOKABLE void setProperty(QString path, QVariant value, Origin origin=Launcher)
Q_INVOKABLE bool loadConfigFromFile(QString path)
void applyToOptions() const
Q_INVOKABLE QVariant getValueForKey(QString group, QString key, QVariant defaultValue=QVariant()) const
const char * name
FlightPlan.hxx - defines a full flight-plan object, including departure, cruise, arrival information ...
Definition Addon.cxx:53