From eac13198892449c3738bb38fe426a476ea6e943d Mon Sep 17 00:00:00 2001 From: arcan1s Date: Tue, 3 Feb 2015 08:33:46 +0300 Subject: [PATCH] some work on tooltip --- .../package/contents/ui/main.qml | 2 +- sources/awesome-widget-kf5/plugin/awkeys.cpp | 30 +++++------ sources/awesome-widget-kf5/plugin/awkeys.h | 3 +- .../awesome-widget-kf5/plugin/awtooltip.cpp | 54 ++++++++++--------- sources/awesome-widget-kf5/plugin/awtooltip.h | 2 +- ...let-org.kde.plasma.awesome-widget.notifyrc | 5 ++ 6 files changed, 51 insertions(+), 45 deletions(-) diff --git a/sources/awesome-widget-kf5/package/contents/ui/main.qml b/sources/awesome-widget-kf5/package/contents/ui/main.qml index 48929b5..648c388 100644 --- a/sources/awesome-widget-kf5/package/contents/ui/main.qml +++ b/sources/awesome-widget-kf5/package/contents/ui/main.qml @@ -151,7 +151,7 @@ Item { text.text = AWKeys.parsePattern(plasmoid.configuration.text) // FIXME change to pixmap/image/etc - tooltip.mainText = AWKeys.toolTipImage() + tooltip.image = AWKeys.toolTipImage() // update geometry text.update() height = text.contentHeight diff --git a/sources/awesome-widget-kf5/plugin/awkeys.cpp b/sources/awesome-widget-kf5/plugin/awkeys.cpp index b183ac7..cf45df8 100644 --- a/sources/awesome-widget-kf5/plugin/awkeys.cpp +++ b/sources/awesome-widget-kf5/plugin/awkeys.cpp @@ -19,7 +19,7 @@ #include -#include +// #include #include #include #include @@ -141,17 +141,17 @@ QString AWKeys::parsePattern(const QString pattern) } -QString AWKeys::toolTipImage() +QPixmap AWKeys::toolTipImage() { if(debug) qDebug() << PDEBUG; - if (!ready) return QString(); + if (!ready) return QPixmap(); - QPixmap tooltip = toolTip->image(); - QByteArray byteArray; - QBuffer buffer(&byteArray); - tooltip.save(&buffer, "PNG"); - return QString("").arg(QString(byteArray.toBase64())); + return toolTip->image(); +// QByteArray byteArray; +// QBuffer buffer(&byteArray); +// tooltip.save(&buffer, "PNG"); +// return QString("").arg(QString(byteArray.toBase64())); } @@ -440,13 +440,13 @@ bool AWKeys::setDataBySource(const QString sourceName, values[QString("ac")] = params[QString("acOffline")].toString(); } else { values[data.keys()[i]] = QString("%1").arg(data[data.keys()[i]].toFloat(), 3, 'f', 0); - toolTip->setData(QString("bat"), data[data.keys()[i]].toFloat(), data[QString("ac")].toBool()); + toolTip->setData(QString("batTooltip"), data[data.keys()[i]].toFloat(), data[QString("ac")].toBool()); } } } else if (sourceName == QString("cpu/system/TotalLoad")) { // cpu values[QString("cpu")] = QString("%1").arg(data[QString("value")].toFloat(), 5, 'f', 1); - toolTip->setData(QString("cpu"), data[QString("value")].toFloat()); + toolTip->setData(QString("cpuTooltip"), data[QString("value")].toFloat()); } else if (sourceName.contains(cpuRegExp)) { // cpus QString number = sourceName; @@ -455,7 +455,7 @@ bool AWKeys::setDataBySource(const QString sourceName, } else if (sourceName == QString("cpu/system/AverageClock")) { // cpucl values[QString("cpucl")] = QString("%1").arg(data[QString("value")].toFloat(), 4, 'f', 0); - toolTip->setData(QString("cpucl"), data[QString("value")].toFloat()); + toolTip->setData(QString("cpuclTooltip"), data[QString("value")].toFloat()); } else if (sourceName.contains(cpuclRegExp)) { // cpucls QString number = sourceName; @@ -565,7 +565,7 @@ bool AWKeys::setDataBySource(const QString sourceName, // percentage values[QString("mem")] = QString("%1").arg( 100.0 * values[QString("memmb")].toFloat() / values[QString("memtotmb")].toFloat(), 5, 'f', 1); - toolTip->setData(QString("mem"), values[QString("mem")].toFloat()); + toolTip->setData(QString("memTooltip"), values[QString("mem")].toFloat()); } else if (sourceName == QString("netdev")) { // network device values[QString("netdev")] = data[QString("value")].toString(); @@ -581,7 +581,7 @@ bool AWKeys::setDataBySource(const QString sourceName, } if (device == networkDevice()) { values[QString("down")] = QString("%1").arg(data[QString("value")].toFloat(), 4, 'f', 0); - toolTip->setData(QString("down"), data[QString("value")].toFloat()); + toolTip->setData(QString("downTooltip"), data[QString("value")].toFloat()); } } else if (sourceName.contains(netTransRegExp)) { // upload speed @@ -595,7 +595,7 @@ bool AWKeys::setDataBySource(const QString sourceName, } if (device == networkDevice()) { values[QString("up")] = QString("%1").arg(data[QString("value")].toFloat(), 4, 'f', 0); - toolTip->setData(QString("up"), data[QString("value")].toFloat()); + toolTip->setData(QString("upTooltip"), data[QString("value")].toFloat()); } } else if (sourceName == QString("pkg")) { // package manager @@ -629,7 +629,7 @@ bool AWKeys::setDataBySource(const QString sourceName, // percentage values[QString("swap")] = QString("%1").arg( 100.0 * values[QString("swapmb")].toFloat() / values[QString("swaptotmb")].toFloat(), 5, 'f', 1); - toolTip->setData(QString("swap"), values[QString("swap")].toFloat()); + toolTip->setData(QString("swapTooltip"), values[QString("swap")].toFloat()); } else if (sourceName.contains(tempRegExp)) { // temperature devices if (data[QString("units")].toString() == QString("rpm")) { diff --git a/sources/awesome-widget-kf5/plugin/awkeys.h b/sources/awesome-widget-kf5/plugin/awkeys.h index 22c6ed5..6dea441 100644 --- a/sources/awesome-widget-kf5/plugin/awkeys.h +++ b/sources/awesome-widget-kf5/plugin/awkeys.h @@ -55,8 +55,7 @@ public: const QMap tooltipParams); Q_INVOKABLE bool isDebugEnabled(); Q_INVOKABLE QString parsePattern(const QString pattern); -// Q_INVOKABLE QPixmap toolTipImage(); - Q_INVOKABLE QString toolTipImage(); + Q_INVOKABLE QPixmap toolTipImage(); // keys Q_INVOKABLE bool addDevice(const QString source); Q_INVOKABLE QStringList dictKeys(); diff --git a/sources/awesome-widget-kf5/plugin/awtooltip.cpp b/sources/awesome-widget-kf5/plugin/awtooltip.cpp index 8e5580c..e9f86ec 100644 --- a/sources/awesome-widget-kf5/plugin/awtooltip.cpp +++ b/sources/awesome-widget-kf5/plugin/awtooltip.cpp @@ -19,6 +19,7 @@ #include #include +#include #include @@ -48,21 +49,21 @@ AWToolTip::AWToolTip(QObject *parent, counts += configuration[QString("downTooltip")].toInt(); counts += configuration[QString("batteryTooltip")].toInt(); - boundaries[QString("cpu")] = 100.0; - boundaries[QString("cpucl")] = 4000.0; - boundaries[QString("mem")] = 100.0; - boundaries[QString("swap")] = 100.0; - boundaries[QString("down")] = 1.0; - boundaries[QString("up")] = 1.0; - boundaries[QString("bat")] = 100.0; + boundaries[QString("cpuTooltip")] = 100.0; + boundaries[QString("cpuclTooltip")] = 4000.0; + boundaries[QString("memTooltip")] = 100.0; + boundaries[QString("swapTooltip")] = 100.0; + boundaries[QString("downTooltip")] = 1.0; + boundaries[QString("upTooltip")] = 1.0; + boundaries[QString("batTooltip")] = 100.0; - if (configuration[QString("cpuTooltip")].toBool()) requiredKeys.append(QString("cpu")); - if (configuration[QString("cpuclTooltip")].toBool()) requiredKeys.append(QString("cpucl")); - if (configuration[QString("memTooltip")].toBool()) requiredKeys.append(QString("mem")); - if (configuration[QString("swapTooltip")].toBool()) requiredKeys.append(QString("swap")); - if (configuration[QString("downTooltip")].toBool()) requiredKeys.append(QString("down")); - if (configuration[QString("upTooltip")].toBool()) requiredKeys.append(QString("up")); - if (configuration[QString("batTooltip")].toBool()) requiredKeys.append(QString("bat")); + if (configuration[QString("cpuTooltip")].toBool()) requiredKeys.append(QString("cpuTooltip")); + if (configuration[QString("cpuclTooltip")].toBool()) requiredKeys.append(QString("cpuclTooltip")); + if (configuration[QString("memTooltip")].toBool()) requiredKeys.append(QString("memTooltip")); + if (configuration[QString("swapTooltip")].toBool()) requiredKeys.append(QString("swapTooltip")); + if (configuration[QString("downTooltip")].toBool()) requiredKeys.append(QString("downTooltip")); + if (configuration[QString("upTooltip")].toBool()) requiredKeys.append(QString("upTooltip")); + if (configuration[QString("batTooltip")].toBool()) requiredKeys.append(QString("batTooltip")); } @@ -93,7 +94,7 @@ QPixmap AWToolTip::image() for (int i=0; i(data[requiredKeys[i]].count()); float normY = 100.0 / (1.5 * boundaries[requiredKeys[i]]); - if (requiredKeys[i] == QString("bat")) + if (requiredKeys[i] == QString("batTooltip")) isBattery = true; else isBattery = false; @@ -113,14 +114,14 @@ QPixmap AWToolTip::image() } toolTipScene->addLine(x1, y1, x2, y2, pen); } - if (requiredKeys[i] == QString("down")) down = true; + if (requiredKeys[i] == QString("downTooltip")) down = true; } return toolTipView->grab(); } -void AWToolTip::setData (const QString source, const float value, const bool ac) +void AWToolTip::setData(const QString source, float value, const bool ac) { if (debug) qDebug() << PDEBUG; @@ -128,20 +129,21 @@ void AWToolTip::setData (const QString source, const float value, const bool ac) data[source].append(0.0); else if (data[source].count() > configuration[QString("tooltipNumber")].toInt()) data[source].takeFirst(); + if (isnan(value)) value = 100.0; if (ac) data[source].append(value); else data[source].append(-value); - if ((source == QString("down")) || (source == QString("up"))) { - for (int i=0; i