mirror of
https://github.com/arcan1s/awesome-widgets.git
synced 2025-04-24 23:47:20 +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.kcolorcombo_down->setColor(QColor(configuration[QString("downColor")]));
|
||||
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
|
||||
KConfigGroup cg = config();
|
||||
@ -451,6 +457,9 @@ void AwesomeWidget::configAccepted()
|
||||
cg.writeEntry("downTooltip", QString::number(uiTooltipConfig.checkBox_down->checkState()));
|
||||
cg.writeEntry("downColor", uiTooltipConfig.kcolorcombo_down->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
|
||||
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("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
|
||||
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("swapTooltip")].toInt();
|
||||
counts[QString("tooltip")] += configuration[QString("downTooltip")].toInt();
|
||||
counts[QString("tooltip")] += configuration[QString("batteryTooltip")].toInt();
|
||||
counts[QString("tooltip")] = counts[QString("tooltip")] / 2;
|
||||
|
||||
reinit();
|
||||
|
@ -30,7 +30,8 @@ void AwesomeWidget::connectToEngine()
|
||||
|
||||
// battery
|
||||
regExp = QRegExp(QString("(ac|bat)"));
|
||||
if (foundKeys.indexOf(regExp) > -1)
|
||||
if ((foundKeys.indexOf(regExp) > -1) ||
|
||||
(configuration[QString("batteryTooltip")].toInt() == 2))
|
||||
extsysmonEngine->connectSource(QString("battery"),
|
||||
this, configuration[QString("interval")].toInt());
|
||||
// cpu
|
||||
@ -186,6 +187,15 @@ void AwesomeWidget::dataUpdated(const QString &sourceName, const Plasma::DataEng
|
||||
else
|
||||
values[QString("ac")] = configuration[QString("acOffline")];
|
||||
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")) {
|
||||
values[QString("cpu")] = QString("%1").arg(data[QString("value")].toFloat(), 5, 'f', 1);
|
||||
if ((configuration[QString("cpuTooltip")].toInt() == 2) &&
|
||||
@ -414,7 +424,8 @@ void AwesomeWidget::disconnectFromEngine()
|
||||
|
||||
// battery
|
||||
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);
|
||||
// cpu
|
||||
regExp = QRegExp(QString("cpu.*"));
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include <Plasma/ToolTipManager>
|
||||
#include <QGraphicsLinearLayout>
|
||||
#include <QGraphicsView>
|
||||
#include <math.h>
|
||||
|
||||
#include "customlabel.h"
|
||||
#include <pdebug/pdebug.h>
|
||||
@ -128,6 +129,7 @@ void AwesomeWidget::updateTooltip()
|
||||
boundaries[QString("down")] *= 1.2;
|
||||
}
|
||||
boundaries[QString("up")] = boundaries[QString("down")];
|
||||
boundaries[QString("bat")] = 100.0;
|
||||
|
||||
// create image
|
||||
toolTipScene->clear();
|
||||
@ -137,6 +139,7 @@ void AwesomeWidget::updateTooltip()
|
||||
else
|
||||
toolTipScene->setBackgroundBrush(QBrush(Qt::NoBrush));
|
||||
bool down = false;
|
||||
bool isBattery = false;
|
||||
QStringList trueKeys;
|
||||
if (tooltipValues.contains(QString("cpu"))) trueKeys.append(QString("cpu"));
|
||||
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("down"))) trueKeys.append(QString("down"));
|
||||
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++) {
|
||||
float normX = 100.0 / (tooltipValues[trueKeys[i]].count() + 0.0);
|
||||
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;
|
||||
if (down)
|
||||
shift -= 100.0;
|
||||
if (down) shift -= 100.0;
|
||||
for (int j=0; j<tooltipValues[trueKeys[i]].count()-1; j++) {
|
||||
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 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);
|
||||
}
|
||||
if (trueKeys[i] == QString("down"))
|
||||
|
@ -429,6 +429,105 @@
|
||||
</item>
|
||||
</layout>
|
||||
</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>
|
||||
<spacer name="spacer_tooltip">
|
||||
<property name="orientation">
|
||||
|
Loading…
Reference in New Issue
Block a user