diff options
| -rw-r--r-- | sysinfowatchlet/sysinfowatchlet.cpp | 20 | ||||
| -rw-r--r-- | sysinfowatchlet/sysinfowatchlet.h | 2 | 
2 files changed, 21 insertions, 1 deletions
diff --git a/sysinfowatchlet/sysinfowatchlet.cpp b/sysinfowatchlet/sysinfowatchlet.cpp index 46d45e7..e159fc7 100644 --- a/sysinfowatchlet/sysinfowatchlet.cpp +++ b/sysinfowatchlet/sysinfowatchlet.cpp @@ -1,3 +1,5 @@ +#include <QtDebug> +  #include "sysinfowatchlet.h"  using namespace sowatch; @@ -12,12 +14,28 @@ SysInfoWatchlet::SysInfoWatchlet(WatchServer* server) :  	rootContext()->setContextProperty("networkName", "");  	setSource(QUrl(SOWATCH_QML_DIR "/sysinfowatchlet/" + server->watch()->model() + ".qml"));  	connect(this, SIGNAL(activated()), SLOT(handleActivated())); +	connect(this, SIGNAL(deactivated()), SLOT(handleDeactivated()));  }  void SysInfoWatchlet::handleActivated()  { +	updateInformation(); +	connect(_devInfo, SIGNAL(batteryLevelChanged(int)), this, SLOT(updateInformation())); +	connect(_netMgr, SIGNAL(onlineStateChanged(bool)), this, SLOT(updateInformation())); +} + +void SysInfoWatchlet::handleDeactivated() +{ +	disconnect(_devInfo, SIGNAL(batteryLevelChanged(int)), this, SLOT(updateInformation())); +	disconnect(_netMgr, SIGNAL(onlineStateChanged(bool)), this, SLOT(updateInformation())); +} + +void SysInfoWatchlet::updateInformation() +{  	QList<QNetworkConfiguration> cfgs = _netMgr->allConfigurations(QNetworkConfiguration::Active); -	rootContext()->setContextProperty("batteryLevel", _devInfo->batteryLevel()); +	int batteryLevel = _devInfo->batteryLevel(); +	qDebug() << "Updating system information (batteryLevel =" << batteryLevel << "%)"; +	rootContext()->setContextProperty("batteryLevel", batteryLevel);  	if (cfgs.size() > 0) {  		rootContext()->setContextProperty("networkName", cfgs[0].name());  	} else { diff --git a/sysinfowatchlet/sysinfowatchlet.h b/sysinfowatchlet/sysinfowatchlet.h index 25d8f57..9ef3d7f 100644 --- a/sysinfowatchlet/sysinfowatchlet.h +++ b/sysinfowatchlet/sysinfowatchlet.h @@ -18,6 +18,8 @@ public:  private slots:  	void handleActivated(); +	void handleDeactivated(); +	void updateInformation();  private:  	QSystemDeviceInfo *_devInfo;  | 
