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