Delete QmBattery when we are not active
authorMohammed Sameer <msameer@foolab.org>
Wed, 2 Jan 2013 00:44:08 +0000 (02:44 +0200)
committerMohammed Sameer <msameer@foolab.org>
Wed, 2 Jan 2013 00:44:08 +0000 (02:44 +0200)
src/batteryinfo.cpp

index 3831820..a551b7d 100644 (file)
@@ -68,11 +68,17 @@ void BatteryInfo::setActive(bool active) {
     return;
   }
 
-  m_battery = new MeeGo::QmBattery(this);
-  QObject::connect(m_battery, SIGNAL(batteryStateChanged(MeeGo::QmBattery::BatteryState)),
-                  this, SIGNAL(chargingChanged()));
-  QObject::connect(m_battery, SIGNAL(chargingStateChanged(MeeGo::QmBattery::ChargingState)),
-                  this, SIGNAL(chargingChanged()));
+  if (!active) {
+    m_battery->deleteLater();
+    m_battery = 0;
+  }
+  else {
+    m_battery = new MeeGo::QmBattery(this);
+    QObject::connect(m_battery, SIGNAL(batteryStateChanged(MeeGo::QmBattery::BatteryState)),
+                    this, SIGNAL(chargingChanged()));
+    QObject::connect(m_battery, SIGNAL(chargingStateChanged(MeeGo::QmBattery::ChargingState)),
+                    this, SIGNAL(chargingChanged()));
+  }
 
   emit activeChanged();
 }