Paste P389

Masterwork From Distant Lands
ActivePublic

Authored by apol on May 21 2019, 3:31 PM.
diff --git a/autotests/activeconnectiontest.cpp b/autotests/activeconnectiontest.cpp
index cc4866f..9b16dcc 100644
--- a/autotests/activeconnectiontest.cpp
+++ b/autotests/activeconnectiontest.cpp
@@ -105,6 +105,8 @@ void ActiveConnectionTest::testActiveConnection()
QVERIFY(activeConnectionAddedSpy.wait());
NetworkManager::ActiveConnection::Ptr activeConnection = NetworkManager::findActiveConnection(activeConnectionAddedSpy.at(0).at(0).toString());
+ QVERIFY(activeConnection);
+
QSignalSpy activeConnectionStateChangedSpy(activeConnection.data(), SIGNAL(stateChanged(NetworkManager::ActiveConnection::State)));
QSignalSpy activeConnectionStateChangedReasonSpy(activeConnection.data(), SIGNAL(stateChangedReason(NetworkManager::ActiveConnection::State,NetworkManager::ActiveConnection::Reason)));
diff --git a/autotests/managertest.cpp b/autotests/managertest.cpp
index 1945e50..1f6b891 100644
--- a/autotests/managertest.cpp
+++ b/autotests/managertest.cpp
@@ -95,10 +95,10 @@ void ManagerTest::testDeviceAdded(const QString &dev)
{
NetworkManager::Device::Ptr device = NetworkManager::findNetworkInterface(dev);
+ QCOMPARE(device->driver(), QLatin1Literal("e1000e"));
QCOMPARE(device->autoconnect(), true);
QCOMPARE(device->capabilities(), 3);
QCOMPARE(device->type(), NetworkManager::Device::Ethernet);
- QCOMPARE(device->driver(), QLatin1Literal("e1000e"));
QCOMPARE(device->driverVersion(), QLatin1Literal("2.3.2-k"));
QCOMPARE(device->firmwareMissing(), false);
QCOMPARE(device->firmwareVersion(), QLatin1Literal("0.13-3"));
diff --git a/src/accesspoint.cpp b/src/accesspoint.cpp
index 5acdb5a..4787c58 100644
--- a/src/accesspoint.cpp
+++ b/src/accesspoint.cpp
@@ -65,12 +65,11 @@ NetworkManager::AccessPoint::AccessPoint(const QString &path, QObject *parent)
, d_ptr(new AccessPointPrivate(path, this))
{
Q_D(AccessPoint);
-
// Get all AccessPoint's properties at once
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path), [this] (const QVariantMap &initialProperties) {
+ Q_D(AccessPoint);
d->propertiesChanged(initialProperties);
- }
+ }, this);
QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
QLatin1String("PropertiesChanged"), d, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
diff --git a/src/activeconnection.cpp b/src/activeconnection.cpp
index 7a480ca..d07898f 100644
--- a/src/activeconnection.cpp
+++ b/src/activeconnection.cpp
@@ -66,10 +66,10 @@ NetworkManager::ActiveConnection::ActiveConnection(const QString &path, QObject
Q_D(ActiveConnection);
// Get all ActiveConnection's at once
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path), [this] (const QVariantMap &initialProperties) {
+ Q_D(ActiveConnection);
d->propertiesChanged(initialProperties);
- }
+ }, this);
#ifndef NMQT_STATIC
QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->path, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
diff --git a/src/adsldevice.cpp b/src/adsldevice.cpp
index fc81305..7e9b840 100644
--- a/src/adsldevice.cpp
+++ b/src/adsldevice.cpp
@@ -41,11 +41,10 @@ NetworkManager::AdslDevice::AdslDevice(const QString &path, QObject *parent)
{
Q_D(AdslDevice);
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path), [this] (const QVariantMap &initialProperties) {
+ Q_D(AdslDevice);
d->propertiesChanged(initialProperties);
- }
-
+ }, this);
QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
QLatin1String("PropertiesChanged"), d, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
}
diff --git a/src/bluetoothdevice.cpp b/src/bluetoothdevice.cpp
index de6c22a..ac38831 100644
--- a/src/bluetoothdevice.cpp
+++ b/src/bluetoothdevice.cpp
@@ -40,11 +40,10 @@ NetworkManager::BluetoothDevice::BluetoothDevice(const QString &path, QObject *p
{
Q_D(BluetoothDevice);
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->btIface.staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(NetworkManagerPrivate::DBUS_SERVICE, path), [this] (const QVariantMap &initialProperties) {
+ Q_D(BluetoothDevice);
d->propertiesChanged(initialProperties);
- }
-
+ }, this);
QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
QLatin1String("PropertiesChanged"), d, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
}
diff --git a/src/bonddevice.cpp b/src/bonddevice.cpp
index 9b89590..e3db7a1 100644
--- a/src/bonddevice.cpp
+++ b/src/bonddevice.cpp
@@ -42,11 +42,10 @@ NetworkManager::BondDevice::BondDevice(const QString &path, QObject *parent):
Device(*new BondDevicePrivate(path, this), parent)
{
Q_D(BondDevice);
-
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path), [this] (const QVariantMap &initialProperties) {
+ Q_D(BondDevice);
d->propertiesChanged(initialProperties);
- }
+ }, this);
QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
QLatin1String("PropertiesChanged"), d, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
diff --git a/src/bridgedevice.cpp b/src/bridgedevice.cpp
index 6266707..5486293 100644
--- a/src/bridgedevice.cpp
+++ b/src/bridgedevice.cpp
@@ -40,11 +40,11 @@ NetworkManager::BridgeDevice::BridgeDevice(const QString &path, QObject *parent)
Device(*new BridgeDevicePrivate(path, this), parent)
{
Q_D(BridgeDevice);
-
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path), [this] (const QVariantMap &initialProperties) {
+ Q_D(BridgeDevice);
d->propertiesChanged(initialProperties);
- }
+ }, this);
+
QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
QLatin1String("PropertiesChanged"), d, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
diff --git a/src/device.cpp b/src/device.cpp
index 397d691..09a685e 100644
--- a/src/device.cpp
+++ b/src/device.cpp
@@ -124,10 +124,9 @@ void NetworkManager::DevicePrivate::init()
deviceStatistics = DeviceStatistics::Ptr(new NetworkManager::DeviceStatistics(uni), &QObject::deleteLater);
// Get all Device's properties at once
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(deviceIface.staticInterfaceName(), uni);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(deviceIface.staticInterfaceName(), uni), [this] (const QVariantMap &initialProperties) {
propertiesChanged(initialProperties);
- }
+ }, this);
QObject::connect(&deviceIface, &OrgFreedesktopNetworkManagerDeviceInterface::StateChanged, this, &DevicePrivate::deviceStateChanged);
}
diff --git a/src/devicestatistics.cpp b/src/devicestatistics.cpp
index 011806b..e9db014 100644
--- a/src/devicestatistics.cpp
+++ b/src/devicestatistics.cpp
@@ -41,12 +41,11 @@ NetworkManager::DeviceStatistics::DeviceStatistics(const QString &path, QObject
, d_ptr(new DeviceStatisticsPrivate(path, this))
{
Q_D(DeviceStatistics);
-
- // Get all DeviceStatistics's properties at once
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path), [this] (const QVariantMap &initialProperties) {
+ Q_D(DeviceStatistics);
d->propertiesChanged(initialProperties);
- }
+ }, this);
+
QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
QLatin1String("PropertiesChanged"), d, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
diff --git a/src/genericdevice.cpp b/src/genericdevice.cpp
index edcc056..0de4a43 100644
--- a/src/genericdevice.cpp
+++ b/src/genericdevice.cpp
@@ -40,11 +40,11 @@ NetworkManager::GenericDevice::GenericDevice(const QString &path, QObject *paren
: Device(*new NetworkManager::GenericDevicePrivate(path, this), parent)
{
Q_D(GenericDevice);
-
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path), [this] (const QVariantMap &initialProperties) {
+ Q_D(GenericDevice);
d->propertiesChanged(initialProperties);
- }
+ }, this);
+
QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
QLatin1String("PropertiesChanged"), d, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
diff --git a/src/gredevice.cpp b/src/gredevice.cpp
index f9e6985..94cc943 100644
--- a/src/gredevice.cpp
+++ b/src/gredevice.cpp
@@ -41,11 +41,10 @@ NetworkManager::GreDevice::GreDevice(const QString &path, QObject *parent):
Device(*new GreDevicePrivate(path, this), parent)
{
Q_D(GreDevice);
-
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path), [this] (const QVariantMap &initialProperties) {
+ Q_D(GreDevice);
d->propertiesChanged(initialProperties);
- }
+ }, this);
QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
QLatin1String("PropertiesChanged"), d, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
diff --git a/src/infinibanddevice.cpp b/src/infinibanddevice.cpp
index d9e8726..6419f9d 100644
--- a/src/infinibanddevice.cpp
+++ b/src/infinibanddevice.cpp
@@ -42,11 +42,10 @@ NetworkManager::InfinibandDevice::InfinibandDevice(const QString &path, QObject
: Device(*new InfinibandDevicePrivate(path, this), parent)
{
Q_D(InfinibandDevice);
-
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path), [this] (const QVariantMap &initialProperties) {
+ Q_D(InfinibandDevice);
d->propertiesChanged(initialProperties);
- }
+ }, this);
QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
QLatin1String("PropertiesChanged"), d, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
diff --git a/src/iptunneldevice.cpp b/src/iptunneldevice.cpp
index a997899..6293bde 100644
--- a/src/iptunneldevice.cpp
+++ b/src/iptunneldevice.cpp
@@ -40,11 +40,10 @@ NetworkManager::IpTunnelDevice::IpTunnelDevice(const QString &path, QObject *par
Device(*new IpTunnelDevicePrivate(path, this), parent)
{
Q_D(IpTunnelDevice);
-
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path), [this] (const QVariantMap &initialProperties) {
+ Q_D(IpTunnelDevice);
d->propertiesChanged(initialProperties);
- }
+ }, this);
QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
QLatin1String("PropertiesChanged"), d, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
diff --git a/src/macvlandevice.cpp b/src/macvlandevice.cpp
index 3ea1524..07675cd 100644
--- a/src/macvlandevice.cpp
+++ b/src/macvlandevice.cpp
@@ -40,11 +40,10 @@ NetworkManager::MacVlanDevice::MacVlanDevice(const QString &path, QObject *paren
Device(*new MacVlanDevicePrivate(path, this), parent)
{
Q_D(MacVlanDevice);
-
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path), [this] (const QVariantMap &initialProperties) {
+ Q_D(MacVlanDevice);
d->propertiesChanged(initialProperties);
- }
+ }, this);
QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
QLatin1String("PropertiesChanged"), d, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
diff --git a/src/manager.cpp b/src/manager.cpp
index ff60d40..4804877 100644
--- a/src/manager.cpp
+++ b/src/manager.cpp
@@ -171,10 +171,10 @@ void NetworkManager::NetworkManagerPrivate::init()
);
// Get all Manager's properties async
- QVariantMap initialProperties = retrieveInitialProperties(iface.staticInterfaceName(), DBUS_DAEMON_PATH);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(iface.staticInterfaceName(), DBUS_DAEMON_PATH), [this] (const QVariantMap &initialProperties) {
propertiesChanged(initialProperties);
- }
+ }, this);
+
QTimer::singleShot(0, [] { qobject_cast<SettingsPrivate *>(settingsNotifier())->init(); });
@@ -246,28 +246,31 @@ NetworkManager::Device::Types NetworkManager::NetworkManagerPrivate::supportedIn
return m_supportedInterfaceTypes;
}
-QVariantMap NetworkManager::NetworkManagerPrivate::retrieveInitialProperties(const QString &interfaceName, const QString &path)
+QDBusPendingReply<QVariantMap> NetworkManager::NetworkManagerPrivate::retrieveInitialProperties(const QString &interfaceName, const QString &path)
{
QDBusMessage message = QDBusMessage::createMethodCall(DBUS_SERVICE,
path,
FDO_DBUS_PROPERTIES,
QLatin1String("GetAll"));
message << interfaceName;
+ auto ret =
#ifdef NMQT_STATIC
- QDBusMessage resultMessage = QDBusConnection::sessionBus().call(message);
+ QDBusConnection::sessionBus().asyncCall(message);
#else
- QDBusMessage resultMessage = QDBusConnection::systemBus().call(message);
+ QDBusConnection::systemBus().asyncCall(message);
#endif
- if (resultMessage.type() == QDBusMessage::ReplyMessage) {
- QVariantMap result;
- QDBusArgument dbusArgument = resultMessage.arguments().at(0).value<QDBusArgument>();
- while (!dbusArgument.atEnd()) {
- dbusArgument >> result;
- }
- return result;
- }
- return QVariantMap();
+ qDebug() << "retrieving..." << interfaceName << path;
+ QDBusPendingCallWatcher* watcher = new QDBusPendingCallWatcher(ret, nullptr);
+ auto time = QDateTime::currentMSecsSinceEpoch();
+ QObject::connect(watcher, &QDBusPendingCallWatcher::finished,
+ watcher, [interfaceName, time](QDBusPendingCallWatcher* watcher) {
+ watcher->deleteLater();
+ auto endtime = QDateTime::currentMSecsSinceEpoch();
+ QDBusReply<QVariantMap> reply = watcher->reply();
+ qDebug() << "retrieved" << interfaceName << reply.error() << reply.value() << watcher << endtime-time;
+ });
+ return ret;
}
NetworkManager::Device::Ptr NetworkManager::NetworkManagerPrivate::findRegisteredNetworkInterface(const QString &uni)
@@ -310,7 +313,7 @@ NetworkManager::ActiveConnection::Ptr NetworkManager::NetworkManagerPrivate::fin
NetworkManager::Device::Ptr NetworkManager::NetworkManagerPrivate::createNetworkInterface(const QString &uni)
{
- //qCDebug(NMQT);
+ qCDebug(NMQT);
Device::Ptr createdInterface;
Device::Ptr device(new Device(uni));
switch (device->type()) {
diff --git a/src/manager_p.h b/src/manager_p.h
index 2ee5c62..636f3e3 100644
--- a/src/manager_p.h
+++ b/src/manager_p.h
@@ -30,6 +30,7 @@
#include "activeconnection.h"
#include "manager.h"
+#include "nmdebug.h"
namespace NetworkManager
{
@@ -37,6 +38,21 @@ namespace NetworkManager
class Device;
class ActiveConnection;
+template <typename T, typename W>
+static void setWhenAvailable(const QDBusPendingReply<T>& pending, W func, QObject* parent)
+{
+ QDBusPendingCallWatcher* watcher = new QDBusPendingCallWatcher(pending, parent);
+ QObject::connect(watcher, &QDBusPendingCallWatcher::finished,
+ parent, [func](QDBusPendingCallWatcher* watcher) {
+ watcher->deleteLater();
+ QDBusPendingReply<T> reply = *watcher;
+ if (!reply.isError())
+ func(reply.value());
+ else
+ qCWarning(NMQT) << "failed call" << reply.error();
+ });
+}
+
class NetworkManagerPrivate : public NetworkManager::Notifier
{
Q_OBJECT
@@ -49,7 +65,7 @@ public:
static const QString FDO_DBUS_OBJECT_MANAGER;
// Functions useful also for other classes
- static QVariantMap retrieveInitialProperties(const QString &interfaceName, const QString &path);
+ static QDBusPendingReply<QVariantMap> retrieveInitialProperties(const QString &interfaceName, const QString &path);
NetworkManagerPrivate();
~NetworkManagerPrivate();
diff --git a/src/modemdevice.cpp b/src/modemdevice.cpp
index 82f0db5..17009ee 100644
--- a/src/modemdevice.cpp
+++ b/src/modemdevice.cpp
@@ -47,11 +47,10 @@ NetworkManager::ModemDevice::ModemDevice(const QString &path, QObject *parent)
: Device(*new ModemDevicePrivate(path, this), parent)
{
Q_D(ModemDevice);
-
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->modemIface.staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(d->modemIface.staticInterfaceName(), path), [this] (const QVariantMap &initialProperties) {
+ Q_D(ModemDevice);
d->propertiesChanged(initialProperties);
- }
+ }, this);
QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
QLatin1String("PropertiesChanged"), d, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
diff --git a/src/olpcmeshdevice.cpp b/src/olpcmeshdevice.cpp
index 1997ccf..7cf0281 100644
--- a/src/olpcmeshdevice.cpp
+++ b/src/olpcmeshdevice.cpp
@@ -39,11 +39,11 @@ NetworkManager::OlpcMeshDevice::OlpcMeshDevice(const QString &path, QObject *par
: Device(*new OlpcMeshDevicePrivate(path, this), parent)
{
Q_D(OlpcMeshDevice);
-
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path), [this] (const QVariantMap &initialProperties) {
+ Q_D(OlpcMeshDevice);
d->propertiesChanged(initialProperties);
- }
+ }, this);
+
QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
QLatin1String("PropertiesChanged"), d, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
diff --git a/src/settings.cpp b/src/settings.cpp
index 4fdc63f..b455e82 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -71,10 +71,9 @@ void NetworkManager::SettingsPrivate::init()
}
// Get all Setting's properties at once
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(iface.staticInterfaceName(), NetworkManagerPrivate::DBUS_SETTINGS_PATH);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(iface.staticInterfaceName(), NetworkManagerPrivate::DBUS_SETTINGS_PATH), [this] (const QVariantMap &initialProperties) {
propertiesChanged(initialProperties);
- }
+ }, this);
}
NetworkManager::Connection::List NetworkManager::SettingsPrivate::listConnections()
diff --git a/src/teamdevice.cpp b/src/teamdevice.cpp
index 62254f5..2fdd712 100644
--- a/src/teamdevice.cpp
+++ b/src/teamdevice.cpp
@@ -42,11 +42,10 @@ NetworkManager::TeamDevice::TeamDevice(const QString &path, QObject *parent)
: Device(*new TeamDevicePrivate(path, this), parent)
{
Q_D(TeamDevice);
-
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path), [this] (const QVariantMap &initialProperties) {
+ Q_D(TeamDevice);
d->propertiesChanged(initialProperties);
- }
+ }, this);
QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
QLatin1String("PropertiesChanged"), d, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
diff --git a/src/tundevice.cpp b/src/tundevice.cpp
index bcc6d64..1801684 100644
--- a/src/tundevice.cpp
+++ b/src/tundevice.cpp
@@ -40,11 +40,11 @@ NetworkManager::TunDevice::TunDevice(const QString &path, QObject *parent)
: Device(*new TunDevicePrivate(path, this), parent)
{
Q_D(TunDevice);
-
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path), [this] (const QVariantMap &initialProperties) {
+ Q_D(TunDevice);
d->propertiesChanged(initialProperties);
- }
+ }, this);
+
QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
QLatin1String("PropertiesChanged"), d, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
diff --git a/src/vethdevice.cpp b/src/vethdevice.cpp
index 51d9c36..69413b7 100644
--- a/src/vethdevice.cpp
+++ b/src/vethdevice.cpp
@@ -42,11 +42,11 @@ NetworkManager::VethDevice::VethDevice(const QString &path, QObject *parent)
: Device(*new VethDevicePrivate(path, this), parent)
{
Q_D(VethDevice);
-
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path), [this] (const QVariantMap &initialProperties) {
+ Q_D(VethDevice);
d->propertiesChanged(initialProperties);
- }
+ }, this);
+
QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
QLatin1String("PropertiesChanged"), d, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
diff --git a/src/vlandevice.cpp b/src/vlandevice.cpp
index 6ece2e0..8f9333c 100644
--- a/src/vlandevice.cpp
+++ b/src/vlandevice.cpp
@@ -41,11 +41,11 @@ NetworkManager::VlanDevice::VlanDevice(const QString &path, QObject *parent)
: Device(*new VlanDevicePrivate(path, this), parent)
{
Q_D(VlanDevice);
-
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path), [this] (const QVariantMap &initialProperties) {
+ Q_D(VlanDevice);
d->propertiesChanged(initialProperties);
- }
+ }, this);
+
QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
QLatin1String("PropertiesChanged"), d, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
diff --git a/src/vpnconnection.cpp b/src/vpnconnection.cpp
index 7fdc51f..4ed97f0 100644
--- a/src/vpnconnection.cpp
+++ b/src/vpnconnection.cpp
@@ -55,18 +55,18 @@ NetworkManager::VpnConnection::VpnConnection(const QString &path, QObject *paren
// We need to get ActiveConnection's properties, because by default every ActiveConnection
// is basically a VpnConnection
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(OrgFreedesktopNetworkManagerConnectionActiveInterface::staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(OrgFreedesktopNetworkManagerConnectionActiveInterface::staticInterfaceName(), path), [this] (const QVariantMap &initialProperties) {
+ Q_D(VpnConnection);
d->propertiesChanged(initialProperties);
- }
+ }, this);
// Try to retrieve VPN specific properties if this is a VPN connection
if (vpn()) {
// Get all VpnConnection's properties at once
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path), [this] (const QVariantMap &initialProperties) {
+ Q_D(VpnConnection);
d->propertiesChanged(initialProperties);
- }
+ }, this);
}
QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->path, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
diff --git a/src/wimaxdevice.cpp b/src/wimaxdevice.cpp
index d25d00d..be70275 100644
--- a/src/wimaxdevice.cpp
+++ b/src/wimaxdevice.cpp
@@ -46,11 +46,10 @@ NetworkManager::WimaxDevice::WimaxDevice(const QString &path, QObject *parent)
: Device(*new WimaxDevicePrivate(path, this), parent)
{
Q_D(WimaxDevice);
-
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->wimaxIface.staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(d->wimaxIface.staticInterfaceName(), path), [this] (const QVariantMap &initialProperties) {
+ Q_D(WimaxDevice);
d->propertiesChanged(initialProperties);
- }
+ }, this);
QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
QLatin1String("PropertiesChanged"), d, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
diff --git a/src/wireddevice.cpp b/src/wireddevice.cpp
index 66bd82b..1f8bc8e 100644
--- a/src/wireddevice.cpp
+++ b/src/wireddevice.cpp
@@ -46,12 +46,11 @@ NetworkManager::WiredDevice::WiredDevice(const QString &path, QObject *parent)
: Device(*new NetworkManager::WiredDevicePrivate(path, this), parent)
{
Q_D(WiredDevice);
-
- // Get all WiredDevices's properties at once
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->wiredIface.staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(d->wiredIface.staticInterfaceName(), path), [this] (const QVariantMap &initialProperties) {
+ Q_D(WiredDevice);
d->propertiesChanged(initialProperties);
- }
+ }, this);
+
#ifndef NMQT_STATIC
QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
diff --git a/src/wireguarddevice.cpp b/src/wireguarddevice.cpp
index c80dbe3..d7d26d6 100644
--- a/src/wireguarddevice.cpp
+++ b/src/wireguarddevice.cpp
@@ -42,11 +42,10 @@ NetworkManager::WireGuardDevice::WireGuardDevice(const QString &path, QObject *p
Device(*new WireGuardDevicePrivate(path, this), parent)
{
Q_D(WireGuardDevice);
-
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(d->iface.staticInterfaceName(), path), [this] (const QVariantMap &initialProperties) {
+ Q_D(WireGuardDevice);
d->propertiesChanged(initialProperties);
- }
+ }, this);
QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
QLatin1String("PropertiesChanged"), d, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
diff --git a/src/wirelessdevice.cpp b/src/wirelessdevice.cpp
index 833ab47..21f2fb2 100644
--- a/src/wirelessdevice.cpp
+++ b/src/wirelessdevice.cpp
@@ -58,10 +58,10 @@ NetworkManager::WirelessDevice::WirelessDevice(const QString &path, QObject *par
}
// Get all WirelessDevices's properties at once
- QVariantMap initialProperties = NetworkManagerPrivate::retrieveInitialProperties(d->wirelessIface.staticInterfaceName(), path);
- if (!initialProperties.isEmpty()) {
+ setWhenAvailable(NetworkManagerPrivate::retrieveInitialProperties(d->wirelessIface.staticInterfaceName(), path), [this] (const QVariantMap &initialProperties) {
+ Q_D(WirelessDevice);
d->propertiesChanged(initialProperties);
- }
+ }, this);
#ifndef NMQT_STATIC
QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
apol edited the content of this paste. (Show Details)May 21 2019, 3:31 PM
apol changed the title of this paste from untitled to Masterwork From Distant Lands.