1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
#ifndef QMPSETTINGSRO_H
#define QMPSETTINGSRO_H
#include <map>
#include <string>
#include <vector>
#include <QVariant>
#include <QPointer>
struct qmpOptionR
{
enum ParameterType
{
parameter_int = 0,
parameter_uint,
parameter_bool,
parameter_double,
parameter_str,
parameter_enum,
parameter_url,
parameter_custom = 0x100
};
std::string desc;
ParameterType type;
QVariant defaultval, minv, maxv;
std::vector<std::string> enumlist;
qmpOptionR() {}
qmpOptionR(
std::string _desc,
ParameterType _t, QVariant _def = QVariant(),
QVariant _min = QVariant(), QVariant _max = QVariant()):
desc(_desc),
type(_t),
defaultval(_def),
minv(_min),
maxv(_max) {}
};
class qmpSettingsRO
{
public:
qmpSettingsRO();
void registerOptionInt(std::string tab, std::string desc, std::string key, int min, int max, int defaultval);
int getOptionInt(std::string key);
void setOptionInt(std::string key, int val);
void registerOptionUint(std::string tab, std::string desc, std::string key, unsigned min, unsigned max, unsigned defaultval);
unsigned getOptionUint(std::string key);
void setOptionUint(std::string key, unsigned val);
void registerOptionBool(std::string tab, std::string desc, std::string key, bool defaultval);
bool getOptionBool(std::string key);
void setOptionBool(std::string key, bool val);
void registerOptionDouble(std::string tab, std::string desc, std::string key, double min, double max, double defaultval);
double getOptionDouble(std::string key);
void setOptionDouble(std::string key, double val);
void registerOptionString(std::string tab, std::string desc, std::string key, std::string defaultval, bool is_url);
std::string getOptionString(std::string key);
void setOptionString(std::string key, std::string val);
void registerOptionEnumInt(std::string tab, std::string desc, std::string key, std::vector<std::string> enumlist, int defaultval);
int getOptionEnumInt(std::string key);
std::string getOptionEnumIntOptName(std::string key);
void setOptionEnumInt(std::string key, int val);
void setOptionEnumIntOptName(std::string key, std::string valname);
void load(const char *path);
void setopt(std::string key, std::string val);
void listopt();
private:
std::map<std::string, qmpOptionR> options;
std::vector<std::string> optionlist;
QVariantMap settings;
};
#endif
|