mirror of
https://github.com/arcan1s/awesome-widgets.git
synced 2025-04-25 07:57:19 +00:00
add support of battery tooltip
This commit is contained in:
parent
e5c70b9535
commit
0cd293c4c3
@ -294,6 +294,12 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent)
|
|||||||
uiTooltipConfig.checkBox_down->setCheckState(Qt::Checked);
|
uiTooltipConfig.checkBox_down->setCheckState(Qt::Checked);
|
||||||
uiTooltipConfig.kcolorcombo_down->setColor(QColor(configuration[QString("downColor")]));
|
uiTooltipConfig.kcolorcombo_down->setColor(QColor(configuration[QString("downColor")]));
|
||||||
uiTooltipConfig.kcolorcombo_up->setColor(QColor(configuration[QString("upColor")]));
|
uiTooltipConfig.kcolorcombo_up->setColor(QColor(configuration[QString("upColor")]));
|
||||||
|
if (configuration[QString("batteryTooltip")].toInt() == 0)
|
||||||
|
uiTooltipConfig.checkBox_battery->setCheckState(Qt::Unchecked);
|
||||||
|
else
|
||||||
|
uiTooltipConfig.checkBox_battery->setCheckState(Qt::Checked);
|
||||||
|
uiTooltipConfig.kcolorcombo_battery->setColor(QColor(configuration[QString("batteryColor")]));
|
||||||
|
uiTooltipConfig.kcolorcombo_batteryIn->setColor(QColor(configuration[QString("batteryInColor")]));
|
||||||
|
|
||||||
// appearance
|
// appearance
|
||||||
KConfigGroup cg = config();
|
KConfigGroup cg = config();
|
||||||
@ -451,6 +457,9 @@ void AwesomeWidget::configAccepted()
|
|||||||
cg.writeEntry("downTooltip", QString::number(uiTooltipConfig.checkBox_down->checkState()));
|
cg.writeEntry("downTooltip", QString::number(uiTooltipConfig.checkBox_down->checkState()));
|
||||||
cg.writeEntry("downColor", uiTooltipConfig.kcolorcombo_down->color().name());
|
cg.writeEntry("downColor", uiTooltipConfig.kcolorcombo_down->color().name());
|
||||||
cg.writeEntry("upColor", uiTooltipConfig.kcolorcombo_up->color().name());
|
cg.writeEntry("upColor", uiTooltipConfig.kcolorcombo_up->color().name());
|
||||||
|
cg.writeEntry("batteryTooltip", QString::number(uiTooltipConfig.checkBox_battery->checkState()));
|
||||||
|
cg.writeEntry("batteryColor", uiTooltipConfig.kcolorcombo_battery->color().name());
|
||||||
|
cg.writeEntry("batteryInColor", uiTooltipConfig.kcolorcombo_batteryIn->color().name());
|
||||||
|
|
||||||
// appearance
|
// appearance
|
||||||
cg.writeEntry("interval", QString::number(uiAppConfig.spinBox_interval->value()));
|
cg.writeEntry("interval", QString::number(uiAppConfig.spinBox_interval->value()));
|
||||||
@ -556,6 +565,13 @@ void AwesomeWidget::configChanged()
|
|||||||
}
|
}
|
||||||
configuration[QString("downColor")] = cg.readEntry("downColor", "#00ffff");
|
configuration[QString("downColor")] = cg.readEntry("downColor", "#00ffff");
|
||||||
configuration[QString("upColor")] = cg.readEntry("upColor", "#ff00ff");
|
configuration[QString("upColor")] = cg.readEntry("upColor", "#ff00ff");
|
||||||
|
configuration[QString("batteryTooltip")] = cg.readEntry("batteryTooltip", "2");
|
||||||
|
if (configuration[QString("batteryTooltip")].toInt() == 2) {
|
||||||
|
tooltipValues[QString("bat")].append(0.0);
|
||||||
|
tooltipValues[QString("bat")].append(0.01);
|
||||||
|
}
|
||||||
|
configuration[QString("batteryColor")] = cg.readEntry("batteryColor", "#009900");
|
||||||
|
configuration[QString("batteryInColor")] = cg.readEntry("batteryInColor", "#990000");
|
||||||
|
|
||||||
// appearance
|
// appearance
|
||||||
configuration[QString("interval")] = cg.readEntry("interval", "1000");
|
configuration[QString("interval")] = cg.readEntry("interval", "1000");
|
||||||
@ -589,6 +605,7 @@ void AwesomeWidget::configChanged()
|
|||||||
counts[QString("tooltip")] += configuration[QString("memTooltip")].toInt();
|
counts[QString("tooltip")] += configuration[QString("memTooltip")].toInt();
|
||||||
counts[QString("tooltip")] += configuration[QString("swapTooltip")].toInt();
|
counts[QString("tooltip")] += configuration[QString("swapTooltip")].toInt();
|
||||||
counts[QString("tooltip")] += configuration[QString("downTooltip")].toInt();
|
counts[QString("tooltip")] += configuration[QString("downTooltip")].toInt();
|
||||||
|
counts[QString("tooltip")] += configuration[QString("batteryTooltip")].toInt();
|
||||||
counts[QString("tooltip")] = counts[QString("tooltip")] / 2;
|
counts[QString("tooltip")] = counts[QString("tooltip")] / 2;
|
||||||
|
|
||||||
reinit();
|
reinit();
|
||||||
|
@ -30,7 +30,8 @@ void AwesomeWidget::connectToEngine()
|
|||||||
|
|
||||||
// battery
|
// battery
|
||||||
regExp = QRegExp(QString("(ac|bat)"));
|
regExp = QRegExp(QString("(ac|bat)"));
|
||||||
if (foundKeys.indexOf(regExp) > -1)
|
if ((foundKeys.indexOf(regExp) > -1) ||
|
||||||
|
(configuration[QString("batteryTooltip")].toInt() == 2))
|
||||||
extsysmonEngine->connectSource(QString("battery"),
|
extsysmonEngine->connectSource(QString("battery"),
|
||||||
this, configuration[QString("interval")].toInt());
|
this, configuration[QString("interval")].toInt());
|
||||||
// cpu
|
// cpu
|
||||||
@ -186,6 +187,15 @@ void AwesomeWidget::dataUpdated(const QString &sourceName, const Plasma::DataEng
|
|||||||
else
|
else
|
||||||
values[QString("ac")] = configuration[QString("acOffline")];
|
values[QString("ac")] = configuration[QString("acOffline")];
|
||||||
values[QString("bat")] = QString("%1").arg(data[QString("bat")].toFloat(), 3, 'f', 0);
|
values[QString("bat")] = QString("%1").arg(data[QString("bat")].toFloat(), 3, 'f', 0);
|
||||||
|
if ((configuration[QString("batteryTooltip")].toInt() == 2) &&
|
||||||
|
(!isnan(data[QString("bat")].toFloat()))) {
|
||||||
|
if (tooltipValues[QString("bat")].count() > configuration[QString("tooltipNumber")].toInt())
|
||||||
|
tooltipValues[QString("bat")].takeFirst();
|
||||||
|
if (data[QString("ac")].toBool())
|
||||||
|
tooltipValues[QString("bat")].append(data[QString("bat")].toFloat());
|
||||||
|
else
|
||||||
|
tooltipValues[QString("bat")].append(-data[QString("bat")].toFloat());
|
||||||
|
}
|
||||||
} else if (sourceName == QString("cpu/system/TotalLoad")) {
|
} else if (sourceName == QString("cpu/system/TotalLoad")) {
|
||||||
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);
|
||||||
if ((configuration[QString("cpuTooltip")].toInt() == 2) &&
|
if ((configuration[QString("cpuTooltip")].toInt() == 2) &&
|
||||||
@ -414,7 +424,8 @@ void AwesomeWidget::disconnectFromEngine()
|
|||||||
|
|
||||||
// battery
|
// battery
|
||||||
regExp = QRegExp(QString("(ac|bat)"));
|
regExp = QRegExp(QString("(ac|bat)"));
|
||||||
if (foundKeys.indexOf(regExp) > -1)
|
if ((foundKeys.indexOf(regExp) > -1) ||
|
||||||
|
(configuration[QString("batteryTooltip")].toInt() == 2))
|
||||||
extsysmonEngine->disconnectSource(QString("battery"), this);
|
extsysmonEngine->disconnectSource(QString("battery"), this);
|
||||||
// cpu
|
// cpu
|
||||||
regExp = QRegExp(QString("cpu.*"));
|
regExp = QRegExp(QString("cpu.*"));
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include <Plasma/ToolTipManager>
|
#include <Plasma/ToolTipManager>
|
||||||
#include <QGraphicsLinearLayout>
|
#include <QGraphicsLinearLayout>
|
||||||
#include <QGraphicsView>
|
#include <QGraphicsView>
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
#include "customlabel.h"
|
#include "customlabel.h"
|
||||||
#include <pdebug/pdebug.h>
|
#include <pdebug/pdebug.h>
|
||||||
@ -128,6 +129,7 @@ void AwesomeWidget::updateTooltip()
|
|||||||
boundaries[QString("down")] *= 1.2;
|
boundaries[QString("down")] *= 1.2;
|
||||||
}
|
}
|
||||||
boundaries[QString("up")] = boundaries[QString("down")];
|
boundaries[QString("up")] = boundaries[QString("down")];
|
||||||
|
boundaries[QString("bat")] = 100.0;
|
||||||
|
|
||||||
// create image
|
// create image
|
||||||
toolTipScene->clear();
|
toolTipScene->clear();
|
||||||
@ -137,6 +139,7 @@ void AwesomeWidget::updateTooltip()
|
|||||||
else
|
else
|
||||||
toolTipScene->setBackgroundBrush(QBrush(Qt::NoBrush));
|
toolTipScene->setBackgroundBrush(QBrush(Qt::NoBrush));
|
||||||
bool down = false;
|
bool down = false;
|
||||||
|
bool isBattery = false;
|
||||||
QStringList trueKeys;
|
QStringList trueKeys;
|
||||||
if (tooltipValues.contains(QString("cpu"))) trueKeys.append(QString("cpu"));
|
if (tooltipValues.contains(QString("cpu"))) trueKeys.append(QString("cpu"));
|
||||||
if (tooltipValues.contains(QString("cpucl"))) trueKeys.append(QString("cpucl"));
|
if (tooltipValues.contains(QString("cpucl"))) trueKeys.append(QString("cpucl"));
|
||||||
@ -144,18 +147,28 @@ void AwesomeWidget::updateTooltip()
|
|||||||
if (tooltipValues.contains(QString("swap"))) trueKeys.append(QString("swap"));
|
if (tooltipValues.contains(QString("swap"))) trueKeys.append(QString("swap"));
|
||||||
if (tooltipValues.contains(QString("down"))) trueKeys.append(QString("down"));
|
if (tooltipValues.contains(QString("down"))) trueKeys.append(QString("down"));
|
||||||
if (tooltipValues.contains(QString("up"))) trueKeys.append(QString("up"));
|
if (tooltipValues.contains(QString("up"))) trueKeys.append(QString("up"));
|
||||||
|
if (tooltipValues.contains(QString("bat"))) trueKeys.append(QString("bat"));
|
||||||
for (int i=0; i<trueKeys.count(); i++) {
|
for (int i=0; i<trueKeys.count(); i++) {
|
||||||
float normX = 100.0 / (tooltipValues[trueKeys[i]].count() + 0.0);
|
float normX = 100.0 / (tooltipValues[trueKeys[i]].count() + 0.0);
|
||||||
float normY = 100.0 / (1.5 * boundaries[trueKeys[i]]);
|
float normY = 100.0 / (1.5 * boundaries[trueKeys[i]]);
|
||||||
pen.setColor(QColor(configuration[trueKeys[i] + QString("Color")]));
|
if (trueKeys[i] == QString("bat"))
|
||||||
|
isBattery = true;
|
||||||
|
else
|
||||||
|
isBattery = false;
|
||||||
|
if (!isBattery) pen.setColor(QColor(configuration[trueKeys[i] + QString("Color")]));
|
||||||
float shift = i * 100.0;
|
float shift = i * 100.0;
|
||||||
if (down)
|
if (down) shift -= 100.0;
|
||||||
shift -= 100.0;
|
|
||||||
for (int j=0; j<tooltipValues[trueKeys[i]].count()-1; j++) {
|
for (int j=0; j<tooltipValues[trueKeys[i]].count()-1; j++) {
|
||||||
float x1 = j * normX + shift;
|
float x1 = j * normX + shift;
|
||||||
float y1 = - tooltipValues[trueKeys[i]][j] * normY;
|
float y1 = - fabs(tooltipValues[trueKeys[i]][j]) * normY;
|
||||||
float x2 = (j + 1) * normX + shift;
|
float x2 = (j + 1) * normX + shift;
|
||||||
float y2 = - tooltipValues[trueKeys[i]][j+1] * normY;
|
float y2 = - fabs(tooltipValues[trueKeys[i]][j+1]) * normY;
|
||||||
|
if (isBattery) {
|
||||||
|
if (tooltipValues[trueKeys[i]][j+1] > 0)
|
||||||
|
pen.setColor(QColor(configuration[QString("batteryColor")]));
|
||||||
|
else
|
||||||
|
pen.setColor(QColor(configuration[QString("batteryInColor")]));
|
||||||
|
}
|
||||||
toolTipScene->addLine(x1, y1, x2, y2, pen);
|
toolTipScene->addLine(x1, y1, x2, y2, pen);
|
||||||
}
|
}
|
||||||
if (trueKeys[i] == QString("down"))
|
if (trueKeys[i] == QString("down"))
|
||||||
|
@ -429,6 +429,105 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="layout_batteryColor">
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="checkBox_battery">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>200</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Battery active color</string>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="spacer_batteryColor">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="KColorCombo" name="kcolorcombo_battery">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>180</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="layout_batteryInColor">
|
||||||
|
<item>
|
||||||
|
<spacer name="space_batteryIn">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Fixed</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_batteryIn">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>180</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Battery inactive color</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="spacer_batteryInColor">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="KColorCombo" name="kcolorcombo_batteryIn">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>180</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<spacer name="spacer_tooltip">
|
<spacer name="spacer_tooltip">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
|
Loading…
Reference in New Issue
Block a user