mirror of
https://github.com/arcan1s/awesome-widgets.git
synced 2025-04-25 07:57:19 +00:00
some work on tooltip
This commit is contained in:
parent
86d4bd76ea
commit
eac1319889
@ -151,7 +151,7 @@ Item {
|
|||||||
|
|
||||||
text.text = AWKeys.parsePattern(plasmoid.configuration.text)
|
text.text = AWKeys.parsePattern(plasmoid.configuration.text)
|
||||||
// FIXME change to pixmap/image/etc
|
// FIXME change to pixmap/image/etc
|
||||||
tooltip.mainText = AWKeys.toolTipImage()
|
tooltip.image = AWKeys.toolTipImage()
|
||||||
// update geometry
|
// update geometry
|
||||||
text.update()
|
text.update()
|
||||||
height = text.contentHeight
|
height = text.contentHeight
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
#include <KI18n/KLocalizedString>
|
#include <KI18n/KLocalizedString>
|
||||||
|
|
||||||
#include <QBuffer>
|
// #include <QBuffer>
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
@ -141,17 +141,17 @@ QString AWKeys::parsePattern(const QString pattern)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QString AWKeys::toolTipImage()
|
QPixmap AWKeys::toolTipImage()
|
||||||
{
|
{
|
||||||
if(debug) qDebug() << PDEBUG;
|
if(debug) qDebug() << PDEBUG;
|
||||||
|
|
||||||
if (!ready) return QString();
|
if (!ready) return QPixmap();
|
||||||
|
|
||||||
QPixmap tooltip = toolTip->image();
|
return toolTip->image();
|
||||||
QByteArray byteArray;
|
// QByteArray byteArray;
|
||||||
QBuffer buffer(&byteArray);
|
// QBuffer buffer(&byteArray);
|
||||||
tooltip.save(&buffer, "PNG");
|
// tooltip.save(&buffer, "PNG");
|
||||||
return QString("<img src=\"data:image/png;base64,%1\"/>").arg(QString(byteArray.toBase64()));
|
// return QString("<img src=\"data:image/png;base64,%1\"/>").arg(QString(byteArray.toBase64()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -440,13 +440,13 @@ bool AWKeys::setDataBySource(const QString sourceName,
|
|||||||
values[QString("ac")] = params[QString("acOffline")].toString();
|
values[QString("ac")] = params[QString("acOffline")].toString();
|
||||||
} else {
|
} else {
|
||||||
values[data.keys()[i]] = QString("%1").arg(data[data.keys()[i]].toFloat(), 3, 'f', 0);
|
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")) {
|
} else if (sourceName == QString("cpu/system/TotalLoad")) {
|
||||||
// cpu
|
// cpu
|
||||||
values[QString("cpu")] = QString("%1").arg(data[QString("value")].toFloat(), 5, 'f', 1);
|
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)) {
|
} else if (sourceName.contains(cpuRegExp)) {
|
||||||
// cpus
|
// cpus
|
||||||
QString number = sourceName;
|
QString number = sourceName;
|
||||||
@ -455,7 +455,7 @@ bool AWKeys::setDataBySource(const QString sourceName,
|
|||||||
} else if (sourceName == QString("cpu/system/AverageClock")) {
|
} else if (sourceName == QString("cpu/system/AverageClock")) {
|
||||||
// cpucl
|
// cpucl
|
||||||
values[QString("cpucl")] = QString("%1").arg(data[QString("value")].toFloat(), 4, 'f', 0);
|
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)) {
|
} else if (sourceName.contains(cpuclRegExp)) {
|
||||||
// cpucls
|
// cpucls
|
||||||
QString number = sourceName;
|
QString number = sourceName;
|
||||||
@ -565,7 +565,7 @@ bool AWKeys::setDataBySource(const QString sourceName,
|
|||||||
// percentage
|
// percentage
|
||||||
values[QString("mem")] = QString("%1").arg(
|
values[QString("mem")] = QString("%1").arg(
|
||||||
100.0 * values[QString("memmb")].toFloat() / values[QString("memtotmb")].toFloat(), 5, 'f', 1);
|
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")) {
|
} else if (sourceName == QString("netdev")) {
|
||||||
// network device
|
// network device
|
||||||
values[QString("netdev")] = data[QString("value")].toString();
|
values[QString("netdev")] = data[QString("value")].toString();
|
||||||
@ -581,7 +581,7 @@ bool AWKeys::setDataBySource(const QString sourceName,
|
|||||||
}
|
}
|
||||||
if (device == networkDevice()) {
|
if (device == networkDevice()) {
|
||||||
values[QString("down")] = QString("%1").arg(data[QString("value")].toFloat(), 4, 'f', 0);
|
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)) {
|
} else if (sourceName.contains(netTransRegExp)) {
|
||||||
// upload speed
|
// upload speed
|
||||||
@ -595,7 +595,7 @@ bool AWKeys::setDataBySource(const QString sourceName,
|
|||||||
}
|
}
|
||||||
if (device == networkDevice()) {
|
if (device == networkDevice()) {
|
||||||
values[QString("up")] = QString("%1").arg(data[QString("value")].toFloat(), 4, 'f', 0);
|
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")) {
|
} else if (sourceName == QString("pkg")) {
|
||||||
// package manager
|
// package manager
|
||||||
@ -629,7 +629,7 @@ bool AWKeys::setDataBySource(const QString sourceName,
|
|||||||
// percentage
|
// percentage
|
||||||
values[QString("swap")] = QString("%1").arg(
|
values[QString("swap")] = QString("%1").arg(
|
||||||
100.0 * values[QString("swapmb")].toFloat() / values[QString("swaptotmb")].toFloat(), 5, 'f', 1);
|
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)) {
|
} else if (sourceName.contains(tempRegExp)) {
|
||||||
// temperature devices
|
// temperature devices
|
||||||
if (data[QString("units")].toString() == QString("rpm")) {
|
if (data[QString("units")].toString() == QString("rpm")) {
|
||||||
|
@ -55,8 +55,7 @@ public:
|
|||||||
const QMap<QString, QVariant> tooltipParams);
|
const QMap<QString, QVariant> tooltipParams);
|
||||||
Q_INVOKABLE bool isDebugEnabled();
|
Q_INVOKABLE bool isDebugEnabled();
|
||||||
Q_INVOKABLE QString parsePattern(const QString pattern);
|
Q_INVOKABLE QString parsePattern(const QString pattern);
|
||||||
// Q_INVOKABLE QPixmap toolTipImage();
|
Q_INVOKABLE QPixmap toolTipImage();
|
||||||
Q_INVOKABLE QString toolTipImage();
|
|
||||||
// keys
|
// keys
|
||||||
Q_INVOKABLE bool addDevice(const QString source);
|
Q_INVOKABLE bool addDevice(const QString source);
|
||||||
Q_INVOKABLE QStringList dictKeys();
|
Q_INVOKABLE QStringList dictKeys();
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QProcessEnvironment>
|
#include <QProcessEnvironment>
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
#include <pdebug/pdebug.h>
|
#include <pdebug/pdebug.h>
|
||||||
|
|
||||||
@ -48,21 +49,21 @@ AWToolTip::AWToolTip(QObject *parent,
|
|||||||
counts += configuration[QString("downTooltip")].toInt();
|
counts += configuration[QString("downTooltip")].toInt();
|
||||||
counts += configuration[QString("batteryTooltip")].toInt();
|
counts += configuration[QString("batteryTooltip")].toInt();
|
||||||
|
|
||||||
boundaries[QString("cpu")] = 100.0;
|
boundaries[QString("cpuTooltip")] = 100.0;
|
||||||
boundaries[QString("cpucl")] = 4000.0;
|
boundaries[QString("cpuclTooltip")] = 4000.0;
|
||||||
boundaries[QString("mem")] = 100.0;
|
boundaries[QString("memTooltip")] = 100.0;
|
||||||
boundaries[QString("swap")] = 100.0;
|
boundaries[QString("swapTooltip")] = 100.0;
|
||||||
boundaries[QString("down")] = 1.0;
|
boundaries[QString("downTooltip")] = 1.0;
|
||||||
boundaries[QString("up")] = 1.0;
|
boundaries[QString("upTooltip")] = 1.0;
|
||||||
boundaries[QString("bat")] = 100.0;
|
boundaries[QString("batTooltip")] = 100.0;
|
||||||
|
|
||||||
if (configuration[QString("cpuTooltip")].toBool()) requiredKeys.append(QString("cpu"));
|
if (configuration[QString("cpuTooltip")].toBool()) requiredKeys.append(QString("cpuTooltip"));
|
||||||
if (configuration[QString("cpuclTooltip")].toBool()) requiredKeys.append(QString("cpucl"));
|
if (configuration[QString("cpuclTooltip")].toBool()) requiredKeys.append(QString("cpuclTooltip"));
|
||||||
if (configuration[QString("memTooltip")].toBool()) requiredKeys.append(QString("mem"));
|
if (configuration[QString("memTooltip")].toBool()) requiredKeys.append(QString("memTooltip"));
|
||||||
if (configuration[QString("swapTooltip")].toBool()) requiredKeys.append(QString("swap"));
|
if (configuration[QString("swapTooltip")].toBool()) requiredKeys.append(QString("swapTooltip"));
|
||||||
if (configuration[QString("downTooltip")].toBool()) requiredKeys.append(QString("down"));
|
if (configuration[QString("downTooltip")].toBool()) requiredKeys.append(QString("downTooltip"));
|
||||||
if (configuration[QString("upTooltip")].toBool()) requiredKeys.append(QString("up"));
|
if (configuration[QString("upTooltip")].toBool()) requiredKeys.append(QString("upTooltip"));
|
||||||
if (configuration[QString("batTooltip")].toBool()) requiredKeys.append(QString("bat"));
|
if (configuration[QString("batTooltip")].toBool()) requiredKeys.append(QString("batTooltip"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -93,7 +94,7 @@ QPixmap AWToolTip::image()
|
|||||||
for (int i=0; i<requiredKeys.count(); i++) {
|
for (int i=0; i<requiredKeys.count(); i++) {
|
||||||
float normX = 100.0 / static_cast<float>(data[requiredKeys[i]].count());
|
float normX = 100.0 / static_cast<float>(data[requiredKeys[i]].count());
|
||||||
float normY = 100.0 / (1.5 * boundaries[requiredKeys[i]]);
|
float normY = 100.0 / (1.5 * boundaries[requiredKeys[i]]);
|
||||||
if (requiredKeys[i] == QString("bat"))
|
if (requiredKeys[i] == QString("batTooltip"))
|
||||||
isBattery = true;
|
isBattery = true;
|
||||||
else
|
else
|
||||||
isBattery = false;
|
isBattery = false;
|
||||||
@ -113,14 +114,14 @@ QPixmap AWToolTip::image()
|
|||||||
}
|
}
|
||||||
toolTipScene->addLine(x1, y1, x2, y2, pen);
|
toolTipScene->addLine(x1, y1, x2, y2, pen);
|
||||||
}
|
}
|
||||||
if (requiredKeys[i] == QString("down")) down = true;
|
if (requiredKeys[i] == QString("downTooltip")) down = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return toolTipView->grab();
|
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;
|
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);
|
data[source].append(0.0);
|
||||||
else if (data[source].count() > configuration[QString("tooltipNumber")].toInt())
|
else if (data[source].count() > configuration[QString("tooltipNumber")].toInt())
|
||||||
data[source].takeFirst();
|
data[source].takeFirst();
|
||||||
|
if (isnan(value)) value = 100.0;
|
||||||
|
|
||||||
if (ac)
|
if (ac)
|
||||||
data[source].append(value);
|
data[source].append(value);
|
||||||
else
|
else
|
||||||
data[source].append(-value);
|
data[source].append(-value);
|
||||||
|
|
||||||
if ((source == QString("down")) || (source == QString("up"))) {
|
if ((source == QString("downTooltip")) || (source == QString("upTooltip"))) {
|
||||||
for (int i=0; i<data[QString("down")].count(); i++)
|
for (int i=0; i<data[QString("downTooltip")].count(); i++)
|
||||||
if (boundaries[QString("down")] < data[QString("down")][i])
|
if (boundaries[QString("downTooltip")] < data[QString("downTooltip")][i])
|
||||||
boundaries[QString("down")] = data[QString("down")][i];
|
boundaries[QString("downTooltip")] = data[QString("downTooltip")][i];
|
||||||
for (int i=0; i<data[QString("up")].count(); i++)
|
for (int i=0; i<data[QString("upTooltip")].count(); i++)
|
||||||
if (boundaries[QString("down")] < data[QString("up")][i])
|
if (boundaries[QString("downTooltip")] < data[QString("upTooltip")][i])
|
||||||
boundaries[QString("down")] = data[QString("up")][i];
|
boundaries[QString("downTooltip")] = data[QString("upTooltip")][i];
|
||||||
boundaries[QString("down")] *= 1.2;
|
boundaries[QString("downTooltip")] *= 1.2;
|
||||||
boundaries[QString("up")] = boundaries[QString("down")];
|
boundaries[QString("upTooltip")] = boundaries[QString("downTooltip")];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,7 +37,7 @@ public:
|
|||||||
~AWToolTip();
|
~AWToolTip();
|
||||||
|
|
||||||
QPixmap image();
|
QPixmap image();
|
||||||
void setData(const QString source, const float value,
|
void setData(const QString source, float value,
|
||||||
const bool ac = true);
|
const bool ac = true);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -8,6 +8,11 @@ Name=Information
|
|||||||
Comment=Information
|
Comment=Information
|
||||||
Action=Popup
|
Action=Popup
|
||||||
|
|
||||||
|
[Event/event]
|
||||||
|
Name=Event
|
||||||
|
Comment=Some event occurs
|
||||||
|
Action=Popup
|
||||||
|
|
||||||
[Event/system]
|
[Event/system]
|
||||||
Name=System information
|
Name=System information
|
||||||
Comment=System information
|
Comment=System information
|
||||||
|
Loading…
Reference in New Issue
Block a user