diff --git a/sources/awesome-widget/package/contents/config/main.xml b/sources/awesome-widget/package/contents/config/main.xml
index 127a5e0..c3f6a13 100644
--- a/sources/awesome-widget/package/contents/config/main.xml
+++ b/sources/awesome-widget/package/contents/config/main.xml
@@ -50,6 +50,9 @@
true
+
+ false
+
diff --git a/sources/awesome-widget/package/contents/ui/advanced.qml b/sources/awesome-widget/package/contents/ui/advanced.qml
index 1292129..a3096d0 100644
--- a/sources/awesome-widget/package/contents/ui/advanced.qml
+++ b/sources/awesome-widget/package/contents/ui/advanced.qml
@@ -47,6 +47,7 @@ Item {
property alias cfg_acOffline: acOffline.text
property alias cfg_checkUpdates: updates.checked
property alias cfg_translateStrings: translate.checked
+ property alias cfg_wrapText: wordWrap.checked
Column {
@@ -120,6 +121,20 @@ Item {
}
}
+ Row {
+ height: implicitHeight
+ width: parent.width
+ QtControls.Label {
+ height: parent.heigth
+ width: parent.width * 2 / 5
+ }
+ QtControls.CheckBox {
+ id: wordWrap
+ width: parent.width * 3 / 5
+ text: i18n("Enable word wrap")
+ }
+ }
+
Row {
height: implicitHeight
width: parent.width
diff --git a/sources/awesome-widget/package/contents/ui/main.qml b/sources/awesome-widget/package/contents/ui/main.qml
index a105ece..15257ed 100644
--- a/sources/awesome-widget/package/contents/ui/main.qml
+++ b/sources/awesome-widget/package/contents/ui/main.qml
@@ -17,6 +17,7 @@
import QtQuick 2.4
import QtQuick.Controls 1.3 as QtControls
+import QtQuick.Dialogs 1.2 as QtDialogs
import QtQuick.Layouts 1.1
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.core 2.0 as PlasmaCore
@@ -37,13 +38,6 @@ Item {
}
property bool debug: awActions.isDebugEnabled()
- property variant settings: {
- "customTime": plasmoid.configuration.customTime,
- "customUptime": plasmoid.configuration.customUptime,
- "tempUnits": plasmoid.configuration.tempUnits,
- "acOnline": plasmoid.configuration.acOnline,
- "acOffline": plasmoid.configuration.acOffline
- }
property variant tooltipSettings: {
"tooltipNumber": plasmoid.configuration.tooltipNumber,
"useTooltipBackground": plasmoid.configuration.useTooltipBackground,
@@ -63,8 +57,10 @@ Item {
"upTooltipColor": plasmoid.configuration.upTooltipColor,
"batTooltipColor": plasmoid.configuration.batTooltipColor,
"batInTooltipColor": plasmoid.configuration.batInTooltipColor,
- // additinal field to parse AC status
- "acOnline": plasmoid.configuration.acOnline
+ // additional field to parse AC status
+ "acOnline": plasmoid.configuration.acOnline,
+ // additional field to send notifications
+ "notify": plasmoid.configuration.notify
}
signal dropSource(string sourceName)
@@ -93,7 +89,7 @@ Item {
onNewData: {
if (debug) console.debug("Update source", sourceName)
- awKeys.dataUpdateReceived(sourceName, data, settings)
+ awKeys.dataUpdateReceived(sourceName, data)
}
onSourceAdded: {
@@ -110,8 +106,7 @@ Item {
onNewData: {
if (debug) console.debug("Update source", sourceName)
-// extsysmonDE.interval = plasmoid.configuration.interval
- awKeys.dataUpdateReceived(sourceName, data, settings)
+ awKeys.dataUpdateReceived(sourceName, data)
}
}
@@ -123,7 +118,7 @@ Item {
onNewData: {
if (debug) console.debug("Update source", sourceName)
- awKeys.dataUpdateReceived(sourceName, data, settings)
+ awKeys.dataUpdateReceived(sourceName, data)
}
}
@@ -134,7 +129,7 @@ Item {
anchors.fill: parent
renderType: Text.NativeRendering
textFormat: Text.RichText
- wrapMode: Text.NoWrap
+ wrapMode: plasmoid.configuration.wrapText ? Text.WordWrap : Text.NoWrap
horizontalAlignment: general.align[plasmoid.configuration.textAlign]
verticalAlignment: Text.AlignVCenter
@@ -157,6 +152,27 @@ Item {
}
}
+ QtDialogs.Dialog {
+ id: tagSelector
+ title: i18n("Select tag")
+
+ QtControls.ComboBox {
+ id: tagSelectorBox
+ width: parent.width
+ editable: true
+ }
+
+ onAccepted: {
+ var tag = tagSelectorBox.editText
+ var message = i18n("Tag: %1", tag)
+ message += "
"
+ message += i18n("Value: %1", awKeys.valueByKey(tag))
+ message += "
"
+ message += i18n("Info: %1", awKeys.infoByKey(tag))
+ awActions.sendNotification("tag", message)
+ }
+ }
+
Component.onCompleted: {
if (debug) console.debug()
@@ -221,10 +237,15 @@ Item {
// init submodule
awKeys.initKeys(plasmoid.configuration.text)
- awKeys.initTooltip(tooltipSettings)
- awKeys.setPopupEnabled(plasmoid.configuration.notify)
- awKeys.setTranslateStrings(plasmoid.configuration.translateStrings)
+ awKeys.initDataAggregator(tooltipSettings)
awKeys.setWrapNewLines(plasmoid.configuration.wrapNewLines)
+ // configure aggregator
+ awKeys.setAggregatorProperty("acOffline", plasmoid.configuration.acOffline)
+ awKeys.setAggregatorProperty("acOnline", plasmoid.configuration.acOnline)
+ awKeys.setAggregatorProperty("customTime", plasmoid.configuration.customTime)
+ awKeys.setAggregatorProperty("customUptime", plasmoid.configuration.customUptime)
+ awKeys.setAggregatorProperty("tempUnits", plasmoid.configuration.tempUnits)
+ awKeys.setAggregatorProperty("translate", plasmoid.configuration.translateStrings)
}
function action_checkUpdates() {
@@ -242,6 +263,7 @@ Item {
function action_requestKey() {
if (debug) console.debug()
- return awKeys.graphicalValueByKey()
+ tagSelectorBox.model = awKeys.dictKeys(true)
+ return tagSelector.open()
}
}
diff --git a/sources/awesome-widget/package/contents/ui/widget.qml b/sources/awesome-widget/package/contents/ui/widget.qml
index 91b73c0..198eb29 100644
--- a/sources/awesome-widget/package/contents/ui/widget.qml
+++ b/sources/awesome-widget/package/contents/ui/widget.qml
@@ -38,33 +38,6 @@ Item {
implicitHeight: pageColumn.implicitHeight
property bool debug: awActions.isDebugEnabled()
- property variant settings: {
- "customTime": plasmoid.configuration.customTime,
- "customUptime": plasmoid.configuration.customUptime,
- "tempUnits": plasmoid.configuration.tempUnits,
- "acOnline": plasmoid.configuration.acOnline,
- "acOffline": plasmoid.configuration.acOffline
- }
- property variant tooltipSettings: {
- "tooltipNumber": plasmoid.configuration.tooltipNumber,
- "useTooltipBackground": plasmoid.configuration.useTooltipBackground,
- "tooltipBackgroung": plasmoid.configuration.tooltipBackgroung,
- "cpuTooltip": plasmoid.configuration.cpuTooltip,
- "cpuclTooltip": plasmoid.configuration.cpuclTooltip,
- "memTooltip": plasmoid.configuration.memTooltip,
- "swapTooltip": plasmoid.configuration.swapTooltip,
- "downTooltip": plasmoid.configuration.downTooltip,
- "upTooltip": plasmoid.configuration.downTooltip,
- "batTooltip": plasmoid.configuration.batTooltip,
- "cpuTooltipColor": plasmoid.configuration.cpuTooltipColor,
- "cpuclTooltipColor": plasmoid.configuration.cpuclTooltipColor,
- "memTooltipColor": plasmoid.configuration.memTooltipColor,
- "swapTooltipColor": plasmoid.configuration.swapTooltipColor,
- "downTooltipColor": plasmoid.configuration.downTooltipColor,
- "upTooltipColor": plasmoid.configuration.upTooltipColor,
- "batTooltipColor": plasmoid.configuration.batTooltipColor,
- "batInTooltipColor": plasmoid.configuration.batInTooltipColor
- }
property alias cfg_text: textPattern.text
@@ -362,7 +335,7 @@ Item {
onNewData: {
if (debug) console.debug("Update source", sourceName)
- awKeys.dataUpdateReceived(sourceName, data, settings)
+ awKeys.dataUpdateReceived(sourceName, data)
}
}
@@ -374,7 +347,7 @@ Item {
onNewData: {
if (debug) console.debug("Update source", sourceName)
- awKeys.dataUpdateReceived(sourceName, data, settings)
+ awKeys.dataUpdateReceived(sourceName, data)
}
}
@@ -386,16 +359,24 @@ Item {
onNewData: {
if (debug) console.debug("Update source", sourceName)
- awKeys.dataUpdateReceived(sourceName, data, settings)
+ awKeys.dataUpdateReceived(sourceName, data)
}
}
Component.onCompleted: {
if (debug) console.debug()
+ // drop "update" source which does not required by this page
+ extsysmonDE.disconnectSource("update")
awKeys.dropSourceFromDataengine.connect(dropSource)
// init submodule
awKeys.initKeys(plasmoid.configuration.text)
+ awKeys.setAggregatorProperty("acOffline", plasmoid.configuration.acOffline)
+ awKeys.setAggregatorProperty("acOnline", plasmoid.configuration.acOnline)
+ awKeys.setAggregatorProperty("customTime", plasmoid.configuration.customTime)
+ awKeys.setAggregatorProperty("customUptime", plasmoid.configuration.customUptime)
+ awKeys.setAggregatorProperty("tempUnits", plasmoid.configuration.tempUnits)
+ awKeys.setAggregatorProperty("translate", plasmoid.configuration.translateStrings)
}
onDropSource: {
diff --git a/sources/awesome-widget/plugin/awdataaggregator.cpp b/sources/awesome-widget/plugin/awdataaggregator.cpp
index 2bb10dc..e517391 100644
--- a/sources/awesome-widget/plugin/awdataaggregator.cpp
+++ b/sources/awesome-widget/plugin/awdataaggregator.cpp
@@ -20,25 +20,69 @@
#include
#include
+
#include
#include "awactions.h"
#include "awdebug.h"
-AWDataAggregator::AWDataAggregator(QObject *parent, QVariantMap settings)
- : QObject(parent),
- configuration(qvariant_cast(settings))
+AWDataAggregator::AWDataAggregator(QObject *parent)
+ : QObject(parent)
{
qCDebug(LOG_AW);
- toolTipScene = new QGraphicsScene(nullptr);
- toolTipView = new QGraphicsView(toolTipScene);
- toolTipView->setStyleSheet(QString("background: transparent"));
- toolTipView->setContentsMargins(0, 0, 0, 0);
- toolTipView->setFrameShape(QFrame::NoFrame);
- toolTipView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- toolTipView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ initScene();
+
+ connect(this, SIGNAL(updateData(QHash)),
+ this, SLOT(dataUpdate(QHash)));
+}
+
+
+AWDataAggregator::~AWDataAggregator()
+{
+ qCDebug(LOG_AW);
+
+ delete toolTipScene;
+}
+
+
+QList AWDataAggregator::getData(const QString key) const
+{
+ qCDebug(LOG_AW);
+ qCDebug(LOG_AW) << "Key" << key;
+
+ return data[QString("%1Tooltip").arg(key)];
+}
+
+
+QSize AWDataAggregator::getTooltipSize() const
+{
+ qCDebug(LOG_AW);
+
+ return size;
+}
+
+
+QString AWDataAggregator::htmlImage(const QPixmap source) const
+{
+ qCDebug(LOG_AW);
+
+ QByteArray byteArray;
+ QBuffer buffer(&byteArray);
+ source.save(&buffer, "PNG");
+
+ return byteArray.isEmpty() ? QString() :
+ QString("
").arg(QString(byteArray.toBase64()));
+}
+
+
+void AWDataAggregator::setParameters(QVariantMap settings)
+{
+ qCDebug(LOG_AW);
+ qCDebug(LOG_AW) << "Settings" << settings;
+
+ configuration = qvariant_cast(settings);
enablePopup = configuration[QString("notify")].toBool();
@@ -67,66 +111,10 @@ AWDataAggregator::AWDataAggregator(QObject *parent, QVariantMap settings)
if (configuration[QString("upTooltip")].toBool()) requiredKeys.append(QString("upTooltip"));
if (configuration[QString("batTooltip")].toBool()) requiredKeys.append(QString("batTooltip"));
- connect(this, SIGNAL(updateData(QHash)),
- this, SLOT(dataUpdate(QHash)));
-}
-
-
-AWDataAggregator::~AWDataAggregator()
-{
- qCDebug(LOG_AW);
-
- delete toolTipScene;
-}
-
-
-void AWDataAggregator::dataUpdate(QHash values)
-{
- qCDebug(LOG_AW);
-
- // battery update requires info is AC online or not
- setData(values[QString("ac")] == configuration[QString("acOnline")],
- QString("batTooltip"), values[QString("bat")].toFloat());
- // usual case
- setData(QString("cpuTooltip"), values[QString("cpu")].toFloat(), 90.0);
- setData(QString("cpuclTooltip"), values[QString("cpucl")].toFloat());
- setData(QString("memTooltip"), values[QString("mem")].toFloat(), 90.0);
- setData(QString("swapTooltip"), values[QString("swap")].toFloat(), 0.0);
- setData(QString("downTooltip"), values[QString("downkb")].toFloat());
- setData(QString("upTooltip"), values[QString("upkb")].toFloat());
- // additional check for network device
- [this](const QString value) {
- checkValue(QString("netdev"), currentNetworkDevice, value);
- currentNetworkDevice = value;
- }(values[QString("netdev")]);
- // additional check for GPU load
- [this](const float value) {
- checkValue(QString("gpu"), value, 90.0);
- currentGPULoad = value;
- }(values[QString("gpu")].toFloat());
-
- emit(toolTipPainted(htmlImage(tooltipImage())));
-}
-
-
-QSize AWDataAggregator::getTooltipSize() const
-{
- qCDebug(LOG_AW);
-
- return size;
-}
-
-
-QString AWDataAggregator::htmlImage(const QPixmap source)
-{
- qCDebug(LOG_AW);
-
- QByteArray byteArray;
- QBuffer buffer(&byteArray);
- source.save(&buffer, "PNG");
-
- return byteArray.isEmpty() ? QString() :
- QString("
").arg(QString(byteArray.toBase64()));
+ // background
+ toolTipScene->setBackgroundBrush(configuration[QString("useTooltipBackground")].toBool() ?
+ QBrush(QColor(configuration[QString("tooltipBackground")].toString())) :
+ QBrush(Qt::NoBrush));
}
@@ -138,10 +126,6 @@ QPixmap AWDataAggregator::tooltipImage()
// create image
toolTipScene->clear();
QPen pen = QPen();
- // background
- toolTipScene->setBackgroundBrush(configuration[QString("useTooltipBackground")].toBool() ?
- QBrush(QColor(configuration[QString("tooltipBackground")].toString())) :
- QBrush(Qt::NoBrush));
bool down = false;
foreach(QString key, requiredKeys) {
// create frame
@@ -174,6 +158,35 @@ QPixmap AWDataAggregator::tooltipImage()
}
+void AWDataAggregator::dataUpdate(QHash values)
+{
+ qCDebug(LOG_AW);
+
+ // battery update requires info is AC online or not
+ setData(values[QString("ac")] == configuration[QString("acOnline")],
+ QString("batTooltip"), values[QString("bat")].toFloat());
+ // usual case
+ setData(QString("cpuTooltip"), values[QString("cpu")].toFloat(), 90.0);
+ setData(QString("cpuclTooltip"), values[QString("cpucl")].toFloat());
+ setData(QString("memTooltip"), values[QString("mem")].toFloat(), 90.0);
+ setData(QString("swapTooltip"), values[QString("swap")].toFloat(), 0.0);
+ setData(QString("downTooltip"), values[QString("downkb")].toFloat());
+ setData(QString("upTooltip"), values[QString("upkb")].toFloat());
+ // additional check for network device
+ [this](const QString value) {
+ checkValue(QString("netdev"), currentNetworkDevice, value);
+ currentNetworkDevice = value;
+ }(values[QString("netdev")]);
+ // additional check for GPU load
+ [this](const float value) {
+ checkValue(QString("gpu"), value, 90.0);
+ currentGPULoad = value;
+ }(values[QString("gpu")].toFloat());
+
+ emit(toolTipPainted(htmlImage(tooltipImage())));
+}
+
+
void AWDataAggregator::checkValue(const QString source, const float value, const float extremum) const
{
qCDebug(LOG_AW);
@@ -181,8 +194,13 @@ void AWDataAggregator::checkValue(const QString source, const float value, const
qCDebug(LOG_AW) << "Value" << value;
qCDebug(LOG_AW) << "Called with extremum" << extremum;
- if ((enablePopup) && (value > extremum) && (data[source].last() < extremum))
- return AWActions::sendNotification(QString("event"), notificationText(source, value));
+ if (value >= 0.0) {
+ if ((enablePopup) && (value > extremum) && (data[source].last() < extremum))
+ return AWActions::sendNotification(QString("event"), notificationText(source, value));
+ } else {
+ if ((enablePopup) && (value < extremum) && (data[source].last() > extremum))
+ return AWActions::sendNotification(QString("event"), notificationText(source, value));
+ }
}
@@ -198,6 +216,20 @@ void AWDataAggregator::checkValue(const QString source, const QString current, c
}
+void AWDataAggregator::initScene()
+{
+ qCDebug(LOG_AW);
+
+ toolTipScene = new QGraphicsScene(nullptr);
+ toolTipView = new QGraphicsView(toolTipScene);
+ toolTipView->setStyleSheet(QString("background: transparent"));
+ toolTipView->setContentsMargins(0, 0, 0, 0);
+ toolTipView->setFrameShape(QFrame::NoFrame);
+ toolTipView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ toolTipView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+}
+
+
QString AWDataAggregator::notificationText(const QString source, const float value) const
{
qCDebug(LOG_AW);
diff --git a/sources/awesome-widget/plugin/awdataaggregator.h b/sources/awesome-widget/plugin/awdataaggregator.h
index fa629fe..96a2214 100644
--- a/sources/awesome-widget/plugin/awdataaggregator.h
+++ b/sources/awesome-widget/plugin/awdataaggregator.h
@@ -32,10 +32,12 @@ class AWDataAggregator : public QObject
Q_OBJECT
public:
- explicit AWDataAggregator(QObject *parent = nullptr, QVariantMap settings = QVariantMap());
+ explicit AWDataAggregator(QObject *parent = nullptr);
virtual ~AWDataAggregator();
+ QList getData(const QString key) const;
QSize getTooltipSize() const;
- QString htmlImage(const QPixmap source);
+ QString htmlImage(const QPixmap source) const;
+ void setParameters(QVariantMap settings);
QPixmap tooltipImage();
signals:
@@ -50,7 +52,8 @@ private:
QGraphicsScene *toolTipScene = nullptr;
QGraphicsView *toolTipView = nullptr;
void checkValue(const QString source, const float value, const float extremum) const;
- void checkValue(const QString source, const QString current, const QString received) const;
+ void checkValue(const QString source, const QString current, const QString received) const;
+ void initScene();
QString notificationText(const QString source, const float value) const;
QString notificationText(const QString source, const QString value) const;
void setData(const QString source, float value, const float extremum = -1.0);
@@ -60,7 +63,7 @@ private:
int counts = 0;
QVariantHash configuration;
float currentGPULoad = 0.0;
- QString currentNetworkDevice;
+ QString currentNetworkDevice = QString("lo");
QHash boundaries;
QHash> data;
bool enablePopup = false;
diff --git a/sources/awesome-widget/plugin/awkeys.cpp b/sources/awesome-widget/plugin/awkeys.cpp
index d32e104..53fbb28 100644
--- a/sources/awesome-widget/plugin/awkeys.cpp
+++ b/sources/awesome-widget/plugin/awkeys.cpp
@@ -46,14 +46,11 @@ AWKeys::AWKeys(QObject *parent)
qSetMessagePattern(LOG_FORMAT);
aggregator = new AWKeysAggregator(this);
-
- // backend
- graphicalItems = new ExtItemAggregator(nullptr, QString("desktops"));
- extQuotes = new ExtItemAggregator(nullptr, QString("quotes"));
- extScripts = new ExtItemAggregator(nullptr, QString("scripts"));
- extUpgrade = new ExtItemAggregator(nullptr, QString("upgrade"));
- extWeather = new ExtItemAggregator(nullptr, QString("weather"));
+ dataAggregator = new AWDataAggregator(this);
connect(this, SIGNAL(needToBeUpdated()), this, SLOT(dataUpdate()));
+ // transfer signal from AWDataAggregator object to QML ui
+ connect(dataAggregator, SIGNAL(toolTipPainted(QString)),
+ this, SIGNAL(needToolTipToBeUpdated(QString)));
}
@@ -61,14 +58,14 @@ AWKeys::~AWKeys()
{
qCDebug(LOG_AW);
- if (dataAggregator != nullptr) delete dataAggregator;
+ if (graphicalItems != nullptr) delete graphicalItems;
+ if (extQuotes != nullptr) delete extQuotes;
+ if (extScripts != nullptr) delete extScripts;
+ if (extUpgrade != nullptr) delete extUpgrade;
+ if (extWeather != nullptr) delete extWeather;
delete aggregator;
- delete graphicalItems;
- delete extQuotes;
- delete extScripts;
- delete extUpgrade;
- delete extWeather;
+ delete dataAggregator;
}
@@ -77,16 +74,7 @@ void AWKeys::initDataAggregator(const QVariantMap tooltipParams)
qCDebug(LOG_AW);
qCDebug(LOG_AW) << "Tooltip parameters" << tooltipParams;
- if (dataAggregator != nullptr) {
- disconnect(dataAggregator, SIGNAL(toolTipPainted(QString)),
- this, SIGNAL(needToolTipToBeUpdated(QString)));
- delete dataAggregator;
- }
-
- dataAggregator = new AWDataAggregator(this, tooltipParams);
- // transfer signal from AWDataAggregator object to QML ui
- connect(dataAggregator, SIGNAL(toolTipPainted(QString)),
- this, SIGNAL(needToolTipToBeUpdated(QString)));
+ dataAggregator->setParameters(tooltipParams);
}
@@ -134,7 +122,6 @@ void AWKeys::setWrapNewLines(const bool wrap)
QSize AWKeys::toolTipSize() const
{
qCDebug(LOG_AW);
- if (dataAggregator == nullptr) return QSize();
return dataAggregator->getTooltipSize();
}
@@ -418,7 +405,7 @@ void AWKeys::dataUpdate()
calculateValues();
calculateLambdas();
emit(needTextToBeUpdated(parsePattern()));
- if (dataAggregator != nullptr) emit(dataAggregator->updateData(values));
+ emit(dataAggregator->updateData(values));
}
@@ -469,6 +456,20 @@ void AWKeys::reinitKeys()
{
qCDebug(LOG_AW);
+ // renew extensions
+ // delete them if any
+ if (graphicalItems != nullptr) delete graphicalItems;
+ if (extQuotes != nullptr) delete extQuotes;
+ if (extScripts != nullptr) delete extScripts;
+ if (extUpgrade != nullptr) delete extUpgrade;
+ if (extWeather != nullptr) delete extWeather;
+ // create
+ graphicalItems = new ExtItemAggregator(nullptr, QString("desktops"));
+ extQuotes = new ExtItemAggregator(nullptr, QString("quotes"));
+ extScripts = new ExtItemAggregator(nullptr, QString("scripts"));
+ extUpgrade = new ExtItemAggregator(nullptr, QString("upgrade"));
+ extWeather = new ExtItemAggregator(nullptr, QString("weather"));
+
// init
QStringList allKeys = dictKeys();
@@ -678,9 +679,18 @@ QString AWKeys::parsePattern() const
}(key, values[key]));
// bars
- foreach(QString bar, foundBars)
- parsed.replace(QString("$%1").arg(bar),
- graphicalItems->itemByTag(bar)->image(valueByKey(bar).toFloat()));
+ foreach(QString bar, foundBars) {
+ GraphicalItem *item = graphicalItems->itemByTag(bar);
+ QString key = bar;
+ key.remove(QRegExp(QString("^bar[0-9]{1,}")));
+ if (item->type() == GraphicalItem::Graph)
+ parsed.replace(QString("$%1").arg(bar), item->image([](const QList data) {
+ return QVariant::fromValue>(data);
+ }(dataAggregator->getData(key))));
+ else
+ parsed.replace(QString("$%1").arg(bar), item->image(values[key]));
+ }
+
// prepare strings
parsed.replace(QString("$\\$\\"), QString("$$"));
diff --git a/sources/awesome-widget/plugin/awkeys.h b/sources/awesome-widget/plugin/awkeys.h
index e75130e..57ed163 100644
--- a/sources/awesome-widget/plugin/awkeys.h
+++ b/sources/awesome-widget/plugin/awkeys.h
@@ -82,11 +82,11 @@ private:
AWDataAggregator *dataAggregator = nullptr;
bool enablePopup = false;
bool wrapNewLines = false;
- ExtItemAggregator *graphicalItems;
- ExtItemAggregator *extQuotes;
- ExtItemAggregator *extScripts;
- ExtItemAggregator *extUpgrade;
- ExtItemAggregator *extWeather;
+ ExtItemAggregator *graphicalItems = nullptr;
+ ExtItemAggregator *extQuotes = nullptr;
+ ExtItemAggregator *extScripts = nullptr;
+ ExtItemAggregator *extUpgrade = nullptr;
+ ExtItemAggregator *extWeather = nullptr;
bool lock = false;
int queue = 0;
QString pattern;