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