diff --git a/sources/extsysmon/extsysmon.cpp b/sources/extsysmon/extsysmon.cpp index 78f3e51..9cf239a 100644 --- a/sources/extsysmon/extsysmon.cpp +++ b/sources/extsysmon/extsysmon.cpp @@ -40,7 +40,7 @@ ExtendedSysMon::ExtendedSysMon(QObject *parent, const QVariantList &args) setMinimumPollingInterval(333); readConfiguration(); - // aggregator init + // init aggregator aggregator = new ExtSysMonAggregator(this, configuration); foreach(QString source, aggregator->sources()) setData(source, aggregator->initialData(source)); diff --git a/sources/extsysmon/sources/quotessource.cpp b/sources/extsysmon/sources/quotessource.cpp index 96e437b..dce42e6 100644 --- a/sources/extsysmon/sources/quotessource.cpp +++ b/sources/extsysmon/sources/quotessource.cpp @@ -46,10 +46,12 @@ QVariant QuotesSource::data(QString source) qCDebug(LOG_ESM); qCDebug(LOG_ESM) << "Source" << source; - if (source.startsWith(QString("quotes/percpricechg"))) - values[source] = extQuotes->itemByTagNumber(index(source))->run(); - QString base = QString(source).remove(QString("quotes/")); - return values[source][base]; + if (source.startsWith(QString("quotes/percpricechg"))) { + QVariantHash data = extQuotes->itemByTagNumber(index(source))->run(); + foreach(QString key, data.keys()) values[key] = data[key]; + } + QString key = QString(source).remove(QString("quotes/")); + return values[key]; } @@ -64,55 +66,55 @@ QVariantMap QuotesSource::initialData(QString source) const data[QString("min")] = 0.0; data[QString("max")] = 0.0; data[QString("name")] = QString("Absolute ask changes for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq()); - data[QString("type")] = QString("float"); + data[QString("type")] = QString("double"); data[QString("units")] = QString(""); } else if (source.startsWith(QString("quotes/ask"))) { data[QString("min")] = 0.0; data[QString("max")] = 0.0; data[QString("name")] = QString("Ask for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq()); - data[QString("type")] = QString("float"); + data[QString("type")] = QString("double"); data[QString("units")] = QString(""); } else if (source.startsWith(QString("quotes/percaskchg"))) { data[QString("min")] = -100.0; data[QString("max")] = 100.0; data[QString("name")] = QString("Ask changes for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq()); - data[QString("type")] = QString("float"); + data[QString("type")] = QString("double"); data[QString("units")] = QString(""); } else if (source.startsWith(QString("quotes/bidchg"))) { data[QString("min")] = 0.0; data[QString("max")] = 0.0; data[QString("name")] = QString("Absolute bid changes for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq()); - data[QString("type")] = QString("float"); + data[QString("type")] = QString("double"); data[QString("units")] = QString(""); } else if (source.startsWith(QString("quotes/bid"))) { data[QString("min")] = 0.0; data[QString("max")] = 0.0; data[QString("name")] = QString("Bid for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq()); - data[QString("type")] = QString("float"); + data[QString("type")] = QString("double"); data[QString("units")] = QString(""); } else if (source.startsWith(QString("quotes/percbidchg"))) { data[QString("min")] = -100.0; data[QString("max")] = 100.0; data[QString("name")] = QString("Bid changes for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq()); - data[QString("type")] = QString("float"); + data[QString("type")] = QString("double"); data[QString("units")] = QString(""); } else if (source.startsWith(QString("quotes/pricechg"))) { data[QString("min")] = 0.0; data[QString("max")] = 0.0; data[QString("name")] = QString("Absolute prie changes for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq()); - data[QString("type")] = QString("float"); + data[QString("type")] = QString("double"); data[QString("units")] = QString(""); } else if (source.startsWith(QString("quotes/price"))) { data[QString("min")] = 0.0; data[QString("max")] = 0.0; data[QString("name")] = QString("Price for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq()); - data[QString("type")] = QString("float"); + data[QString("type")] = QString("double"); data[QString("units")] = QString(""); } else if (source.startsWith(QString("quotes/percpricechg"))) { data[QString("min")] = -100.0; data[QString("max")] = 100.0; data[QString("name")] = QString("Price changes for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq()); - data[QString("type")] = QString("float"); + data[QString("type")] = QString("double"); data[QString("units")] = QString(""); } diff --git a/sources/extsysmon/sources/quotessource.h b/sources/extsysmon/sources/quotessource.h index e2161ae..08d8706 100644 --- a/sources/extsysmon/sources/quotessource.h +++ b/sources/extsysmon/sources/quotessource.h @@ -41,7 +41,7 @@ private: // configuration and values ExtItemAggregator *extQuotes; QStringList m_sources; - QHash values; + QVariantHash values; }; diff --git a/sources/extsysmon/sources/weathersource.cpp b/sources/extsysmon/sources/weathersource.cpp index 8d80a9a..91e30be 100644 --- a/sources/extsysmon/sources/weathersource.cpp +++ b/sources/extsysmon/sources/weathersource.cpp @@ -46,10 +46,12 @@ QVariant WeatherSource::data(QString source) qCDebug(LOG_ESM); qCDebug(LOG_ESM) << "Source" << source; - if (source.startsWith(QString("weather/weatherId"))) - values[source] = extWeather->itemByTagNumber(index(source))->run(); - QString base = QString(source).remove(QString("weather/")); - return values[source][base]; + if (source.startsWith(QString("weather/weatherId"))) { + QVariantHash data = extWeather->itemByTagNumber(index(source))->run(); + foreach(QString key, data.keys()) values[key] = data[key]; + } + QString key = QString(source).remove(QString("weather/")); + return values[key]; } diff --git a/sources/extsysmon/sources/weathersource.h b/sources/extsysmon/sources/weathersource.h index 2f6e4aa..c9817d1 100644 --- a/sources/extsysmon/sources/weathersource.h +++ b/sources/extsysmon/sources/weathersource.h @@ -41,7 +41,7 @@ private: // configuration and values ExtItemAggregator *extWeather; QStringList m_sources; - QHash values; + QVariantHash values; };