File Use-standard-interface-for-PropertiesChanged-signal-for-NM-1.4.0.patch of Package libNetworkManagerQt4
From 7671424efb02e7194a18a4913da16bc2044a4cb9 Mon Sep 17 00:00:00 2001
From: Jan Grulich <jgrulich@redhat.com>
Date: Tue, 6 Sep 2016 16:16:28 +0200
Subject: [PATCH] Use standard o.f.DBus.Properties interface for
PropertiesChanged signal for NM 1.4.0+
CCBUG:367938
REVIEW:128843
---
src/accesspoint.cpp | 13 +++++++++++++
src/accesspoint_p.h | 1 +
src/activeconnection.cpp | 22 ++++++++++++++++++++--
src/activeconnection_p.h | 4 +++-
src/adsldevice.cpp | 5 +++++
src/bluetoothdevice.cpp | 5 +++++
src/bonddevice.cpp | 5 +++++
src/bridgedevice.cpp | 5 +++++
src/connection.cpp | 13 +++++++++++++
src/connection_p.h | 1 +
src/device.cpp | 9 +++++++++
src/device_p.h | 1 +
src/dhcp4config.cpp | 14 +++++++++++++-
src/dhcp4config_p.h | 1 +
src/dhcp6config.cpp | 15 ++++++++++++++-
src/dhcp6config_p.h | 1 +
src/genericdevice.cpp | 5 +++++
src/gredevice.cpp | 5 +++++
src/infinibanddevice.cpp | 5 +++++
src/macvlandevice.cpp | 5 +++++
src/manager.cpp | 14 +++++++++++++-
src/manager_p.h | 1 +
src/modemdevice.cpp | 10 ++++++++++
src/olpcmeshdevice.cpp | 5 +++++
src/settings.cpp | 13 +++++++++++++
src/settings_p.h | 1 +
src/teamdevice.cpp | 5 +++++
src/tundevice.cpp | 5 +++++
src/vethdevice.cpp | 5 +++++
src/vlandevice.cpp | 5 +++++
src/vpnconnection.cpp | 16 ++++++++++++++++
src/vpnconnection_p.h | 1 +
src/wimaxdevice.cpp | 5 +++++
src/wireddevice.cpp | 5 +++++
src/wirelessdevice.cpp | 5 +++++
35 files changed, 225 insertions(+), 6 deletions(-)
diff --git a/accesspoint.cpp b/accesspoint.cpp
index d1abe316..60a284bd 100644
--- a/accesspoint.cpp
+++ b/accesspoint.cpp
@@ -89,8 +91,13 @@ NetworkManager::AccessPoint::AccessPoint(const QString &path, QObject *parent)
d->maxBitRate = d->iface.maxBitrate();
// make this a static on WirelessNetworkInterface
d->mode = convertOperationMode(d->iface.mode());
+#if NM_CHECK_VERSION(1, 4, 0)
+ QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
+ QLatin1String("PropertiesChanged"), this, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
+#else
connect(&d->iface, SIGNAL(PropertiesChanged(QVariantMap)),
this, SLOT(propertiesChanged(QVariantMap)));
+#endif
}
}
@@ -188,6 +195,14 @@ NetworkManager::AccessPoint::OperationMode NetworkManager::AccessPoint::convertO
return ourMode;
}
+void NetworkManager::AccessPoint::dbusPropertiesChanged(const QString &interfaceName, const QVariantMap &properties, const QStringList &invalidatedProperties)
+{
+ Q_UNUSED(invalidatedProperties);
+ if (interfaceName == QLatin1String("org.freedesktop.NetworkManager.AccessPoint")) {
+ propertiesChanged(properties);
+ }
+}
+
void NetworkManager::AccessPoint::propertiesChanged(const QVariantMap &properties)
{
Q_D(AccessPoint);
diff --git a/accesspoint.h b/accesspoint.h
index bf111c84..c2ab5377 100644
--- a/accesspoint.h
+++ b/accesspoint.h
@@ -170,6 +170,7 @@ public:
void frequencyChanged(uint frequency);
protected Q_SLOTS:
+ void dbusPropertiesChanged(const QString &interfaceName, const QVariantMap &properties, const QStringList &invalidatedProperties);
void propertiesChanged(const QVariantMap &properties);
private:
diff --git a/activeconnection.cpp b/activeconnection.cpp
index fc8a1ac2..1b66fc56 100644
--- a/activeconnection.cpp
+++ b/activeconnection.cpp
@@ -64,8 +64,13 @@ NetworkManager::ActiveConnection::ActiveConnection(const QString &path, QObject
{
Q_D(ActiveConnection);
+#if NM_CHECK_VERSION(1, 4, 0)
+ QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->path, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
+ QLatin1String("PropertiesChanged"), this, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
+#else
connect(&d->iface, SIGNAL(PropertiesChanged(QVariantMap)),
this, SLOT(propertiesChanged(QVariantMap)));
+#endif
}
NetworkManager::ActiveConnection::ActiveConnection(ActiveConnectionPrivate &dd, QObject *parent)
@@ -73,8 +78,13 @@ NetworkManager::ActiveConnection::ActiveConnection(ActiveConnectionPrivate &dd,
{
Q_D(ActiveConnection);
+#if NM_CHECK_VERSION(1, 4, 0)
+ QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->path, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
+ QLatin1String("PropertiesChanged"), this, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
+#else
connect(&d->iface, SIGNAL(PropertiesChanged(QVariantMap)),
this, SLOT(propertiesChanged(QVariantMap)));
+#endif
}
NetworkManager::ActiveConnection::~ActiveConnection()
@@ -148,9 +158,20 @@ void NetworkManager::ActiveConnectionPrivate::recheckProperties()
return d->devices;
}
+void NetworkManager::ActiveConnection::dbusPropertiesChanged(const QString &interfaceName, const QVariantMap &properties, const QStringList &invalidatedProperties)
+{
+ Q_UNUSED(invalidatedProperties);
+
+ if (interfaceName == QLatin1String("org.freedesktop.NetworkManager.Connection.Active")) {
+ propertiesChanged(properties);
+ }
+}
+
void NetworkManager::ActiveConnection::propertiesChanged(const QVariantMap &properties)
{
Q_D(ActiveConnection);
+
+ // qDebug() << Q_FUNC_INFO << properties;
QVariantMap::const_iterator it = properties.constBegin();
while (it != properties.constEnd()) {
diff --git a/activeconnection.h b/activeconnection.h
index d021437e..60697e6f 100644
--- a/activeconnection.h
+++ b/activeconnection.h
@@ -154,6 +154,7 @@ public:
protected Q_SLOTS:
void propertiesChanged(const QVariantMap &properties);
+ void dbusPropertiesChanged(const QString &interfaceName, const QVariantMap &properties, const QStringList &invalidatedProperties);
private:
Q_DECLARE_PRIVATE(ActiveConnection)
diff --git a/adsldevice.cpp b/adsldevice.cpp
index f07b5e6d..8f9bbff4 100644
--- a/adsldevice.cpp
+++ b/adsldevice.cpp
@@ -57,8 +57,13 @@ NetworkManager::AdslDevice::AdslDevice(const QString &path, QObject *parent)
d->carrier = d->iface.carrier();
+#if NM_CHECK_VERSION(1, 4, 0)
+ QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
+ QLatin1String("PropertiesChanged"), this, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
+#else
connect(&d->iface, SIGNAL(PropertiesChanged(QVariantMap)),
this, SLOT(propertiesChanged(QVariantMap)));
+#endif
}
NetworkManager::AdslDevicePrivate::~AdslDevicePrivate()
diff --git a/bluetoothdevice.cpp b/bluetoothdevice.cpp
index 3ccf276c..eb839e08 100644
--- a/bluetoothdevice.cpp
+++ b/bluetoothdevice.cpp
@@ -37,8 +37,13 @@ NetworkManager::BluetoothDevice::BluetoothDevice(const QString &path, QObject *p
: ModemDevice(*new BluetoothDevicePrivate(path, this), parent)
{
Q_D(BluetoothDevice);
+#if NM_CHECK_VERSION(1, 4, 0)
+ QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
+ QLatin1String("PropertiesChanged"), this, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
+#else
connect(&d->btIface, SIGNAL(PropertiesChanged(QVariantMap)),
this, SLOT(propertiesChanged(QVariantMap)));
+#endif
}
NetworkManager::BluetoothDevice::~BluetoothDevice()
diff --git a/bonddevice.cpp b/bonddevice.cpp
index d9798b04..6d1899f4 100644
--- a/bonddevice.cpp
+++ b/bonddevice.cpp
@@ -63,8 +63,13 @@ NetworkManager::BondDevice::BondDevice(const QString &path, QObject *parent):
}
d->slaves = list;
+#if NM_CHECK_VERSION(1, 4, 0)
+ QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
+ QLatin1String("PropertiesChanged"), this, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
+#else
connect(&d->iface, SIGNAL(PropertiesChanged(QVariantMap)),
this, SLOT(propertiesChanged(QVariantMap)));
+#endif
}
NetworkManager::BondDevicePrivate::~BondDevicePrivate()
diff --git a/bridgedevice.cpp b/bridgedevice.cpp
index f345ad5a..3c347afb 100644
--- a/bridgedevice.cpp
+++ b/bridgedevice.cpp
@@ -64,8 +64,13 @@ NetworkManager::BridgeDevice::BridgeDevice(const QString &path, QObject *parent)
}
d->slaves = list;
+#if NM_CHECK_VERSION(1, 4, 0)
+ QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
+ QLatin1String("PropertiesChanged"), this, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
+#else
connect(&d->iface, SIGNAL(PropertiesChanged(QVariantMap)),
this, SLOT(propertiesChanged(QVariantMap)));
+#endif
}
NetworkManager::BridgeDevice::~BridgeDevice()
diff --git a/device.cpp b/device.cpp
index f7bc7e61..57538eb1 100644
--- a/device.cpp
+++ b/device.cpp
@@ -192,6 +192,7 @@ void NetworkManager::Device::propertyChanged(const QString &property, con
{
Q_D(Device);
+ // qDebug() << property << " - " << value;
if (property == QLatin1String("ActiveConnection")) {
// FIXME workaround, because NM doesn't emit correct value
// d->activeConnection = value.value<QDBusObjectPath>.path();
@@ -494,6 +495,14 @@ void NetworkManager::DevicePrivate::deviceStateChanged(uint newState, uint oldSt
emit stateChanged(d->connectionState, NetworkManager::DevicePrivate::convertState(old_state), NetworkManager::DevicePrivate::convertReason(reason));
}
+void NetworkManager::Device::dbusPropertiesChanged(const QString &interfaceName, const QVariantMap &properties, const QStringList &invalidatedProperties)
+{
+ Q_UNUSED(invalidatedProperties);
+ if (interfaceName.contains(QLatin1String("org.freedesktop.NetworkManager.Device"))) {
+ propertiesChanged(properties);
+ }
+}
+
void NetworkManager::Device::propertiesChanged(const QVariantMap &properties)
{
Q_D(Device);
diff --git a/device.h b/device.h
index da85faf4..4e8750f0 100644
--- a/device.h
+++ b/device.h
@@ -456,6 +456,7 @@ public:
protected Q_SLOTS:
void deviceStateChanged(uint, uint, uint);
+ void dbusPropertiesChanged(const QString &interfaceName, const QVariantMap &properties, const QStringList &invalidatedProperties);
void propertiesChanged(const QVariantMap &properties);
private:
diff --git a/dhcp4config.cpp b/dhcp4config.cpp
index efcd98db..c52cc00d 100644
--- a/dhcp4config.cpp
+++ b/dhcp4config.cpp
@@ -39,8 +39,13 @@ NetworkManager::Dhcp4Config::Dhcp4Config(const QString &path, QObject *owner)
: d_ptr(new Dhcp4ConfigPrivate(path, owner))
{
Q_D(Dhcp4Config);
+#if NM_CHECK_VERSION(1, 4, 0)
+ QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->myPath, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
+ QLatin1String("PropertiesChanged"), this, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
+#else
connect(&d->dhcp4Iface, SIGNAL(PropertiesChanged(QVariantMap)),
SLOT(dhcp4PropertiesChanged(QVariantMap)));
+#endif
d->properties = d->dhcp4Iface.options();
}
@@ -71,6 +75,13 @@ QString NetworkManager::Dhcp4Config::optionValue(const QString &key) const
return value;
}
+void NetworkManager::Dhcp4Config::dbusPropertiesChanged(const QString &interfaceName, const QVariantMap &properties, const QStringList &invalidatedProperties)
+{
+ Q_UNUSED(invalidatedProperties);
+ if (interfaceName == QLatin1String("org.freedesktop.NetworkManager.DHCP4Config")) {
+ dhcp4PropertiesChanged(properties);
+ }
+}
void NetworkManager::Dhcp4Config::dhcp4PropertiesChanged(const QVariantMap &properties)
{
diff --git a/dhcp4config.h b/dhcp4config.h
index ce5563c3..74402085 100644
--- a/dhcp4config.h
+++ b/dhcp4config.h
@@ -53,6 +53,7 @@ public:
void optionsChanged(const QVariantMap &);
protected Q_SLOTS:
+ void dbusPropertiesChanged(const QString &interfaceName, const QVariantMap &properties, const QStringList &invalidatedProperties);
void dhcp4PropertiesChanged(const QVariantMap &);
private:
diff --git a/dhcp6config.cpp b/dhcp6config.cpp
index 4f0a3b64..c0a4d2aa 100644
--- a/dhcp6config.cpp
+++ b/dhcp6config.cpp
@@ -39,8 +39,13 @@ NetworkManager::Dhcp6Config::Dhcp6Config(const QString &path, QObject *owner)
: d_ptr(new Dhcp6ConfigPrivate(path, owner))
{
Q_D(Dhcp6Config);
+#if NM_CHECK_VERSION(1, 4, 0)
+ QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->myPath, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
+ QLatin1String("PropertiesChanged"), this, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
+#else
connect(&d->dhcp6Iface, SIGNAL(PropertiesChanged(QVariantMap)),
SLOT(dhcp6PropertiesChanged(QVariantMap)));
+#endif
d->properties = d->dhcp6Iface.options();
}
@@ -71,6 +76,14 @@ QString NetworkManager::Dhcp6Config::optionValue(const QString &key) const
return value;
}
+void NetworkManager::Dhcp6Config::dbusPropertiesChanged(const QString &interfaceName, const QVariantMap &properties, const QStringList &invalidatedProperties)
+{
+ Q_UNUSED(invalidatedProperties);
+ if (interfaceName == QLatin1String("org.freedesktop.NetworkManager.DHCP6Config")) {
+ dhcp6PropertiesChanged(properties);
+ }
+}
+
void NetworkManager::Dhcp6Config::dhcp6PropertiesChanged(const QVariantMap &properties)
{
diff --git a/dhcp6config.h b/dhcp6config.h
index 093f234b..83acacb4 100644
--- a/dhcp6config.h
+++ b/dhcp6config.h
@@ -53,6 +53,7 @@ public:
void optionsChanged(const QVariantMap &);
protected Q_SLOTS:
+ void dbusPropertiesChanged(const QString &interfaceName, const QVariantMap &properties, const QStringList &invalidatedProperties);
void dhcp6PropertiesChanged(const QVariantMap &);
private:
diff --git a/infinibanddevice.cpp b/infinibanddevice.cpp
index 15b35754..9bfa76f0 100644
--- a/infinibanddevice.cpp
+++ b/infinibanddevice.cpp
@@ -59,8 +59,13 @@ NetworkManager::InfinibandDevice::InfinibandDevice(const QString &path, QObject
d->carrier = d->iface.carrier();
d->hwAddress = d->iface.hwAddress();
+#if NM_CHECK_VERSION(1, 4, 0)
+ QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
+ QLatin1String("PropertiesChanged"), this, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
+#else
connect(&d->iface, SIGNAL(PropertiesChanged(QVariantMap)),
this, SLOT(propertiesChanged(QVariantMap)));
+#endif
}
NetworkManager::InfinibandDevicePrivate::~InfinibandDevicePrivate()
diff --git a/manager.cpp b/manager.cpp
index 01723d7b..d2f706e7 100644
--- a/manager.cpp
+++ b/manager.cpp
@@ -53,9 +53,12 @@
#include "nmdebug.h"
+#define DBUS_PROPERTIES "org.freedesktop.DBus.Properties"
+
const QString NetworkManager::NetworkManagerPrivate::DBUS_SERVICE(QString::fromLatin1(NM_DBUS_SERVICE));
const QString NetworkManager::NetworkManagerPrivate::DBUS_DAEMON_PATH(QString::fromLatin1(NM_DBUS_PATH));
const QString NetworkManager::NetworkManagerPrivate::DBUS_SETTINGS_PATH(QString::fromLatin1(NM_DBUS_PATH_SETTINGS));
+const QString NetworkManager::NetworkManagerPrivate::FDO_DBUS_PROPERTIES(QString::fromLatin1(DBUS_PROPERTIES));
NM_GLOBAL_STATIC(NetworkManager::NetworkManagerPrivate, globalNetworkManager)
@@ -97,7 +100,12 @@ NetworkManager::NetworkManagerPrivate::NetworkManagerPrivate()
{
connect(&iface, SIGNAL(DeviceAdded(QDBusObjectPath)), SLOT(onDeviceAdded(QDBusObjectPath)), Qt::UniqueConnection);
connect(&iface, SIGNAL(DeviceRemoved(QDBusObjectPath)), SLOT(onDeviceRemoved(QDBusObjectPath)), Qt::UniqueConnection);
+#if NM_CHECK_VERSION(1, 4, 0)
+ QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, NetworkManagerPrivate::DBUS_DAEMON_PATH, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
+ QLatin1String("PropertiesChanged"), this, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
+#else
connect(&iface, SIGNAL(PropertiesChanged(QVariantMap)), SLOT(propertiesChanged(QVariantMap)), Qt::UniqueConnection);
+#endif
qDBusRegisterMetaType<UIntList>();
qDBusRegisterMetaType<UIntListList>();
@@ -580,6 +588,14 @@ void NetworkManager::NetworkManagerPrivate::stateChanged(uint state)
}
}
+void NetworkManager::NetworkManagerPrivate::dbusPropertiesChanged(const QString &interfaceName, const QVariantMap &properties, const QStringList &invalidatedProperties)
+{
+ Q_UNUSED(invalidatedProperties);
+ if (interfaceName == QLatin1String("org.freedesktop.NetworkManager")) {
+ propertiesChanged(properties);
+ }
+}
+
void NetworkManager::NetworkManagerPrivate::propertiesChanged(const QVariantMap &changedProperties)
{
QVariantMap::const_iterator it = changedProperties.constBegin();
diff --git a/manager_p.h b/manager_p.h
index d0a9d8c1..50c3c341 100644
--- a/manager_p.h
+++ b/manager_p.h
@@ -43,6 +43,7 @@ public:
static const QString DBUS_SERVICE;
static const QString DBUS_DAEMON_PATH;
static const QString DBUS_SETTINGS_PATH;
+ static const QString FDO_DBUS_PROPERTIES;
NetworkManagerPrivate();
~NetworkManagerPrivate();
@@ -121,6 +121,7 @@ protected Q_SLOTS:
void init();
void onDeviceAdded(const QDBusObjectPath &state);
void onDeviceRemoved(const QDBusObjectPath &state);
+ void dbusPropertiesChanged(const QString &interfaceName, const QVariantMap &properties, const QStringList &invalidatedProperties);
void propertiesChanged(const QVariantMap &changedProperties);
void daemonRegistered();
void daemonUnregistered();
diff --git a/modemdevice.cpp b/modemdevice.cpp
index 89394f02..4bb4a234 100644
--- a/modemdevice.cpp
+++ b/modemdevice.cpp
@@ -65,8 +65,13 @@ NetworkManager::ModemDevice::ModemDevice(const QString &path, QObject *parent)
#if WITH_MODEMMANAGERQT
d->m_modemUdi = getUdiForModemManager();
#endif
+#if NM_CHECK_VERSION(1, 4, 0)
+ QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
+ QLatin1String("PropertiesChanged"), this, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
+#else
connect(&d->modemIface, SIGNAL(PropertiesChanged(QVariantMap)),
this, SLOT(propertiesChanged(QVariantMap)));
+#endif
}
NetworkManager::ModemDevice::ModemDevice(NetworkManager::ModemDevicePrivate &dd, QObject *parent)
@@ -81,8 +86,13 @@ NetworkManager::ModemDevice::ModemDevice(NetworkManager::ModemDevicePrivate &dd,
#if WITH_MODEMMANAGERQT
d->m_modemUdi = getUdiForModemManager();
#endif
+#if NM_CHECK_VERSION(1, 4, 0)
+ QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
+ QLatin1String("PropertiesChanged"), this, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
+#else
connect(&d->modemIface, SIGNAL(PropertiesChanged(QVariantMap)),
this, SLOT(propertiesChanged(QVariantMap)));
+#endif
}
NetworkManager::ModemDevice::~ModemDevice()
diff --git a/olpcmeshdevice.cpp b/olpcmeshdevice.cpp
index 286a080b..6f1212da 100644
--- a/olpcmeshdevice.cpp
+++ b/olpcmeshdevice.cpp
@@ -40,8 +40,13 @@ NetworkManager::OlpcMeshDevice::OlpcMeshDevice(const QString &path, QObject *par
d->activeChannel = d->iface.activeChannel();
d->companion = d->iface.companion().path();
+#if NM_CHECK_VERSION(1, 4, 0)
+ QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
+ QLatin1String("PropertiesChanged"), this, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
+#else
connect(&d->iface, SIGNAL(PropertiesChanged(QVariantMap)),
this, SLOT(propertiesChanged(QVariantMap)));
+#endif
}
NetworkManager::OlpcMeshDevice::~OlpcMeshDevice()
diff --git a/settings.cpp b/settings.cpp
index f75b86ab..90e72678 100644
--- a/settings.cpp
+++ b/settings.cpp
@@ -49,7 +49,12 @@ NetworkManager::SettingsPrivate::SettingsPrivate()
void NetworkManager::SettingsPrivate::init()
{
+#if NM_CHECK_VERSION(1, 4, 0)
+ QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, NetworkManagerPrivate::DBUS_SETTINGS_PATH, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
+ QLatin1String("PropertiesChanged"), this, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
+#else
connect(&iface, SIGNAL(PropertiesChanged(QVariantMap)), this, SLOT(propertiesChanged(QVariantMap)));
+#endif
connect(&iface, SIGNAL(NewConnection(QDBusObjectPath)), this, SLOT(onConnectionAdded(QDBusObjectPath)));
QDBusPendingReply<QList<QDBusObjectPath> > reply = iface.ListConnections();
@@ -149,6 +154,14 @@ void NetworkManager::SettingsPrivate::saveHostname(const QString &hostname)
iface.SaveHostname(hostname);
}
+void NetworkManager::SettingsPrivate::dbusPropertiesChanged(const QString &interfaceName, const QVariantMap &properties, const QStringList &invalidatedProperties)
+{
+ Q_UNUSED(invalidatedProperties);
+ if (interfaceName == QLatin1String("org.freedesktop.NetworkManager.Settings")) {
+ propertiesChanged(properties);
+ }
+}
+
void NetworkManager::SettingsPrivate::propertiesChanged(const QVariantMap &properties)
{
QVariantMap::const_iterator it = properties.constBegin();
diff --git a/vlandevice.cpp b/vlandevice.cpp
index 415dec97..fdfa2971 100644
--- a/vlandevice.cpp
+++ b/vlandevice.cpp
@@ -60,8 +60,13 @@ NetworkManager::VlanDevice::VlanDevice(const QString &path, QObject *parent)
d->hwAddress = d->iface.hwAddress();
d->vlanId = d->iface.vlanId();
+#if NM_CHECK_VERSION(1, 4, 0)
+ QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
+ QLatin1String("PropertiesChanged"), this, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
+#else
connect(&d->iface, SIGNAL(PropertiesChanged(QVariantMap)),
this, SLOT(propertiesChanged(QVariantMap)));
+#endif
}
NetworkManager::VlanDevicePrivate::~VlanDevicePrivate()
diff --git a/settings_p.h b/settings_p.h
index 466d0a75..df0dc086 100644
--- a/settings_p.h
+++ b/settings_p.h
@@ -54,6 +54,7 @@ protected Q_SLOTS:
protected Q_SLOTS:
void onConnectionAdded(const QDBusObjectPath &);
void onConnectionRemoved(const QString &);
+ void dbusPropertiesChanged(const QString &interfaceName, const QVariantMap &properties, const QStringList &invalidatedProperties);
void propertiesChanged(const QVariantMap &properties);
void onConnectionAddArrived(QDBusPendingCallWatcher *);
void initNotifier();
diff --git a/vpnconnection.cpp b/vpnconnection.cpp
index d2d17e49..5dee6fc2 100644
--- a/vpnconnection.cpp
+++ b/vpnconnection.cpp
@@ -54,8 +54,13 @@ NetworkManager::VpnConnection::VpnConnection(const QString &path, QObject *paren
Q_D(VpnConnection);
d->banner = d->iface.banner();
d->state = NetworkManager::VpnConnectionPrivate::convertVpnConnectionState(d->iface.vpnState());
+#if NM_CHECK_VERSION(1, 4, 0)
+ QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->path, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
+ QLatin1String("PropertiesChanged"), this, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
+#else
connect(&d->iface, SIGNAL(PropertiesChanged(QVariantMap)),
this, SLOT(propertiesChanged(QVariantMap)));
+#endif
connect(&d->iface, SIGNAL(VpnStateChanged(uint,uint)),
this, SLOT(vpnStateChanged(uint,uint)));
}
@@ -77,6 +82,17 @@ NetworkManager::VpnConnection::State NetworkManager::VpnConnection::state() cons
return d->state;
}
+void NetworkManager::VpnConnection::dbusPropertiesChanged(const QString &interfaceName, const QVariantMap &properties, const QStringList &invalidatedProperties)
+{
+ Q_UNUSED(invalidatedProperties);
+
+ if (interfaceName == QLatin1String("org.freedesktop.NetworkManager.VPN.Connection")) {
+ propertiesChanged(properties);
+ } else {
+ ActiveConnection::propertiesChanged(properties);
+ }
+}
+
void NetworkManager::VpnConnection::propertiesChanged(const QVariantMap &properties)
{
Q_D(VpnConnection);
diff --git a/vpnconnection.h b/vpnconnection.h
index 25ba589e..a8195ad3 100644
--- a/vpnconnection.h
+++ b/vpnconnection.h
@@ -112,6 +112,7 @@ public:
void stateChanged(NetworkManager::VpnConnection::State state, NetworkManager::VpnConnection::StateChangeReason reason);
protected Q_SLOTS:
+ void dbusPropertiesChanged(const QString &interfaceName, const QVariantMap &properties, const QStringList &invalidatedProperties);
void propertiesChanged(const QVariantMap &properties);
void vpnStateChanged(uint state, uint reason);
diff --git a/wimaxdevice.cpp b/wimaxdevice.cpp
index daec0a6c..6118f2f4 100644
--- a/wimaxdevice.cpp
+++ b/wimaxdevice.cpp
@@ -45,8 +45,13 @@ NetworkManager::WimaxDevice::WimaxDevice(const QString &path, QObject *parent)
d->rssi = d->wimaxIface.rssi();
d->txPower = d->wimaxIface.txPower();
+#if NM_CHECK_VERSION(1, 4, 0)
+ QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
+ QLatin1String("PropertiesChanged"), this, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
+#else
connect(&d->wimaxIface, SIGNAL(PropertiesChanged(QVariantMap)),
this, SLOT(propertiesChanged(QVariantMap)));
+#endif
connect(&d->wimaxIface, SIGNAL(NspAdded(QDBusObjectPath)),
this, SLOT(nspAdded(QDBusObjectPath)));
connect(&d->wimaxIface, SIGNAL(NspRemoved(QDBusObjectPath)),
diff --git a/wireddevice.cpp b/wireddevice.cpp
index af147b12..66bb649b 100644
--- a/wireddevice.cpp
+++ b/wireddevice.cpp
@@ -46,8 +46,13 @@ NetworkManager::WiredDevice::WiredDevice(const QString &path, QObject *parent)
d->permanentHardwareAddress = d->wiredIface.permHwAddress();
d->bitrate = d->wiredIface.speed() * 1000;
d->carrier = d->wiredIface.carrier();
+#if NM_CHECK_VERSION(1, 4, 0)
+ QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
+ QLatin1String("PropertiesChanged"), this, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
+#else
connect(&d->wiredIface, SIGNAL(PropertiesChanged(QVariantMap)),
this, SLOT(propertiesChanged(QVariantMap)));
+#endif
}
NetworkManager::WiredDevice::~WiredDevice()
diff --git a/wirelessdevice.cpp b/wirelessdevice.cpp
index dad918d6..3f2972b8 100644
--- a/wirelessdevice.cpp
+++ b/wirelessdevice.cpp
@@ -47,8 +47,13 @@ NetworkManager::WirelessDevice::WirelessDevice(const QString &path, QObject *par
d->bitRate = d->wirelessIface.bitrate();
d->wirelessCapabilities = convertCapabilities(d->wirelessIface.wirelessCapabilities());
+#if NM_CHECK_VERSION(1, 4, 0)
+ QDBusConnection::systemBus().connect(NetworkManagerPrivate::DBUS_SERVICE, d->uni, NetworkManagerPrivate::FDO_DBUS_PROPERTIES,
+ QLatin1String("PropertiesChanged"), this, SLOT(dbusPropertiesChanged(QString,QVariantMap,QStringList)));
+#else
connect(&d->wirelessIface, SIGNAL(PropertiesChanged(QVariantMap)),
this, SLOT(propertiesChanged(QVariantMap)));
+#endif
connect(&d->wirelessIface, SIGNAL(AccessPointAdded(QDBusObjectPath)),
this, SLOT(accessPointAdded(QDBusObjectPath)));
connect(&d->wirelessIface, SIGNAL(AccessPointRemoved(QDBusObjectPath)),
--
GitLab