Fix wrong time bug and change QVariantHashes to QVariantMap for JS conversion

This commit is contained in:
Mikko Ahlroth 2014-07-08 00:03:57 +03:00
parent aed3fca0bf
commit b3b9f43ffa
2 changed files with 24 additions and 20 deletions

View file

@ -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<quint64>(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<QString, QString> 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<QString, QString>(key, value);
QVariantMap ret;
ret.insert("key", handleString(data));
ret.insert("value", handleString(data));
return ret;
}
QPair<QString, QVariantHash> 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<QString, QVariantHash> WeeChatProtocolHandler::handleInfoList(QDataStream*
values.insert(key, value);
}
return QPair<QString, QVariantHash>(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);
}

View file

@ -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<QString, QString> handleInfo(QDataStream* data);
static QPair<QString, QVariantHash> 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);