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 | |
12 | class ConfigLoaderPrivate |
13 | { |
14 | public: |
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 | |