Skip to content

Commit c4656a7

Browse files
committed
fix: scanning is bindable on backend
1 parent c9f70e0 commit c4656a7

File tree

4 files changed

+10
-7
lines changed

4 files changed

+10
-7
lines changed

src/network/nm/backend.cpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -149,10 +149,7 @@ void NetworkManager::registerWifiDevice(const QString& path) {
149149
device->bindableState().setBinding([wireless]() {
150150
return qs::network::NetworkManager::toNetworkDeviceState(wireless->state());
151151
});
152-
device->bindableScanning().setBinding([wireless]() {
153-
(void)wireless->lastScan();
154-
return false;
155-
});
152+
device->bindableScanning().setBinding([wireless]() { return wireless->scanning(); });
156153
// clang-format off
157154
QObject::connect(wireless, &NMWirelessDevice::addAndActivateConnection, this, &NetworkManager::addAndActivateConnection);
158155
QObject::connect(wireless, &NMWirelessDevice::activateConnection, this, &NetworkManager::activateConnection);

src/network/nm/wireless.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ void NMWirelessDevice::initWireless() {
193193
QObject::connect(this, &NMWirelessDevice::accessPointLoaded, this, &NMWirelessDevice::onAccessPointLoaded);
194194
QObject::connect(this, &NMWirelessDevice::connectionLoaded, this, &NMWirelessDevice::onConnectionLoaded);
195195
QObject::connect(this, &NMWirelessDevice::activeConnectionLoaded, this, &NMWirelessDevice::onActiveConnectionLoaded);
196+
QObject::connect(this, &NMWirelessDevice::lastScanChanged, this, [this]() { this->bScanning = false; });
196197
// clang-format on
197198
this->registerAccessPoints();
198199
}
@@ -344,7 +345,11 @@ void NMWirelessDevice::onActiveConnectionLoaded(NMActiveConnection* active) {
344345
}
345346
}
346347

347-
void NMWirelessDevice::scan() { this->wirelessProxy->RequestScan({}); }
348+
void NMWirelessDevice::scan() {
349+
this->wirelessProxy->RequestScan({});
350+
this->bScanning = true;
351+
}
352+
348353
bool NMWirelessDevice::isWirelessValid() const {
349354
return this->wirelessProxy && this->wirelessProxy->isValid();
350355
}

src/network/nm/wireless.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,12 +95,14 @@ class NMWirelessDevice: public NMDevice {
9595
[[nodiscard]] qint64 lastScan() { return this->bLastScan; };
9696
[[nodiscard]] NMWirelessCapabilities::Enum capabilities() { return this->bCapabilities; };
9797
[[nodiscard]] const QDBusObjectPath& activeApPath() { return this->bActiveAccessPoint; };
98+
[[nodiscard]] bool scanning() { return this->bScanning; };
9899

99100
public slots:
100101
void scan();
101102

102103
signals:
103104
void lastScanChanged(qint64 lastScan);
105+
void scanningChanged(bool scanning);
104106
void capabilitiesChanged(NMWirelessCapabilities::Enum caps);
105107
void activeAccessPointChanged(const QDBusObjectPath& path);
106108
void accessPointLoaded(NMAccessPoint* ap);
@@ -132,6 +134,7 @@ private slots:
132134

133135
// clang-format off
134136
Q_OBJECT_BINDABLE_PROPERTY(NMWirelessDevice, qint64, bLastScan, &NMWirelessDevice::lastScanChanged);
137+
Q_OBJECT_BINDABLE_PROPERTY(NMWirelessDevice, bool, bScanning, &NMWirelessDevice::scanningChanged);
135138
Q_OBJECT_BINDABLE_PROPERTY(NMWirelessDevice, NMWirelessCapabilities::Enum, bCapabilities, &NMWirelessDevice::capabilitiesChanged);
136139
Q_OBJECT_BINDABLE_PROPERTY(NMWirelessDevice, QDBusObjectPath, bActiveAccessPoint, &NMWirelessDevice::activeAccessPointChanged);
137140

src/network/wifi.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,7 @@ void WifiDevice::scan() {
2020
qCCritical(logWifiDevice) << this << "is already scanning";
2121
return;
2222
}
23-
2423
qCDebug(logWifiDevice) << "Requesting scan on" << this;
25-
this->bScanning = true;
2624
this->requestScan();
2725
}
2826

0 commit comments

Comments
 (0)