From 075cf11458a98245a47505b944c5606c1b86afb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sl=C3=A1vek=20Banko?= Date: Fri, 4 Dec 2015 02:26:54 +0100 Subject: Fix calculation of remaining charging time in TDE hardware library MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Slávek Banko --- tdecore/tdehw/tdehardwaredevices.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'tdecore/tdehw') diff --git a/tdecore/tdehw/tdehardwaredevices.cpp b/tdecore/tdehw/tdehardwaredevices.cpp index bb1318a39..017b1188f 100644 --- a/tdecore/tdehw/tdehardwaredevices.cpp +++ b/tdecore/tdehw/tdehardwaredevices.cpp @@ -3082,11 +3082,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) { -- cgit v1.2.1