mirror of
https://github.com/arcan1s/awesome-widgets.git
synced 2025-04-24 23:47:20 +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)
|
||||
// FIXME change to pixmap/image/etc
|
||||
tooltip.mainText = AWKeys.toolTipImage()
|
||||
tooltip.image = AWKeys.toolTipImage()
|
||||
// update geometry
|
||||
text.update()
|
||||
height = text.contentHeight
|
||||
|
@ -19,7 +19,7 @@
|
||||
|
||||
#include <KI18n/KLocalizedString>
|
||||
|
||||
#include <QBuffer>
|
||||
// #include <QBuffer>
|
||||
#include <QDateTime>
|
||||
#include <QDebug>
|
||||
#include <QDir>
|
||||
@ -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("<img src=\"data:image/png;base64,%1\"/>").arg(QString(byteArray.toBase64()));
|
||||
return toolTip->image();
|
||||
// QByteArray byteArray;
|
||||
// QBuffer buffer(&byteArray);
|
||||
// tooltip.save(&buffer, "PNG");
|
||||
// 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();
|
||||
} 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")) {
|
||||
|
@ -55,8 +55,7 @@ public:
|
||||
const QMap<QString, QVariant> 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();
|
||||
|
@ -19,6 +19,7 @@
|
||||
|
||||
#include <QDebug>
|
||||
#include <QProcessEnvironment>
|
||||
#include <math.h>
|
||||
|
||||
#include <pdebug/pdebug.h>
|
||||
|
||||
@ -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<requiredKeys.count(); i++) {
|
||||
float normX = 100.0 / static_cast<float>(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<data[QString("down")].count(); i++)
|
||||
if (boundaries[QString("down")] < data[QString("down")][i])
|
||||
boundaries[QString("down")] = data[QString("down")][i];
|
||||
for (int i=0; i<data[QString("up")].count(); i++)
|
||||
if (boundaries[QString("down")] < data[QString("up")][i])
|
||||
boundaries[QString("down")] = data[QString("up")][i];
|
||||
boundaries[QString("down")] *= 1.2;
|
||||
boundaries[QString("up")] = boundaries[QString("down")];
|
||||
if ((source == QString("downTooltip")) || (source == QString("upTooltip"))) {
|
||||
for (int i=0; i<data[QString("downTooltip")].count(); i++)
|
||||
if (boundaries[QString("downTooltip")] < data[QString("downTooltip")][i])
|
||||
boundaries[QString("downTooltip")] = data[QString("downTooltip")][i];
|
||||
for (int i=0; i<data[QString("upTooltip")].count(); i++)
|
||||
if (boundaries[QString("downTooltip")] < data[QString("upTooltip")][i])
|
||||
boundaries[QString("downTooltip")] = data[QString("upTooltip")][i];
|
||||
boundaries[QString("downTooltip")] *= 1.2;
|
||||
boundaries[QString("upTooltip")] = boundaries[QString("downTooltip")];
|
||||
}
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ public:
|
||||
~AWToolTip();
|
||||
|
||||
QPixmap image();
|
||||
void setData(const QString source, const float value,
|
||||
void setData(const QString source, float value,
|
||||
const bool ac = true);
|
||||
|
||||
private:
|
||||
|
@ -8,6 +8,11 @@ Name=Information
|
||||
Comment=Information
|
||||
Action=Popup
|
||||
|
||||
[Event/event]
|
||||
Name=Event
|
||||
Comment=Some event occurs
|
||||
Action=Popup
|
||||
|
||||
[Event/system]
|
||||
Name=System information
|
||||
Comment=System information
|
||||
|
Loading…
Reference in New Issue
Block a user