File indexing completed on 2024-05-12 15:34:13
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(rects); 0041 qDeleteAll(sizes); 0042 qDeleteAll(ulonglongs); 0043 qDeleteAll(urllists); 0044 } 0045 0046 bool *newBool() 0047 { 0048 bool *v = new bool; 0049 bools.append(v); 0050 return v; 0051 } 0052 0053 QString *newString() 0054 { 0055 QString *v = new QString; 0056 strings.append(v); 0057 return v; 0058 } 0059 0060 QStringList *newStringList() 0061 { 0062 QStringList *v = new QStringList; 0063 stringlists.append(v); 0064 return v; 0065 } 0066 0067 QColor *newColor() 0068 { 0069 QColor *v = new QColor; 0070 colors.append(v); 0071 return v; 0072 } 0073 0074 QFont *newFont() 0075 { 0076 QFont *v = new QFont; 0077 fonts.append(v); 0078 return v; 0079 } 0080 0081 qint32 *newInt() 0082 { 0083 qint32 *v = new qint32; 0084 ints.append(v); 0085 return v; 0086 } 0087 0088 quint32 *newUint() 0089 { 0090 quint32 *v = new quint32; 0091 uints.append(v); 0092 return v; 0093 } 0094 0095 QUrl *newUrl() 0096 { 0097 QUrl *v = new QUrl; 0098 urls.append(v); 0099 return v; 0100 } 0101 0102 QDateTime *newDateTime() 0103 { 0104 QDateTime *v = new QDateTime; 0105 dateTimes.append(v); 0106 return v; 0107 } 0108 0109 double *newDouble() 0110 { 0111 double *v = new double; 0112 doubles.append(v); 0113 return v; 0114 } 0115 0116 QList<qint32> *newIntList() 0117 { 0118 QList<qint32> *v = new QList<qint32>; 0119 intlists.append(v); 0120 return v; 0121 } 0122 0123 qint64 *newLongLong() 0124 { 0125 qint64 *v = new qint64; 0126 longlongs.append(v); 0127 return v; 0128 } 0129 0130 QPoint *newPoint() 0131 { 0132 QPoint *v = new QPoint; 0133 points.append(v); 0134 return v; 0135 } 0136 0137 QRect *newRect() 0138 { 0139 QRect *v = new QRect; 0140 rects.append(v); 0141 return v; 0142 } 0143 0144 QSize *newSize() 0145 { 0146 QSize *v = new QSize; 0147 sizes.append(v); 0148 return v; 0149 } 0150 0151 quint64 *newULongLong() 0152 { 0153 quint64 *v = new quint64; 0154 ulonglongs.append(v); 0155 return v; 0156 } 0157 0158 QList<QUrl> *newUrlList() 0159 { 0160 QList<QUrl> *v = new QList<QUrl>(); 0161 urllists.append(v); 0162 return v; 0163 } 0164 0165 void parse(KConfigLoader *loader, QIODevice *xml); 0166 0167 /** 0168 * Whether or not to write out default values. 0169 * 0170 * @param writeDefaults true if defaults should be written out 0171 */ 0172 void setWriteDefaults(bool writeDefaults) 0173 { 0174 saveDefaults = writeDefaults; 0175 } 0176 0177 /** 0178 * @return true if default values will also be written out 0179 */ 0180 bool writeDefaults() const 0181 { 0182 return saveDefaults; 0183 } 0184 0185 QList<bool *> bools; 0186 QList<QString *> strings; 0187 QList<QStringList *> stringlists; 0188 QList<QColor *> colors; 0189 QList<QFont *> fonts; 0190 QList<qint32 *> ints; 0191 QList<quint32 *> uints; 0192 QList<QUrl *> urls; 0193 QList<QDateTime *> dateTimes; 0194 QList<double *> doubles; 0195 QList<QList<qint32> *> intlists; 0196 QList<qint64 *> longlongs; 0197 QList<QPoint *> points; 0198 QList<QRect *> rects; 0199 QList<QSize *> sizes; 0200 QList<quint64 *> ulonglongs; 0201 QList<QList<QUrl> *> urllists; 0202 QString baseGroup; 0203 QStringList groups; 0204 QHash<QString, QString> keysToNames; 0205 bool saveDefaults; 0206 }; 0207 0208 #endif