summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tdecore/tdehw/tdehardwaredevices.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/tdecore/tdehw/tdehardwaredevices.cpp b/tdecore/tdehw/tdehardwaredevices.cpp
index 62fd6a427..3fc8e42b0 100644
--- a/tdecore/tdehw/tdehardwaredevices.cpp
+++ b/tdecore/tdehw/tdehardwaredevices.cpp
@@ -3028,11 +3028,16 @@ void TDEHardwareDevices::updateExistingDeviceInformation(TDEGenericDevice* exist
}
// Calculate time remaining
- // Discharge rate is in watt-hours
+ // Discharge/charge rate is in watt-hours
// Energy is in watt-hours
// Therefore, energy/rate = time in hours
// Convert to seconds...
- bdevice->internalSetTimeRemaining((bdevice->energy()/bdevice->dischargeRate())*60*60);
+ if (bdevice->status() == TDEBatteryStatus::Charging) {
+ bdevice->internalSetTimeRemaining(((bdevice->maximumEnergy()-bdevice->energy())/bdevice->dischargeRate())*60*60);
+ }
+ else {
+ bdevice->internalSetTimeRemaining((bdevice->energy()/bdevice->dischargeRate())*60*60);
+ }
}
if (device->type() == TDEGenericDeviceType::PowerSupply) {