1/*
2 SPDX-FileCopyrightText: 2007-2008 Aaron Seigo <aseigo@kde.org>
3
4 SPDX-License-Identifier: LGPL-2.0-or-later
5*/
6
7#ifndef KCONFIGLOADER_P_H
8#define KCONFIGLOADER_P_H
9
10#include <QUrl>
11
12class ConfigLoaderPrivate
13{
14public:
15 ConfigLoaderPrivate()
16 : saveDefaults(false)
17 {
18 }
19
20 ~ConfigLoaderPrivate()
21 {
22 clearData();
23 }
24
25 void clearData()
26 {
27 qDeleteAll(c: bools);
28 qDeleteAll(c: strings);
29 qDeleteAll(c: stringlists);
30 qDeleteAll(c: colors);
31 qDeleteAll(c: fonts);
32 qDeleteAll(c: ints);
33 qDeleteAll(c: uints);
34 qDeleteAll(c: urls);
35 qDeleteAll(c: times);
36 qDeleteAll(c: dateTimes);
37 qDeleteAll(c: doubles);
38 qDeleteAll(c: intlists);
39 qDeleteAll(c: longlongs);
40 qDeleteAll(c: points);
41 qDeleteAll(c: pointfs);
42 qDeleteAll(c: rects);
43 qDeleteAll(c: rectfs);
44 qDeleteAll(c: sizes);
45 qDeleteAll(c: sizefs);
46 qDeleteAll(c: ulonglongs);
47 qDeleteAll(c: urllists);
48 }
49
50 bool *newBool()
51 {
52 bool *v = new bool;
53 bools.append(t: v);
54 return v;
55 }
56
57 QString *newString()
58 {
59 QString *v = new QString;
60 strings.append(t: v);
61 return v;
62 }
63
64 QStringList *newStringList()
65 {
66 QStringList *v = new QStringList;
67 stringlists.append(t: v);
68 return v;
69 }
70
71 QColor *newColor()
72 {
73 QColor *v = new QColor;
74 colors.append(t: v);
75 return v;
76 }
77
78 QFont *newFont()
79 {
80 QFont *v = new QFont;
81 fonts.append(t: v);
82 return v;
83 }
84
85 qint32 *newInt()
86 {
87 qint32 *v = new qint32;
88 ints.append(t: v);
89 return v;
90 }
91
92 quint32 *newUint()
93 {
94 quint32 *v = new quint32;
95 uints.append(t: v);
96 return v;
97 }
98
99 QUrl *newUrl()
100 {
101 QUrl *v = new QUrl;
102 urls.append(t: v);
103 return v;
104 }
105
106 QDateTime *newDateTime()
107 {
108 QDateTime *v = new QDateTime;
109 dateTimes.append(t: v);
110 return v;
111 }
112
113 QTime *newTime()
114 {
115 QTime *v = new QTime;
116 times.append(t: v);
117 return v;
118 }
119
120 double *newDouble()
121 {
122 double *v = new double;
123 doubles.append(t: v);
124 return v;
125 }
126
127 QList<qint32> *newIntList()
128 {
129 QList<qint32> *v = new QList<qint32>;
130 intlists.append(t: v);
131 return v;
132 }
133
134 qint64 *newLongLong()
135 {
136 qint64 *v = new qint64;
137 longlongs.append(t: v);
138 return v;
139 }
140
141 QPoint *newPoint()
142 {
143 QPoint *v = new QPoint;
144 points.append(t: v);
145 return v;
146 }
147
148 QPointF *newPointF()
149 {
150 QPointF *v = new QPointF;
151 pointfs.append(t: v);
152 return v;
153 }
154
155 QRect *newRect()
156 {
157 QRect *v = new QRect;
158 rects.append(t: v);
159 return v;
160 }
161
162 QRectF *newRectF()
163 {
164 QRectF *v = new QRectF;
165 rectfs.append(t: v);
166 return v;
167 }
168
169 QSize *newSize()
170 {
171 QSize *v = new QSize;
172 sizes.append(t: v);
173 return v;
174 }
175
176 QSizeF *newSizeF()
177 {
178 QSizeF *v = new QSizeF;
179 sizefs.append(t: v);
180 return v;
181 }
182
183 quint64 *newULongLong()
184 {
185 quint64 *v = new quint64;
186 ulonglongs.append(t: v);
187 return v;
188 }
189
190 QList<QUrl> *newUrlList()
191 {
192 QList<QUrl> *v = new QList<QUrl>();
193 urllists.append(t: v);
194 return v;
195 }
196
197 void parse(KConfigLoader *loader, QIODevice *xml);
198
199 /*!
200 * Whether or not to write out default values.
201 *
202 * @param writeDefaults true if defaults should be written out
203 */
204 void setWriteDefaults(bool writeDefaults)
205 {
206 saveDefaults = writeDefaults;
207 }
208
209 /*!
210 * @return true if default values will also be written out
211 */
212 bool writeDefaults() const
213 {
214 return saveDefaults;
215 }
216
217 QList<bool *> bools;
218 QList<QString *> strings;
219 QList<QStringList *> stringlists;
220 QList<QColor *> colors;
221 QList<QFont *> fonts;
222 QList<qint32 *> ints;
223 QList<quint32 *> uints;
224 QList<QUrl *> urls;
225 QList<QDateTime *> dateTimes;
226 QList<QTime *> times;
227 QList<double *> doubles;
228 QList<QList<qint32> *> intlists;
229 QList<qint64 *> longlongs;
230 QList<QPoint *> points;
231 QList<QPointF *> pointfs;
232 QList<QRect *> rects;
233 QList<QRectF *> rectfs;
234 QList<QSize *> sizes;
235 QList<QSizeF *> sizefs;
236 QList<quint64 *> ulonglongs;
237 QList<QList<QUrl> *> urllists;
238 QString baseGroup;
239 QStringList groups;
240 QHash<QString, QString> keysToNames;
241 bool saveDefaults;
242};
243
244#endif
245

source code of kconfig/src/gui/kconfigloader_p.h