void BatteryBusinessLogic::batteryRemCapacityChanged ( int percentage, int bars) { Q_UNUSED (bars); // XXX: FIXME: maybe we can drop batteryBarValue and use 'bars' parameter.. SYS_DEBUG ("Emitting batteryBarValueReceived(%d)", batteryBarValue (percentage)); emit batteryBarValueReceived (batteryBarValue (percentage)); emit remainingBatteryCapacityChanged(percentage); }
void BatteryBusinessLogic::batteryRemCapacityChanged ( int percentage, int bars) { Q_UNUSED (bars); SYS_DEBUG ("Emitting batteryBarValueReceived(%d)", batteryBarValue (percentage)); emit batteryBarValueReceived (batteryBarValue (percentage)); /* Fixes: NB#265208 */ if (isBatteryFull()) emit batteryFull (); else emit remainingBatteryCapacityChanged (percentage); }
/*! * This function is called whenever some change is detected around the battery * and its charger. This method will try to find out if the battery is actually * charging and if it is the method will calculate the charging animation speed. * * What we managed to find aboput the charging is: * 1) The battery is not charging (despite any other info returned) if the * battery is full. See NB#172929 for further details. */ void BatteryBusinessLogic::recalculateChargingInfo () { #ifdef HAVE_QMSYSTEM QmBattery::ChargingState chargingState; QmBattery::BatteryState batteryState; QmBattery::ChargerType chargerType; bool charging; bool couldBeCharging; int chargingRate; chargerType = m_battery->getChargerType (); chargingState = m_battery->getChargingState (); batteryState = m_battery->getBatteryState (); /* * Carefully calculating the charging rate, the animation rate of the * charging indicator. */ couldBeCharging = chargingState == QmBattery::StateCharging && // This is actually not necessary, but we even check it in the unit // test. Just to be sure. chargerType != QmBattery::None; charging = batteryState != QmBattery::StateFull && chargerType != QmBattery::None && chargingState != QmBattery::StateNotCharging && chargingState != QmBattery::StateChargingFailed; chargingRate = 0; if (charging) chargingRate = chargerType == QmBattery::Wall ? animation_rate_charging_wall : animation_rate_charging_usb; SYS_DEBUG ("*** charging = %s", SYS_BOOL(charging)); SYS_DEBUG ("*** m_Charging = %s", SYS_BOOL(m_Charging)); SYS_DEBUG ("*** chargingRate = %d", chargingRate); SYS_DEBUG ("*** m_ChargingRate = %d", m_ChargingRate); if (chargingRate == m_ChargingRate && couldBeCharging == m_Charging) return; /* * If the charging rate has been changed we need to notify the ui with a * signal. */ m_Charging = couldBeCharging; SYS_DEBUG ("*** chargingRate %d -> %d", m_ChargingRate, chargingRate); m_ChargingRate = chargingRate; SYS_DEBUG ("Emitting batteryCharging(%d)", m_ChargingRate); emit batteryCharging (m_ChargingRate); /* * Then we need to notify everyone about the bar value. * FIXME: Why exactly do we need that? */ SYS_DEBUG ("Emitting batteryBarValueReceived(%d)", batteryBarValue (-1)); emit batteryBarValueReceived (batteryBarValue (-1)); if(batteryState == QmBattery::StateFull) { emit batteryFull(); return; } /* * And the remaining battery capacity has to be recalculated. */ remainingCapacityRequired(); #else /* * FIXME: To implement a variant that does not use QmSystem. */ #endif }