From 052d8a034c6a33bfba4c1d8a7db57670c8dd89c1 Mon Sep 17 00:00:00 2001 From: Evgeniy Alekseev Date: Tue, 26 Jul 2016 15:11:52 +0300 Subject: [PATCH] add formatters reinit (fix #102) --- sources/awesome-widget/plugin/awkeys.cpp | 2 +- .../awesome-widget/plugin/awkeysaggregator.cpp | 17 +++++++++++++---- .../awesome-widget/plugin/awkeysaggregator.h | 1 + 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/sources/awesome-widget/plugin/awkeys.cpp b/sources/awesome-widget/plugin/awkeys.cpp index 0ccb090..750bcf2 100644 --- a/sources/awesome-widget/plugin/awkeys.cpp +++ b/sources/awesome-widget/plugin/awkeys.cpp @@ -105,10 +105,10 @@ void AWKeys::initKeys(const QString currentPattern, const int interval, m_threadPool->setMaxThreadCount(limit == 0 ? QThread::idealThreadCount() : limit); // child objects + aggregator->initFormatters(); keyOperator->setPattern(currentPattern); keyOperator->updateCache(); dataEngineAggregator->clear(); - dataEngineAggregator->initDataEngines(interval); // timer diff --git a/sources/awesome-widget/plugin/awkeysaggregator.cpp b/sources/awesome-widget/plugin/awkeysaggregator.cpp index 9fdb952..3f4811a 100644 --- a/sources/awesome-widget/plugin/awkeysaggregator.cpp +++ b/sources/awesome-widget/plugin/awkeysaggregator.cpp @@ -48,8 +48,6 @@ AWKeysAggregator::AWKeysAggregator(QObject *parent) m_formatter[QString("swap")] = FormatterType::Float; m_formatter[QString("swaptotmb")] = FormatterType::MemMBFormat; m_formatter[QString("swaptotgb")] = FormatterType::MemGBFormat; - - m_customFormatters = new AWFormatterHelper(nullptr); } @@ -61,6 +59,14 @@ AWKeysAggregator::~AWKeysAggregator() } +void AWKeysAggregator::initFormatters() +{ + if (m_customFormatters) + delete m_customFormatters; + m_customFormatters = new AWFormatterHelper(nullptr); +} + + QString AWKeysAggregator::formatter(const QVariant &data, const QString &key) const { @@ -170,7 +176,8 @@ QString AWKeysAggregator::formatter(const QVariant &data, output = data.toString(); break; case FormatterType::Custom: - output = m_customFormatters->convert(data, key); + if (m_customFormatters) + output = m_customFormatters->convert(data, key); break; } @@ -574,7 +581,9 @@ QStringList AWKeysAggregator::registerSource(const QString &source, QStringList foundKeys = keysFromSource(source); // rewrite formatters for custom ones - QStringList customFormattersKeys = m_customFormatters->definedFormatters(); + QStringList customFormattersKeys; + if (m_customFormatters) + customFormattersKeys = m_customFormatters->definedFormatters(); qCInfo(LOG_AW) << "Looking for fprmatters" << foundKeys << "in" << customFormattersKeys; for (auto key : foundKeys) { diff --git a/sources/awesome-widget/plugin/awkeysaggregator.h b/sources/awesome-widget/plugin/awkeysaggregator.h index 81ad9ca..92808ef 100644 --- a/sources/awesome-widget/plugin/awkeysaggregator.h +++ b/sources/awesome-widget/plugin/awkeysaggregator.h @@ -69,6 +69,7 @@ class AWKeysAggregator : public QObject public: explicit AWKeysAggregator(QObject *parent = nullptr); virtual ~AWKeysAggregator(); + void initFormatters(); // get methods QString formatter(const QVariant &data, const QString &key) const; QStringList keysFromSource(const QString &source) const;