/
qrichconfigure.cpp
116 lines (104 loc) · 3.14 KB
/
qrichconfigure.cpp
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include "qrichconfigure.h"
//只需要指定风格(defaultItem)即可初始化
QRichConfigureList::QRichConfigureList(QRichConfigureItem defaultItem) :
item(),
defaultItem(defaultItem)
{
// setDefaultItem(defaultItem);
}
//复制构造函数
QRichConfigureList::QRichConfigureList(const QRichConfigureList &conf) :
item(conf.item),
defaultItem(conf.defaultItem)
{
// this->defaultItem = conf.defaultItem;
// this->item = conf.item;
}
//设置默认风格(defaultItem)
bool QRichConfigureList::setDefaultItem(const QRichConfigureItem defaultItem)
{
this->defaultItem = defaultItem;
return true;
}
//获取默认风格(defaultItem)
QRichConfigureItem QRichConfigureList::getDefaultItem()
{
return this->defaultItem;
}
//判断某关键字(keyword)是否存在于配置列表(QRichConfigureList)中
inline bool QRichConfigureList::IsIn(const QString keyword)
{
for (std::vector<QRichConfigureItem>::iterator i = this->item.begin(); i != this->item.end(); ++i)
{
if (i->keyword == keyword)
{
return true;
}
}
return false;
}
//判断关键字(keyword)是否存在于配置列表(QRichConfigureList)中,
//若存在,item为配置列表(QRichConfigureList)中对应关键字(keyword)的配置(QRichConfigurItem)
inline bool QRichConfigureList::select(const QString keyword, QRichConfigureItem &item)
{
for (std::vector<QRichConfigureItem>::iterator i = this->item.begin(); i != this->item.end(); ++i)
{
if (i->keyword == keyword)
{
item = *i;
return true;
}
}
return false;
}
//增加一个配置(QRichConfigureItem)到配置列表(QRichConfigureList)中
bool QRichConfigureList::AddItem(const QRichConfigureItem item)
{
if (!IsIn(item.keyword))
{
this->item.push_back(item);
return true;
}
else
{
return false;
}
}
//增加一个内容为{keyword, font, color}的配置(QRichConfigureItem)到配置列表中(QRichConfigureList)
bool QRichConfigureList::AddItem(const QString keyword, const QFont font, const QColor color)
{
if (!IsIn(keyword))
{
QRichConfigureItem *item = new QRichConfigureItem(keyword, font, color);
this->item.push_back(*item);
delete item;
item = 0;
return true;
}
else
{
return false;
}
}
//增加一个内容为{keyword, font}的配置(QRichConfigureItem)到配置列表中(QRichConfigureList),
//缺少的字体颜色(color)项根据默认配置(defaultItem)的对应项(color)补全
bool QRichConfigureList::AddItem(const QString keyword, const QFont font)
{
return AddItem(keyword, font, defaultItem.color);
}
//增加一个内容为{keyword, color}的配置(QRichConfigureItem)到配置列表中(QRichConfigureList),
//缺少的字体(font)项根据默认配置(defaultItem)的对应项(font)补全
bool QRichConfigureList::AddItem(const QString keyword, const QColor color)
{
return AddItem(keyword, defaultItem.font, color);
}
//获取一个包含所有配置(QRichConfigureItem)的关键字项(keyword)的列表
std::vector<QString> QRichConfigureList::keywords()
{
std::vector<QString> returnVector;
for (std::vector<QRichConfigureItem>::iterator i = this->item.begin(); i != this->item.end(); ++i)
{
returnVector.push_back(i->keyword);
}
return returnVector;
}