File indexing completed on 2024-05-12 03:54:28
0001 /* 0002 SPDX-FileCopyrightText: 2007-2008 Aaron Seigo <aseigo@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef KCONFIGLOADER_P_H 0008 #define KCONFIGLOADER_P_H 0009 0010 #include <QUrl> 0011 0012 class ConfigLoaderPrivate 0013 { 0014 public: 0015 ConfigLoaderPrivate() 0016 : saveDefaults(false) 0017 { 0018 } 0019 0020 ~ConfigLoaderPrivate() 0021 { 0022 clearData(); 0023 } 0024 0025 void clearData() 0026 { 0027 qDeleteAll(bools); 0028 qDeleteAll(strings); 0029 qDeleteAll(stringlists); 0030 qDeleteAll(colors); 0031 qDeleteAll(fonts); 0032 qDeleteAll(ints); 0033 qDeleteAll(uints); 0034 qDeleteAll(urls); 0035 qDeleteAll(dateTimes); 0036 qDeleteAll(doubles); 0037 qDeleteAll(intlists); 0038 qDeleteAll(longlongs); 0039 qDeleteAll(points); 0040 qDeleteAll(pointfs); 0041 qDeleteAll(rects); 0042 qDeleteAll(rectfs); 0043 qDeleteAll(sizes); 0044 qDeleteAll(sizefs); 0045 qDeleteAll(ulonglongs); 0046 qDeleteAll(urllists); 0047 } 0048 0049 bool *newBool() 0050 { 0051 bool *v = new bool; 0052 bools.append(v); 0053 return v; 0054 } 0055 0056 QString *newString() 0057 { 0058 QString *v = new QString; 0059 strings.append(v); 0060 return v; 0061 } 0062 0063 QStringList *newStringList() 0064 { 0065 QStringList *v = new QStringList; 0066 stringlists.append(v); 0067 return v; 0068 } 0069 0070 QColor *newColor() 0071 { 0072 QColor *v = new QColor; 0073 colors.append(v); 0074 return v; 0075 } 0076 0077 QFont *newFont() 0078 { 0079 QFont *v = new QFont; 0080 fonts.append(v); 0081 return v; 0082 } 0083 0084 qint32 *newInt() 0085 { 0086 qint32 *v = new qint32; 0087 ints.append(v); 0088 return v; 0089 } 0090 0091 quint32 *newUint() 0092 { 0093 quint32 *v = new quint32; 0094 uints.append(v); 0095 return v; 0096 } 0097 0098 QUrl *newUrl() 0099 { 0100 QUrl *v = new QUrl; 0101 urls.append(v); 0102 return v; 0103 } 0104 0105 QDateTime *newDateTime() 0106 { 0107 QDateTime *v = new QDateTime; 0108 dateTimes.append(v); 0109 return v; 0110 } 0111 0112 double *newDouble() 0113 { 0114 double *v = new double; 0115 doubles.append(v); 0116 return v; 0117 } 0118 0119 QList<qint32> *newIntList() 0120 { 0121 QList<qint32> *v = new QList<qint32>; 0122 intlists.append(v); 0123 return v; 0124 } 0125 0126 qint64 *newLongLong() 0127 { 0128 qint64 *v = new qint64; 0129 longlongs.append(v); 0130 return v; 0131 } 0132 0133 QPoint *newPoint() 0134 { 0135 QPoint *v = new QPoint; 0136 points.append(v); 0137 return v; 0138 } 0139 0140 QPointF *newPointF() 0141 { 0142 QPointF *v = new QPointF; 0143 pointfs.append(v); 0144 return v; 0145 } 0146 0147 QRect *newRect() 0148 { 0149 QRect *v = new QRect; 0150 rects.append(v); 0151 return v; 0152 } 0153 0154 QRectF *newRectF() 0155 { 0156 QRectF *v = new QRectF; 0157 rectfs.append(v); 0158 return v; 0159 } 0160 0161 QSize *newSize() 0162 { 0163 QSize *v = new QSize; 0164 sizes.append(v); 0165 return v; 0166 } 0167 0168 QSizeF *newSizeF() 0169 { 0170 QSizeF *v = new QSizeF; 0171 sizefs.append(v); 0172 return v; 0173 } 0174 0175 quint64 *newULongLong() 0176 { 0177 quint64 *v = new quint64; 0178 ulonglongs.append(v); 0179 return v; 0180 } 0181 0182 QList<QUrl> *newUrlList() 0183 { 0184 QList<QUrl> *v = new QList<QUrl>(); 0185 urllists.append(v); 0186 return v; 0187 } 0188 0189 void parse(KConfigLoader *loader, QIODevice *xml); 0190 0191 /** 0192 * Whether or not to write out default values. 0193 * 0194 * @param writeDefaults true if defaults should be written out 0195 */ 0196 void setWriteDefaults(bool writeDefaults) 0197 { 0198 saveDefaults = writeDefaults; 0199 } 0200 0201 /** 0202 * @return true if default values will also be written out 0203 */ 0204 bool writeDefaults() const 0205 { 0206 return saveDefaults; 0207 } 0208 0209 QList<bool *> bools; 0210 QList<QString *> strings; 0211 QList<QStringList *> stringlists; 0212 QList<QColor *> colors; 0213 QList<QFont *> fonts; 0214 QList<qint32 *> ints; 0215 QList<quint32 *> uints; 0216 QList<QUrl *> urls; 0217 QList<QDateTime *> dateTimes; 0218 QList<double *> doubles; 0219 QList<QList<qint32> *> intlists; 0220 QList<qint64 *> longlongs; 0221 QList<QPoint *> points; 0222 QList<QPointF *> pointfs; 0223 QList<QRect *> rects; 0224 QList<QRectF *> rectfs; 0225 QList<QSize *> sizes; 0226 QList<QSizeF *> sizefs; 0227 QList<quint64 *> ulonglongs; 0228 QList<QList<QUrl> *> urllists; 0229 QString baseGroup; 0230 QStringList groups; 0231 QHash<QString, QString> keysToNames; 0232 bool saveDefaults; 0233 }; 0234 0235 #endif