From 3c58b0cc9a58e992ccf794b04bcc4bcdd6342777 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Sat, 11 Apr 2015 12:43:22 +0300 Subject: [PATCH] Revert "WebUI: Use QVariantMap instead of QVariantHash" This reverts commit d49c79d03286aaec04dd478dc527d2c51ee85acc. --- src/webui/btjson.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/webui/btjson.cpp b/src/webui/btjson.cpp index 049e2b226..34bd0f986 100644 --- a/src/webui/btjson.cpp +++ b/src/webui/btjson.cpp @@ -157,7 +157,7 @@ static const char KEY_SUFFIX_REMOVED[] = "_removed"; QVariantMap getTranserInfoMap(); QVariantMap toMap(const QTorrentHandle& h); void processMap(QVariantMap prevData, QVariantMap data, QVariantMap &syncData); -void processHash(QVariantMap prevData, QVariantMap data, QVariantMap &syncData, QVariantList &removedItems); +void processHash(QVariantHash prevData, QVariantHash data, QVariantMap &syncData, QVariantList &removedItems); void processList(QVariantList prevData, QVariantList data, QVariantList &syncData, QVariantList &removedItems); QVariantMap generateSyncData(int acceptedResponseId, QVariantMap data, QVariantMap &lastAcceptedData, QVariantMap &lastData); @@ -314,7 +314,7 @@ QByteArray btjson::getSyncMainData(int acceptedResponseId, QVariantMap &lastData { QVariantMap data; - QVariantMap torrents; + QVariantHash torrents; std::vector torrentsList = QBtSession::instance()->getTorrents(); std::vector::const_iterator it = torrentsList.begin(); @@ -600,7 +600,14 @@ void processMap(QVariantMap prevData, QVariantMap data, QVariantMap &syncData) switch (data[key].type()) { case QVariant::Map: { QVariantMap map; - processHash(prevData[key].toMap(), data[key].toMap(), map, removedItems); + processMap(prevData[key].toMap(), data[key].toMap(), map); + if (!map.isEmpty()) + syncData[key] = map; + } + break; + case QVariant::Hash: { + QVariantMap map; + processHash(prevData[key].toHash(), data[key].toHash(), map, removedItems); if (!map.isEmpty()) syncData[key] = map; if (!removedItems.isEmpty()) @@ -636,7 +643,7 @@ void processMap(QVariantMap prevData, QVariantMap data, QVariantMap &syncData) // Compare two lists of structures (prevData, data) and calculate difference (syncData, removedItems). // Structures encoded as map. // Lists are encoded as hash table (indexed by structure key value) to improve ease of searching for removed items. -void processHash(QVariantMap prevData, QVariantMap data, QVariantMap &syncData, QVariantList &removedItems) +void processHash(QVariantHash prevData, QVariantHash data, QVariantMap &syncData, QVariantList &removedItems) { // initialize output variables syncData.clear();