diff options
Diffstat (limited to 'tier1/kconfig/src/gui/kconfiggroupgui.cpp')
-rw-r--r-- | tier1/kconfig/src/gui/kconfiggroupgui.cpp | 197 |
1 files changed, 0 insertions, 197 deletions
diff --git a/tier1/kconfig/src/gui/kconfiggroupgui.cpp b/tier1/kconfig/src/gui/kconfiggroupgui.cpp deleted file mode 100644 index 22706e77..00000000 --- a/tier1/kconfig/src/gui/kconfiggroupgui.cpp +++ /dev/null @@ -1,197 +0,0 @@ -/* - This file is part of the KDE libraries - Copyright (c) 2007 Thiago Macieira <thiago@kde.org> - - This library 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 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include <kconfiggroup.h> - -#include <QtCore/QMutableStringListIterator> -#include <QColor> -#include <QDebug> -#include <QFont> - -#include <kconfiggroup_p.h> - -/** - * Try to read a GUI type from config group @p cg at key @p key. - * @p input is the default value and also indicates the type to be read. - * @p output is to be set with the value that has been read. - * - * @returns true if something was handled (even if output was set to clear or default) - * or false if nothing was handled (e.g., Core type) - */ -static bool readEntryGui(const QByteArray& data, const char* key, const QVariant &input, - QVariant &output) -{ - const QString errString = QString::fromLatin1("\"%1\" - conversion from \"%3\" to %2 failed") - .arg(QLatin1String(key)) - .arg(QLatin1String(QVariant::typeToName(input.type()))) - .arg(QLatin1String(data.constData())); - const QString formatError = QString::fromLatin1(" (wrong format: expected '%1' items, read '%2')"); - - // set in case of failure - output = input; - - switch (input.type()) { - case QVariant::Color: { - if (data.isEmpty() || data == "invalid") { - output = QColor(); // return what was stored - return true; - } else if (data.at(0) == '#') { - QColor col; - col.setNamedColor(QString::fromUtf8(data.constData(), data.length())); - output = col; - return true; - } else if (!data.contains(',')) { - QColor col; - col.setNamedColor(QString::fromUtf8(data.constData(), data.length())); - if (!col.isValid()) - qCritical() << qPrintable(errString); - output = col; - return true; - } else { - const QList<QByteArray> list = data.split(','); - const int count = list.count(); - - if (count != 3 && count != 4) { - qCritical() << qPrintable(errString) << qPrintable(formatError.arg(QLatin1String("3' or '4")).arg(count)); - return true; // return default - } - - int temp[4]; - // bounds check components - for(int i = 0; i < count; i++) { - bool ok; - const int j = temp[i] = list.at(i).toInt(&ok); - if (!ok) { // failed to convert to int - qCritical() << qPrintable(errString) << " (integer conversion failed)"; - return true; // return default - } - if (j < 0 || j > 255) { - static const char *const components[6] = { - "red", "green", "blue", "alpha" - }; - const QString boundsError = QLatin1String(" (bounds error: %1 component %2)"); - qCritical() << qPrintable(errString) - << qPrintable(boundsError.arg(QLatin1String(components[i])).arg(j < 0? QLatin1String("< 0"): QLatin1String("> 255"))); - return true; // return default - } - } - QColor aColor(temp[0], temp[1], temp[2]); - if (count == 4) - aColor.setAlpha(temp[3]); - - if (aColor.isValid()) - output = aColor; - else - qCritical() << qPrintable(errString); - return true; - } - } - - case QVariant::Font: { - QVariant tmp = QString::fromUtf8(data.constData(), data.length()); - if (tmp.convert(QVariant::Font)) - output = tmp; - else - qCritical() << qPrintable(errString); - return true; - } - case QVariant::Pixmap: - case QVariant::Image: - case QVariant::Brush: - case QVariant::Palette: - case QVariant::Icon: - case QVariant::Region: - case QVariant::Bitmap: - case QVariant::Cursor: - case QVariant::SizePolicy: - case QVariant::Pen: - // we may want to handle these in the future - - default: - break; - } - - return false; // not handled -} - -/** - * Try to write a GUI type @p prop to config group @p cg at key @p key. - * - * @returns true if something was handled (even if an empty value was written) - * or false if nothing was handled (e.g., Core type) - */ -static bool writeEntryGui(KConfigGroup *cg, const char* key, const QVariant &prop, - KConfigGroup::WriteConfigFlags pFlags) -{ - switch (prop.type()) { - case QVariant::Color: { - const QColor rColor = prop.value<QColor>(); - - if (!rColor.isValid()) { - cg->writeEntry(key, "invalid", pFlags); - return true; - } - - QList<int> list; - list.insert(0, rColor.red()); - list.insert(1, rColor.green()); - list.insert(2, rColor.blue()); - if (rColor.alpha() != 255) - list.insert(3, rColor.alpha()); - - cg->writeEntry( key, list, pFlags ); - return true; - } - case QVariant::Font: - cg->writeEntry( key, prop.toString().toUtf8(), pFlags ); - return true; - - case QVariant::Pixmap: - case QVariant::Image: - case QVariant::Brush: - case QVariant::Palette: - case QVariant::Icon: - case QVariant::Region: - case QVariant::Bitmap: - case QVariant::Cursor: - case QVariant::SizePolicy: - case QVariant::Pen: - // we may want to handle one of these in the future - break; - - default: - break; - } - - return false; -} - -static int initKConfigGroupGui() -{ - _kde_internal_KConfigGroupGui.readEntryGui = readEntryGui; - _kde_internal_KConfigGroupGui.writeEntryGui = writeEntryGui; - return 42; // because 42 is nicer than 1 or 0 -} - -#ifdef Q_CONSTRUCTOR_FUNCTION -Q_CONSTRUCTOR_FUNCTION(initKConfigGroupGui) -#else -static int dummyKConfigGroupGui = initKConfigGroupGui(); -#endif |