diff --git a/src/device.h b/src/device.h --- a/src/device.h +++ b/src/device.h @@ -46,7 +46,7 @@ Q_OBJECT Q_PROPERTY(QString ubi READ ubi) - Q_PROPERTY(QString address READ address) + Q_PROPERTY(QString address READ address NOTIFY addressChanged) Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) Q_PROPERTY(QString friendlyName READ friendlyName NOTIFY friendlyNameChanged) Q_PROPERTY(QString remoteName READ remoteName NOTIFY remoteNameChanged) @@ -423,6 +423,11 @@ */ void nameChanged(const QString &name); + /** + * Indicates that device's address have changed. + */ + void addressChanged(const QString &address); + /** * Indicates that device's friendly name have changed. */ diff --git a/src/device_p.h b/src/device_p.h --- a/src/device_p.h +++ b/src/device_p.h @@ -53,6 +53,7 @@ void propertiesChanged(const QString &interface, const QVariantMap &changed, const QStringList &invalidated); void namePropertyChanged(const QString &value); void aliasPropertyChanged(const QString &value); + void addressPropertyChanged(const QString &value); void classPropertyChanged(quint32 value); QWeakPointer q; diff --git a/src/device_p.cpp b/src/device_p.cpp --- a/src/device_p.cpp +++ b/src/device_p.cpp @@ -147,6 +147,8 @@ if (property == QLatin1String("Name")) { namePropertyChanged(value.toString()); + } else if (property == QLatin1String("Address")) { + addressPropertyChanged(value.toString()); } else if (property == QLatin1String("Alias")) { aliasPropertyChanged(value.toString()); } else if (property == QLatin1String("Class")) { @@ -204,6 +206,14 @@ } } +void DevicePrivate::addressPropertyChanged(const QString &value) +{ + if (m_address != value) { + m_address = value; + Q_EMIT q.data()->addressChanged(m_address); + } +} + void DevicePrivate::aliasPropertyChanged(const QString &value) { if (m_alias != value) {