void JobsTest::testExtractedFilesSize()
{
- Kerfuffle::ListJob *listJob;
JSONArchiveInterface *noSizeIface =
createArchiveInterface(QLatin1String(KDESRCDIR "data/archive001.json"));
JSONArchiveInterface *sizeIface =
createArchiveInterface(QLatin1String(KDESRCDIR "data/archive002.json"));
- listJob = new Kerfuffle::ListJob(noSizeIface, this);
+ Kerfuffle::ListJob *listJob = new Kerfuffle::ListJob(noSizeIface, this);
listJob->setAutoDelete(false);
startAndWaitForResult(listJob);
#include "jsonarchiveinterface.h"
#include <kdebug.h>
-#include <qjson/parser.h>
-
#include <qfile.h>
+#ifndef QT_KATIE
+# include <qjson/parser.h>
+#endif
+
+
JSONArchiveInterface::JSONArchiveInterface(QObject *parent, const QVariantList& args)
: Kerfuffle::ReadWriteArchiveInterface(parent, args)
{
#include "kerfuffle/archiveinterface.h"
#include <KDebug>
+#include <QString>
-#include <QtCore/qstring.h>
-
-#include <qjson/parser.h>
+#ifndef QT_KATIE
+# include <qjson/parser.h>
+#else
+# include <QJsonDocument>
+#endif
typedef QMap<QString, Kerfuffle::EntryMetaDataType> ArchiveProperties;
JSONParser::JSONArchive JSONParser::parse(const QString &json)
{
+#ifndef QT_KATIE
bool ok;
QJson::Parser parser;
kDebug() << "Line" << parser.errorLine() << ":" << parser.errorString();
return JSONParser::JSONArchive();
}
+#else
+ QJsonParseError error;
+ const QVariant result = QJsonDocument::fromJson(json.toUtf8(), &error).toVariant();
+
+ if (error.error != QJsonParseError::NoError) {
+ kDebug() << "Line" << error.offset << ":" << error.errorString();
+ return JSONParser::JSONArchive();
+ }
+#endif
return createJSONArchive(result);
}
JSONParser::JSONArchive JSONParser::parse(QIODevice *json)
{
+#ifndef QT_KATIE
bool ok;
QJson::Parser parser;
kDebug() << "Line" << parser.errorLine() << ":" << parser.errorString();
return JSONParser::JSONArchive();
}
+#else
+ QJsonParseError error;
+ const QVariant result = QJsonDocument::fromJson(json->readAll(), &error).toVariant();
+
+ if (error.error != QJsonParseError::NoError) {
+ kDebug() << "Line" << error.offset << ":" << error.errorString();
+ return JSONParser::JSONArchive();
+ }
+#endif
return createJSONArchive(result);
}