#include <QtCore/QFile>
#include <QtCore/qplugin.h>
-#include <qjson/parser.h>
+#ifndef QT_KATIE
+# include <qjson/parser.h>
+#else
+# include <QJsonDocument>
+#endif
Q_EXPORT_PLUGIN2(Fake, Fake)
QFile file(QString(qgetenv("TEST_DATA")));
file.open(QIODevice::ReadOnly);
+#ifndef QT_KATIE
QJson::Parser parser;
QVariantMap json = parser.parse(file.readAll()).toMap();
+#else
+ QVariantMap json = QJsonDocument::fromJson(file.readAll()).toVariant().toMap();
+#endif
QList <QVariant> outputs = json["outputs"].toList();
Q_FOREACH(const QVariant &value, outputs) {
#include <QtCore/QFile>
#include <KDebug>
-#include <qjson/parser.h>
-#include <qjson/qobjecthelper.h>
+#ifndef QT_KATIE
+# include <qjson/parser.h>
+# include <qjson/qobjecthelper.h>
+#else
+# include <QJsonDocument>
+# include <QMetaProperty>
+#endif
using namespace KScreen;
+#ifdef QT_KATIE
+static void qvariant2qobject(const QVariantMap &map, QObject *object)
+{
+ const QMetaObject *metaobject = object->metaObject();
+
+ for (QVariantMap::const_iterator iter = map.constBegin(),
+ end = map.constEnd(); iter != end; iter++) {
+ int pIdx = metaobject->indexOfProperty(iter.key().toLatin1());
+
+ if ( pIdx < 0 ) {
+ continue;
+ }
+
+ QMetaProperty metaproperty = metaobject->property( pIdx );
+ QVariant::Type type = metaproperty.type();
+ QVariant v(iter.value());
+ if (v.canConvert(type)) {
+ v.convert(type);
+ metaproperty.write(object, v);
+ } else if (metaproperty.typeName() == QLatin1String("QVariant")) {
+ metaproperty.write(object, v);
+ }
+ }
+}
+#endif
+
Config* Parser::fromJson(const QByteArray& data)
{
Config *config = new Config();
- QJson::Parser parser;
+#ifndef QT_KATIE
+ QJson::Parser parser;
QVariantMap json = parser.parse(data).toMap();
+#else
+ QVariantMap json = QJsonDocument::fromJson(data).toVariant().toMap();
+#endif
Screen* screen = Parser::screenFromJson(json["screen"].toMap());
}
output->setPreferredModes(preferredModes);
+#ifndef QT_KATIE
QJson::QObjectHelper::qvariant2qobject(map, output);
+#else
+ qvariant2qobject(map, output);
+#endif
Mode *mode;
ModeList modelist;
QVariantMap map = data.toMap();
Mode *mode = new Mode;
mode->setId(map["id"].toString());
+
+#ifndef QT_KATIE
QJson::QObjectHelper::qvariant2qobject(map, mode);
+#else
+ qvariant2qobject(map, mode);
+#endif
mode->setSize(Parser::sizeFromJson(map["size"].toMap()));