| 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 | |