-
Notifications
You must be signed in to change notification settings - Fork 3
/
configItem.h
74 lines (65 loc) · 1.9 KB
/
configItem.h
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
#ifndef CONFIG_ITEM_H
#define CONFIG_ITEM_H
#include <QtCore>
class configItem
{
public:
virtual int parse_line(const QString &line)= 0;
virtual QString write_line() const = 0;
virtual bool has_info() const = 0;
const QString& key() const {return _key;}
protected:
configItem(const char *key);
private:
QString _key;
};
class configSize : public configItem, public QSize
{
public:
configSize(const char *key, int width, int height);
int parse_line(const QString &line);
QString write_line() const;
bool has_info() const;
QSize& operator=(const QSize &src) {return *(static_cast<QSize*>(this)) = src;}
};
class configRect : public configItem, public QRect
{
public:
configRect(const char *key, int x, int y, int width, int height);
int parse_line(const QString &line);
QString write_line() const;
bool has_info() const;
QRect& operator=(const QRect &src) {return *(static_cast<QRect*>(this)) = src;}
};
class configString : public configItem, public QString
{
public:
configString(const char *key);
int parse_line(const QString &line);
QString write_line() const;
bool has_info() const;
QString& operator=(const QString &src) {return *(static_cast<QString*>(this)) = src;}
};
class configInt : public configItem
{
public:
configInt(const char *key, int val);
int parse_line(const QString &line);
QString write_line() const;
bool has_info() const;
int& operator=(const int &src) {return _val = src;}
int val() const {return _val;}
void set_val(int val) {_val= val;}
private:
int _val;
};
class configIntVec : public configItem, public QVector<int>
{
public:
configIntVec(const char *key);
int parse_line(const QString &line);
QString write_line() const;
bool has_info() const;
QVector<int>& operator=(const QVector<int> &src) {return *(static_cast<QVector<int>*>(this)) = src;}
};
#endif