summaryrefslogtreecommitdiffstats
path: root/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp
diff options
context:
space:
mode:
authorLorn Potter <lorn.potter@gmail.com>2014-11-13 13:06:49 +1000
committerLorn Potter <lorn.potter@gmail.com>2014-11-20 20:45:13 +0100
commitf217a8096b3c6188dd1d1520d854f330dbb17264 (patch)
tree024b22aeda47911503e44e84e4e1df1af8e23525 /src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp
parentf20af07e82f010273fd68b0545467c495e3c64f9 (diff)
QtBearer networkmanager make sure to set flag Active
Also, no need to create objects to get properties, when the properties can be had for free. Make plugin more robust to network-manager or ofono crashes Change-Id: Ibadb46bd51aa27f130f8d245e8c50aa7bff5f9c8 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com> Reviewed-by: Timo Jyrinki <timo.jyrinki@canonical.com>
Diffstat (limited to 'src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp')
-rw-r--r--src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp
index dc3b71ec8e..fad94f069d 100644
--- a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp
+++ b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp
@@ -688,6 +688,15 @@ QNetworkManagerInterfaceDeviceWireless::QNetworkManagerInterfaceDeviceWireless(c
QLatin1String(NM_DBUS_INTERFACE_DEVICE_WIRELESS),
QLatin1String("PropertiesChanged"),
this,SLOT(propertiesSwap(QMap<QString,QVariant>)));
+
+ QDBusPendingReply<QList<QDBusObjectPath> > reply
+ = d->connectionInterface->asyncCall(QLatin1String("GetAccessPoints"));
+
+ QDBusPendingCallWatcher *callWatcher = new QDBusPendingCallWatcher(reply);
+ connect(callWatcher, SIGNAL(finished(QDBusPendingCallWatcher*)),
+ this, SLOT(accessPointsFinished(QDBusPendingCallWatcher*)));
+
+
d->valid = true;
}
@@ -749,6 +758,19 @@ bool QNetworkManagerInterfaceDeviceWireless::setConnections()
return allOk;
}
+void QNetworkManagerInterfaceDeviceWireless::accessPointsFinished(QDBusPendingCallWatcher *watcher)
+{
+ QDBusPendingReply<QList<QDBusObjectPath> > reply(*watcher);
+ watcher->deleteLater();
+ if (!reply.isError()) {
+ accessPointsList = reply.value();
+ }
+
+ for (int i = 0; i < accessPointsList.size(); i++) {
+ Q_EMIT accessPointAdded(accessPointsList.at(i).path());
+ }
+}
+
QDBusInterface *QNetworkManagerInterfaceDeviceWireless::connectionInterface() const
{
return d->connectionInterface;