FlightGear
next
LauncherArgumentTokenizer.hxx
Go to the documentation of this file.
1
#ifndef LAUNCHERARGUMENTTOKENIZER_HXX
2
#define LAUNCHERARGUMENTTOKENIZER_HXX
3
4
#include <set>
5
6
#include <QString>
7
#include <QList>
8
#include <QObject>
9
#include <QJSValue>
10
#include <QVariant>
11
12
class
ArgumentToken
13
{
14
public
:
15
explicit
ArgumentToken
(QString k, QString v = QString()) :
arg
(k),
value
(v) {}
16
17
QString
arg
;
18
QString
value
;
19
};
20
21
class
LauncherArgumentTokenizer
:
public
QObject
22
{
23
Q_OBJECT
24
25
Q_PROPERTY(QString
argString
READ
argString
WRITE
setArgString
NOTIFY
argStringChanged
)
26
Q_PROPERTY(QVariantList
tokens
READ
tokens
NOTIFY
argStringChanged
)
27
28
Q_PROPERTY(
bool
valid
READ
isValid
NOTIFY
argStringChanged
)
29
Q_PROPERTY(
bool
havePositionalArgs
READ
havePositionalArgs
NOTIFY
argStringChanged
)
30
Q_PROPERTY(
bool
haveUnsupportedArgs
READ
haveUnsupportedArgs
NOTIFY
argStringChanged
)
31
Q_PROPERTY(
bool
haveAircraftArgs
READ
haveAircraftArgs
NOTIFY
argStringChanged
)
32
33
public:
34
LauncherArgumentTokenizer
();
35
36
37
QString
argString
()
const
38
{
39
return
m_argString;
40
}
41
42
QVariantList
tokens
()
const
;
43
44
bool
isValid
()
const
;
45
46
bool
haveUnsupportedArgs
()
const
;
47
bool
havePositionalArgs
()
const
;
48
bool
haveAircraftArgs
()
const
;
49
public
slots:
50
void
setArgString
(QString
argString
);
51
52
signals:
53
void
argStringChanged
(QString
argString
);
54
55
private
:
56
bool
haveArgsIn(
const
std::set<std::string> &args)
const
;
57
58
void
tokenize(QString in);
59
60
enum
State {
61
Start = 0,
62
Key,
63
Value,
64
Quoted,
65
Comment
66
};
67
68
std::vector<ArgumentToken> m_tokens;
69
QString m_argString;
70
bool
m_valid =
false
;
71
};
72
73
#endif
// LAUNCHERARGUMENTTOKENIZER_HXX
ArgumentToken::value
QString value
Definition
LauncherArgumentTokenizer.hxx:18
ArgumentToken::arg
QString arg
Definition
LauncherArgumentTokenizer.hxx:17
ArgumentToken::ArgumentToken
ArgumentToken(QString k, QString v=QString())
Definition
LauncherArgumentTokenizer.hxx:15
LauncherArgumentTokenizer::haveUnsupportedArgs
bool haveUnsupportedArgs
Definition
LauncherArgumentTokenizer.hxx:30
LauncherArgumentTokenizer::setArgString
void setArgString(QString argString)
Definition
LauncherArgumentTokenizer.cxx:139
LauncherArgumentTokenizer::tokens
QVariantList tokens
Definition
LauncherArgumentTokenizer.hxx:26
LauncherArgumentTokenizer::haveAircraftArgs
bool haveAircraftArgs
Definition
LauncherArgumentTokenizer.hxx:31
LauncherArgumentTokenizer::argStringChanged
void argStringChanged(QString argString)
LauncherArgumentTokenizer::havePositionalArgs
bool havePositionalArgs
Definition
LauncherArgumentTokenizer.hxx:29
LauncherArgumentTokenizer::argString
QString argString
Definition
LauncherArgumentTokenizer.hxx:25
LauncherArgumentTokenizer::LauncherArgumentTokenizer
LauncherArgumentTokenizer()
Definition
LauncherArgumentTokenizer.cxx:9
LauncherArgumentTokenizer::valid
bool valid
Definition
LauncherArgumentTokenizer.hxx:28
LauncherArgumentTokenizer::isValid
bool isValid() const
Definition
LauncherArgumentTokenizer.cxx:126
src
GUI
LauncherArgumentTokenizer.hxx
Generated on Tue Jun 3 2025 12:58:39 for FlightGear by
1.13.2