diff --git a/sources/awesome-widget/CMakeLists.txt b/sources/awesome-widget/CMakeLists.txt index 1cd77f9..54e4dbe 100644 --- a/sources/awesome-widget/CMakeLists.txt +++ b/sources/awesome-widget/CMakeLists.txt @@ -8,7 +8,7 @@ configure_file (metadata.desktop ${CMAKE_CURRENT_SOURCE_DIR}/package/metadata.de find_package (ECM 0.0.12 REQUIRED NO_MODULE) set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) -find_package (Qt5 REQUIRED COMPONENTS Core Network Qml Xml) +find_package (Qt5 REQUIRED COMPONENTS Core Network Qml) find_package (KF5 REQUIRED COMPONENTS I18n Notifications Plasma) include (KDEInstallDirs) diff --git a/sources/awesome-widget/plugin/CMakeLists.txt b/sources/awesome-widget/plugin/CMakeLists.txt index 2d5d361..5219ca8 100644 --- a/sources/awesome-widget/plugin/CMakeLists.txt +++ b/sources/awesome-widget/plugin/CMakeLists.txt @@ -1,15 +1,9 @@ set (PLUGIN_NAME awplugin) add_definitions(-DTRANSLATION_DOMAIN=\"plasma_applet_org.kde.plasma.awesomewidget\") -add_definitions (${Qt5Core_DEFINITIONS} ${Qt5Network_DEFINITIONS} ${Qt5Xml_DEFINITIONS}) -set (Qt_INCLUDE ${Qt5Core_INCLUDE_DIRS} - ${Qt5Network_INCLUDE_DIRS} - ${Qt5Qml_INCLUDE_DIRS} - ${Qt5Xml_INCLUDE_DIRS}) -set (Qt_LIBRARIES ${Qt5Core_LIBRARIES} - ${Qt5Network_LIBRARIES} - ${Qt5Qml_LIBRARIES} - ${Qt5Xml_LIBRARIES}) +add_definitions (${Qt5Core_DEFINITIONS} ${Qt5Network_DEFINITIONS}) +set (Qt_INCLUDE ${Qt5Core_INCLUDE_DIRS} ${Qt5Network_INCLUDE_DIRS} ${Qt5Qml_INCLUDE_DIRS}) +set (Qt_LIBRARIES ${Qt5Core_LIBRARIES} ${Qt5Network_LIBRARIES} ${Qt5Qml_LIBRARIES}) set (Kf5_INCLUDE ${I18n_INCLUDE_DIR} ${Notifications_INCLUDE_DIR}) set (Kf5_LIBRARIES KF5::I18n diff --git a/sources/extsysmon/CMakeLists.txt b/sources/extsysmon/CMakeLists.txt index d3b6412..a5fd2fc 100644 --- a/sources/extsysmon/CMakeLists.txt +++ b/sources/extsysmon/CMakeLists.txt @@ -4,7 +4,7 @@ set (PLUGIN_NAME ${SUBPROJECT}) message (STATUS "Subproject ${SUBPROJECT}") # find required libaries -find_package (Qt5 REQUIRED COMPONENTS DBus Network Widgets Xml) +find_package (Qt5 REQUIRED COMPONENTS DBus Network Widgets) find_package (ECM 0.0.11 REQUIRED NO_MODULE) set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) find_package (KF5 REQUIRED COMPONENTS Plasma Service WindowSystem) @@ -14,9 +14,9 @@ include (KDECMakeSettings) include (KDECompilerSettings) add_definitions (${Qt5Core_DEFINITIONS} ${Qt5DBus_DEFINITIONS} - ${Qt5Network_DEFINITIONS} ${Qt5Widgets_DEFINITIONS} ${Qt5Xml_DEFINITIONS}) + ${Qt5Network_DEFINITIONS} ${Qt5Widgets_DEFINITIONS}) set (Qt_INCLUDE ${Qt5Core_INCLUDE_DIRS} ${Qt5DBus_INCLUDE_DIRS} - ${Qt5Network_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS} ${Qt5Xml_INCLUDE_DIRS}) + ${Qt5Network_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS}) set (KDE_INCLUDE ${Plasma_INCLUDE_DIR}) include_directories (${CMAKE_SOURCE_DIR} diff --git a/sources/extsysmon/extquotes.cpp b/sources/extsysmon/extquotes.cpp index cbe658a..126f656 100644 --- a/sources/extsysmon/extquotes.cpp +++ b/sources/extsysmon/extquotes.cpp @@ -20,8 +20,8 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -320,51 +320,37 @@ void ExtQuotes::quotesReplyReceived(QNetworkReply *reply) { if (debug) qDebug() << PDEBUG; if (debug) qDebug() << PDEBUG << ":" << "Return code" << reply->error(); - if (debug) qDebug() << PDEBUG << ":" << "Error message" << reply->errorString(); + if (debug) qDebug() << PDEBUG << ":" << "Reply error message" << reply->errorString(); - if (reply->error() != QNetworkReply::NoError) { - reply->deleteLater(); + QJsonParseError error; + QJsonDocument jsonDoc = QJsonDocument::fromJson(reply->readAll(), &error); + reply->deleteLater(); + if (debug) qDebug() << PDEBUG << ":" << "Json parse error" << error.errorString(); + if ((reply->error() != QNetworkReply::NoError) || + (error.error != QJsonParseError::NoError)) { return; } - - QDomDocument doc; - if (!doc.setContent(reply)) { - if (debug) qDebug() << PDEBUG << ":" << "Could not parse answer to XML"; - return; - } - QDomNodeList fields; + QVariantMap jsonQuotes = jsonDoc.toVariant().toMap()[QString("query")].toMap(); + jsonQuotes = jsonQuotes[QString("results")].toMap()[QString("quote")].toMap(); + float value; // ask - fields = doc.elementsByTagName(QString("Ask")); - for (int i=0; ideleteLater(); + value = jsonQuotes[QString("LastTradePriceOnly")].toString().toFloat(); + values[QString("pricechg")] = values[QString("price")] == 0 ? 0.0 : value - values[QString("price")]; + values[QString("percpricechg")] = 100 * values[QString("pricechg")] / values[QString("price")]; + values[QString("price")] = value; } diff --git a/sources/extsysmon/extquotes.h b/sources/extsysmon/extquotes.h index 7380c80..1dea918 100644 --- a/sources/extsysmon/extquotes.h +++ b/sources/extsysmon/extquotes.h @@ -21,7 +21,7 @@ #include #include -#define YAHOO_URL "https://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.quotes where symbol in (\"$TICKER\")&env=store://datatables.org/alltableswithkeys" +#define YAHOO_URL "https://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.quotes where symbol=\"$TICKER\"&env=store://datatables.org/alltableswithkeys&format=json" class QNetworkReply; diff --git a/sources/extsysmon/extscript.cpp b/sources/extsysmon/extscript.cpp index 7e63f02..69577eb 100644 --- a/sources/extsysmon/extscript.cpp +++ b/sources/extsysmon/extscript.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -392,7 +393,11 @@ void ExtScript::readJsonFilters() QString jsonText = jsonFile.readAll(); jsonFile.close(); - QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonText.toUtf8()); + QJsonParseError error; + QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonText.toUtf8(), &error); + if (debug) qDebug() << PDEBUG << ":" << "Json parse error" << error.errorString(); + if (error.error != QJsonParseError::NoError) + return; jsonFilters = jsonDoc.toVariant().toMap(); if (debug) qDebug() << PDEBUG << ":" << "Filters" << jsonFilters;