224 lines
5.2 KiB
C++
224 lines
5.2 KiB
C++
/*
|
|
* Copyright 2007-2008 Aaron Seigo <aseigo@kde.org>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU Library General Public License as
|
|
* published by the Free Software Foundation; either version 2, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details
|
|
*
|
|
* You should have received a copy of the GNU Library General Public
|
|
* License along with this program; if not, write to the
|
|
* Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
#ifndef PLASMA_CONFIGLOADER_P_H
|
|
#define PLASMA_CONFIGLOADER_P_H
|
|
|
|
#include <kurl.h>
|
|
|
|
namespace Plasma
|
|
{
|
|
|
|
class ConfigLoaderPrivate
|
|
{
|
|
public:
|
|
ConfigLoaderPrivate()
|
|
: saveDefaults(false)
|
|
{
|
|
}
|
|
|
|
~ConfigLoaderPrivate()
|
|
{
|
|
qDeleteAll(bools);
|
|
qDeleteAll(strings);
|
|
qDeleteAll(stringlists);
|
|
qDeleteAll(colors);
|
|
qDeleteAll(fonts);
|
|
qDeleteAll(ints);
|
|
qDeleteAll(uints);
|
|
qDeleteAll(urls);
|
|
qDeleteAll(dateTimes);
|
|
qDeleteAll(doubles);
|
|
qDeleteAll(intlists);
|
|
qDeleteAll(longlongs);
|
|
qDeleteAll(points);
|
|
qDeleteAll(rects);
|
|
qDeleteAll(sizes);
|
|
qDeleteAll(ulonglongs);
|
|
qDeleteAll(urllists);
|
|
}
|
|
|
|
bool *newBool()
|
|
{
|
|
bool *v = new bool;
|
|
bools.append(v);
|
|
return v;
|
|
}
|
|
|
|
QString *newString()
|
|
{
|
|
QString *v = new QString;
|
|
strings.append(v);
|
|
return v;
|
|
}
|
|
|
|
QStringList *newStringList()
|
|
{
|
|
QStringList *v = new QStringList;
|
|
stringlists.append(v);
|
|
return v;
|
|
}
|
|
|
|
QColor *newColor()
|
|
{
|
|
QColor *v = new QColor;
|
|
colors.append(v);
|
|
return v;
|
|
}
|
|
|
|
QFont *newFont()
|
|
{
|
|
QFont *v = new QFont;
|
|
fonts.append(v);
|
|
return v;
|
|
}
|
|
|
|
qint32 *newInt()
|
|
{
|
|
qint32 *v = new qint32;
|
|
ints.append(v);
|
|
return v;
|
|
}
|
|
|
|
quint32 *newUint()
|
|
{
|
|
quint32 *v = new quint32;
|
|
uints.append(v);
|
|
return v;
|
|
}
|
|
|
|
KUrl *newUrl()
|
|
{
|
|
KUrl *v = new KUrl;
|
|
urls.append(v);
|
|
return v;
|
|
}
|
|
|
|
QDateTime *newDateTime()
|
|
{
|
|
QDateTime *v = new QDateTime;
|
|
dateTimes.append(v);
|
|
return v;
|
|
}
|
|
|
|
double *newDouble()
|
|
{
|
|
double *v = new double;
|
|
doubles.append(v);
|
|
return v;
|
|
}
|
|
|
|
QList<qint32>* newIntList()
|
|
{
|
|
QList<qint32> *v = new QList<qint32>;
|
|
intlists.append(v);
|
|
return v;
|
|
}
|
|
|
|
qint64 *newLongLong()
|
|
{
|
|
qint64 *v = new qint64;
|
|
longlongs.append(v);
|
|
return v;
|
|
}
|
|
|
|
QPoint *newPoint()
|
|
{
|
|
QPoint *v = new QPoint;
|
|
points.append(v);
|
|
return v;
|
|
}
|
|
|
|
QRect *newRect()
|
|
{
|
|
QRect *v = new QRect;
|
|
rects.append(v);
|
|
return v;
|
|
}
|
|
|
|
QSize *newSize()
|
|
{
|
|
QSize *v = new QSize;
|
|
sizes.append(v);
|
|
return v;
|
|
}
|
|
|
|
quint64 *newULongLong()
|
|
{
|
|
quint64 *v = new quint64;
|
|
ulonglongs.append(v);
|
|
return v;
|
|
}
|
|
|
|
QList<QUrl> *newUrlList()
|
|
{
|
|
QList<QUrl> *v = new QList<QUrl>();
|
|
urllists.append(v);
|
|
return v;
|
|
}
|
|
|
|
void parse(ConfigLoader *loader, QIODevice *xml);
|
|
|
|
/**
|
|
* Whether or not to write out default values.
|
|
*
|
|
* @param writeDefaults true if defaults should be written out
|
|
*/
|
|
void setWriteDefaults(bool writeDefaults)
|
|
{
|
|
saveDefaults = writeDefaults;
|
|
}
|
|
|
|
/**
|
|
* @return true if default values will also be written out
|
|
*/
|
|
bool writeDefaults() const
|
|
{
|
|
return saveDefaults;
|
|
}
|
|
|
|
|
|
QList<bool *> bools;
|
|
QList<QString *> strings;
|
|
QList<QStringList *> stringlists;
|
|
QList<QColor *> colors;
|
|
QList<QFont *> fonts;
|
|
QList<qint32 *> ints;
|
|
QList<quint32 *> uints;
|
|
QList<KUrl *> urls;
|
|
QList<QDateTime *> dateTimes;
|
|
QList<double *> doubles;
|
|
QList<QList<qint32> *> intlists;
|
|
QList<qint64 *> longlongs;
|
|
QList<QPoint *> points;
|
|
QList<QRect *> rects;
|
|
QList<QSize *> sizes;
|
|
QList<quint64 *> ulonglongs;
|
|
QList<QList<QUrl> *> urllists;
|
|
QString baseGroup;
|
|
QStringList groups;
|
|
QHash<QString, QString> keysToNames;
|
|
bool saveDefaults;
|
|
};
|
|
|
|
} // namespace Plasma
|
|
|
|
#endif
|
|
|