diff --git a/src/weechatprotocolhandler.cpp b/src/weechatprotocolhandler.cpp index b55bbf4..118747a 100644 --- a/src/weechatprotocolhandler.cpp +++ b/src/weechatprotocolhandler.cpp @@ -185,12 +185,12 @@ QDateTime WeeChatProtocolHandler::handleTime(QDataStream* data) // It's the same format as a Long so we will read it that way QDateTime ret; quint64 timestamp = static_cast(handleLong(data)); - return ret.fromMSecsSinceEpoch(timestamp); + return ret.fromMSecsSinceEpoch(timestamp * 1000); } -QVariantHash WeeChatProtocolHandler::handleHashTable(QDataStream* data) +QVariantMap WeeChatProtocolHandler::handleHashTable(QDataStream* data) { - QVariantHash ret; + QVariantMap ret; // The hashtable first contains the types for the key and value Type keyType = readType(data); @@ -214,7 +214,7 @@ QVariantHash WeeChatProtocolHandler::handleHashTable(QDataStream* data) return ret; } -QVariantHash WeeChatProtocolHandler::handleHdata(QDataStream* data) +QVariantMap WeeChatProtocolHandler::handleHdata(QDataStream* data) { /* * A Hdata consists of: @@ -227,9 +227,9 @@ QVariantHash WeeChatProtocolHandler::handleHdata(QDataStream* data) * * List of objects, with the same keys and types as defined in Keys */ - QVariantHash hdata; + QVariantMap hdata; QVariantList objectSets; - QVariantHash keys; + QVariantMap keys; QString hPath = handleString(data); qDebug() << "H-path: " << hPath; @@ -252,7 +252,7 @@ QVariantHash WeeChatProtocolHandler::handleHdata(QDataStream* data) for (qint32 i = 0; i < objectSetCount; ++i) { - QVariantHash objectSet; + QVariantMap objectSet; // The amount of pointers is the amount of parts in H-path, // separated by / @@ -282,21 +282,23 @@ QVariantHash WeeChatProtocolHandler::handleHdata(QDataStream* data) return hdata; } -QPair WeeChatProtocolHandler::handleInfo(QDataStream* data) +QVariantMap WeeChatProtocolHandler::handleInfo(QDataStream* data) { // Info consists of a string key and a string value - QString key = handleString(data); - QString value = handleString(data); - return QPair(key, value); + QVariantMap ret; + ret.insert("key", handleString(data)); + ret.insert("value", handleString(data)); + return ret; } -QPair WeeChatProtocolHandler::handleInfoList(QDataStream* data) +QVariantMap WeeChatProtocolHandler::handleInfoList(QDataStream* data) { // Infolist consists of name, count and then name, type and value for each element - QString name = handleString(data); + QVariantMap ret; + ret.insert("name", handleString(data)); qint32 length = handleInt(data); - QVariantHash values; + QVariantMap values; for (qint32 i = 0; i < length; ++i) { QString key = handleString(data); @@ -305,7 +307,9 @@ QPair WeeChatProtocolHandler::handleInfoList(QDataStream* values.insert(key, value); } - return QPair(name, values); + ret.insert("values", values); + + return ret; } QVariantList WeeChatProtocolHandler::handleArray(QDataStream* data) @@ -463,7 +467,7 @@ void WeeChatProtocolHandler::handleBody(QDataStream* data) void WeeChatProtocolHandler::handleDefaultEvent(QString id, QDataStream* data) { qDebug() << "Making hdata!"; - QVariantHash hdata = handleHdata(data); + QVariantMap hdata = handleHdata(data); qDebug() << "Got hdata made!"; emit newEvent(id, hdata); } diff --git a/src/weechatprotocolhandler.h b/src/weechatprotocolhandler.h index d1f6fa5..9da977c 100644 --- a/src/weechatprotocolhandler.h +++ b/src/weechatprotocolhandler.h @@ -53,10 +53,10 @@ public: static QByteArray handleBuffer(QDataStream* data); static QString handlePointer(QDataStream* data); static QDateTime handleTime(QDataStream* data); - static QVariantHash handleHashTable(QDataStream* data); - static QVariantHash handleHdata(QDataStream* data); - static QPair handleInfo(QDataStream* data); - static QPair handleInfoList(QDataStream* data); + static QVariantMap handleHashTable(QDataStream* data); + static QVariantMap handleHdata(QDataStream* data); + static QVariantMap handleInfo(QDataStream* data); + static QVariantMap handleInfoList(QDataStream* data); static QVariantList handleArray(QDataStream* data); static Type readType(QDataStream* data);