diff --git a/src/wirelessdevice.h b/src/wirelessdevice.h --- a/src/wirelessdevice.h +++ b/src/wirelessdevice.h @@ -128,6 +128,18 @@ * @return the bitrate in Kbit/s */ int bitRate() const; + /** + * The time when the last "LastScan" property change was received + * @since 5.62.0 + * @return + */ + QDateTime lastScanTime() const; + /** + * The time the last RequestScan function was called + * @since 5.62.0 + * @return + */ + QDateTime lastRequestScanTime() const; /** * Retrieves the capabilities of this wifi network. * @@ -210,6 +222,12 @@ * A wireless network disappeared */ void networkDisappeared(const QString &ssid); + /** + * The LastScanTime property has changed, meaning a scan has just finished + * @since 5.62.0 + * @see lastScanTime + */ + void lastScanTimeChanged(const QDateTime timestamp); private: Q_DECLARE_PRIVATE(WirelessDevice) diff --git a/src/wirelessdevice.cpp b/src/wirelessdevice.cpp --- a/src/wirelessdevice.cpp +++ b/src/wirelessdevice.cpp @@ -94,6 +94,7 @@ QDBusPendingReply<> NetworkManager::WirelessDevice::requestScan(const QVariantMap &options) { Q_D(WirelessDevice); + d->lastRequestScanTime = QDateTime::currentDateTime(); return d->wirelessIface.RequestScan(options); } @@ -127,6 +128,18 @@ return d->bitRate; } +QDateTime NetworkManager::WirelessDevice::lastScanTime() const +{ + Q_D(const WirelessDevice); + return d->lastScanTime; +} + +QDateTime NetworkManager::WirelessDevice::lastRequestScanTime() const +{ + Q_D(const WirelessDevice); + return d->lastRequestScanTime; +} + NetworkManager::WirelessDevice::Capabilities NetworkManager::WirelessDevice::wirelessCapabilities() const { Q_D(const WirelessDevice); @@ -233,6 +246,9 @@ } else if (property == QLatin1String("WirelessCapabilities")) { wirelessCapabilities = q->convertCapabilities(value.toUInt()); Q_EMIT q->wirelessCapabilitiesChanged(wirelessCapabilities); + } else if (property == QLatin1String("LastScan")) { + lastScanTime = QDateTime::currentDateTime(); + Q_EMIT q->lastScanTimeChanged(lastScanTime); } else if (property == QLatin1String("AccessPoints")) { // TODO use this instead AccessPointAdded/Removed signals? } else { diff --git a/src/wirelessdevice_p.h b/src/wirelessdevice_p.h --- a/src/wirelessdevice_p.h +++ b/src/wirelessdevice_p.h @@ -43,6 +43,8 @@ WirelessDevice::OperationMode mode; uint bitRate; WirelessDevice::Capabilities wirelessCapabilities; + QDateTime lastScanTime; + QDateTime lastRequestScanTime; Q_DECLARE_PUBLIC(WirelessDevice) protected: