[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/powerdevil
From: Dario Freddi <drf () kde ! org>
Date: 2010-11-10 16:07:16
Message-ID: 20101110160716.B78C6AC89E () svn ! kde ! org
[Download RAW message or body]
SVN commit 1195232 by dafre:
BUG: 218546
Notify when a battery's capacity is below 50% or the battery has been recalled from \
the HW vendor.
M +38 -0 daemon/powerdevilcore.cpp
M +1 -0 daemon/powerdevilcore.h
M +7 -0 powerdevil.notifyrc
--- trunk/KDE/kdebase/workspace/powerdevil/daemon/powerdevilcore.cpp #1195231:1195232
@@ -164,6 +164,9 @@
m_criticalBatteryTimer->setInterval(30000);
connect(m_criticalBatteryTimer, SIGNAL(timeout()), this, \
SLOT(onCriticalBatteryTimerExpired()));
+ // In 30 seconds (so we are sure the user sees eventual notifications), check \
the battery state + QTimer::singleShot(30000, this, SLOT(checkBatteryStatus()));
+
// All systems up Houston, let's go!
refreshStatus();
@@ -198,6 +201,41 @@
connect(globalAction, SIGNAL(triggered(bool)), SLOT(suspendToDisk()));
}
+void Core::checkBatteryStatus()
+{
+ // Any batteries below 50% of capacity?
+ for (QHash< QString, uint >::const_iterator i = \
m_backend->capacities().constBegin(); + i != \
m_backend->capacities().constEnd(); ++i) { + if (i.value() < 50) {
+ // Notify, we have a broken battery.
+ emitNotification("brokenbattery", i18np("Your battery capacity is %2%. \
This means your battery is broken " + \
"and needs a replacement. Please contact your hardware vendor for more details.", +
+ "One of your batteries (ID %3) \
has a capacity of %2%. This means it is broken " + \
"and needs a replacement. Please contact your hardware vendor for more details.", + \
m_loadedBatteriesUdi.size(), i.value(), i.key()), + \
"dialog-warning"); + }
+ }
+
+ // Any recalled batteries?
+ foreach (const BackendInterface::RecallNotice ¬ice, \
m_backend->recallNotices()) { + // Notify, a battery has been recalled
+ emitNotification("brokenbattery", i18np("Your battery might have been \
recalled by %2. Usually, when vendors recall the " + \
"hardware, it is because of factory defects which are usually eligible for a " + \
"free repair or substitution. Please check <a href=\"%3\">%2's website</a> to" + \
"verify if your battery is faulted.", +
+ "One of your batteries (ID %4) might \
have been recalled by %2. " + \
"Usually, when vendors recall the hardware, it is because of factory defects " + \
"which are usually eligible for a free repair or substitution. " + \
"Please check <a href=\"%3\">%2's website</a> to" + \
"verify if your battery is faulted.", + \
m_loadedBatteriesUdi.size(), notice.vendor, notice.url, notice.batteryId), + \
"dialog-warning"); + }
+}
+
void Core::refreshStatus()
{
/* The configuration could have changed if this function was called, so
--- trunk/KDE/kdebase/workspace/powerdevil/daemon/powerdevilcore.h #1195231:1195232
@@ -126,6 +126,7 @@
void onDeviceAdded(const QString &udi);
void onDeviceRemoved(const QString &udi);
void onCriticalBatteryTimerExpired();
+ void checkBatteryStatus();
};
}
--- trunk/KDE/kdebase/workspace/powerdevil/powerdevil.notifyrc #1195231:1195232
@@ -1816,3 +1816,10 @@
Contexts=criticalnot
Sound=KDE-Sys-App-Error-Critical.ogg
Action=Sound|Popup
+
+[Event/brokenbattery]
+Name=Broken battery notification
+Comment=This notifications will pop up if KDE Power Management System detects some \
troubles with one of your batteries +Contexts=criticalnot
+Sound=KDE-Sys-App-Error-Critical.ogg
+Action=Sound|Popup
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic