Skip to content

Commit 434f9ee

Browse files
committed
fix: style, includes, best network Security
1 parent c23b068 commit 434f9ee

20 files changed

+451
-563
lines changed

src/network/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
# NetworkManager DBus
21
set_source_files_properties(nm/org.freedesktop.NetworkManager.xml PROPERTIES
32
CLASSNAME DBusNetworkManagerProxy
43
NO_NAMESPACE TRUE

src/network/device.cpp

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
11
#include "device.hpp"
22

3-
#include <qdbusconnection.h>
4-
#include <qdbusconnectioninterface.h>
5-
#include <qdbusextratypes.h>
6-
#include <qdbuspendingcall.h>
7-
#include <qdbuspendingreply.h>
8-
#include <qdbusservicewatcher.h>
93
#include <qlogging.h>
4+
#include <qloggingcategory.h>
5+
6+
#include "../core/logcat.hpp"
107

118
namespace qs::network {
129

1310
namespace {
14-
Q_LOGGING_CATEGORY(logNetworkDevice, "quickshell.network.device", QtWarningMsg);
11+
QS_LOGGING_CATEGORY(logNetworkDevice, "quickshell.network.device", QtWarningMsg);
1512
} // namespace
1613

1714
NetworkDevice::NetworkDevice(QObject* parent): QObject(parent) {};
@@ -55,13 +52,26 @@ void NetworkDevice::disconnect() {
5552

5653
QString NetworkConnectionState::toString(NetworkConnectionState::Enum state) {
5754
switch (state) {
58-
case Unknown: return "Unknown";
59-
case Connecting: return "Connecting";
60-
case Connected: return "Connected";
61-
case Disconnecting: return "Disconnecting";
62-
case Disconnected: return "Disconnected";
55+
case Unknown: return QStringLiteral("Unknown");
56+
case Connecting: return QStringLiteral("Connecting");
57+
case Connected: return QStringLiteral("Connected");
58+
case Disconnecting: return QStringLiteral("Disconnecting");
59+
case Disconnected: return QStringLiteral("Disconnected");
60+
default: return QStringLiteral("Unknown");
6361
}
64-
return {};
6562
}
6663

6764
} // namespace qs::network
65+
66+
QDebug operator<<(QDebug debug, const qs::network::NetworkDevice* device) {
67+
auto saver = QDebugStateSaver(debug);
68+
69+
if (device) {
70+
debug.nospace() << "NetworkDevice(" << static_cast<const void*>(device)
71+
<< ", name=" << device->name() << ")";
72+
} else {
73+
debug << "BluetoothDevice(nullptr)";
74+
}
75+
76+
return debug;
77+
}

src/network/device.hpp

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
11
#pragma once
22

3-
#include <qcontainerfwd.h>
4-
#include <qdbusextratypes.h>
5-
#include <qdbusservicewatcher.h>
6-
#include <qhash.h>
73
#include <qobject.h>
84
#include <qqmlintegration.h>
9-
#include <qqmllist.h>
105
#include <qtmetamacros.h>
116
#include <qtypes.h>
127

@@ -38,9 +33,9 @@ class NetworkDevice: public QObject {
3833
QML_ELEMENT;
3934
QML_UNCREATABLE("Devices can only be acquired through Network");
4035

41-
/// The name of the device's interface.
36+
/// The name of the device's control interface.
4237
Q_PROPERTY(QString name READ name NOTIFY nameChanged);
43-
/// The hardware address of the device's interface in the XX:XX:XX:XX:XX:XX format.
38+
/// The hardware address of the device in the XX:XX:XX:XX:XX:XX format.
4439
Q_PROPERTY(QString address READ address NOTIFY addressChanged);
4540
/// Connection state of the device.
4641
Q_PROPERTY(NetworkConnectionState::Enum state READ state NOTIFY stateChanged);
@@ -79,3 +74,5 @@ public slots:
7974
};
8075

8176
} // namespace qs::network
77+
78+
QDebug operator<<(QDebug debug, const qs::network::NetworkDevice* device);

src/network/network.cpp

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
#include "network.hpp"
22

3-
#include <qdbusconnection.h>
4-
#include <qdbusconnectioninterface.h>
5-
#include <qdbusextratypes.h>
6-
#include <qdbuspendingcall.h>
7-
#include <qdbuspendingreply.h>
8-
#include <qdbusservicewatcher.h>
3+
#include <qloggingcategory.h>
94
#include <qlogging.h>
105

6+
#include "../core/logcat.hpp"
117
#include "nm/backend.hpp"
128

139
namespace qs::network {
1410

1511
namespace {
16-
Q_LOGGING_CATEGORY(logNetwork, "quickshell.network", QtWarningMsg);
12+
QS_LOGGING_CATEGORY(logNetwork, "quickshell.network", QtWarningMsg);
1713
} // namespace
1814

1915
Network::Network(QObject* parent): QObject(parent), mWifi(new Wifi(this)) {

src/network/network.hpp

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
11
#pragma once
22

3-
#include <qcontainerfwd.h>
4-
#include <qdbusextratypes.h>
5-
#include <qdbusservicewatcher.h>
6-
#include <qhash.h>
73
#include <qobject.h>
84
#include <qqmlintegration.h>
9-
#include <qqmllist.h>
105
#include <qtmetamacros.h>
116
#include <qtypes.h>
127

@@ -22,9 +17,7 @@ class NetworkBackendType: public QObject {
2217

2318
public:
2419
enum Enum : quint8 {
25-
/// There is no available Network backend.
2620
None = 0,
27-
/// The backend is NetworkManager.
2821
NetworkManager = 1,
2922
};
3023
Q_ENUM(Enum);
@@ -49,9 +42,9 @@ class Network: public QObject {
4942
QML_SINGLETON;
5043

5144
/// The wifi device service.
52-
Q_PROPERTY(Wifi* wifi READ wifi CONSTANT);
45+
Q_PROPERTY(qs::network::Wifi* wifi READ wifi CONSTANT);
5346
/// The backend being used to power the Network service.
54-
Q_PROPERTY(NetworkBackendType::Enum backend READ backend);
47+
Q_PROPERTY(qs::network::NetworkBackendType::Enum backend READ backend CONSTANT);
5548

5649
public:
5750
explicit Network(QObject* parent = nullptr);

src/network/nm/accesspoint.cpp

Lines changed: 29 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -6,43 +6,18 @@
66
#include <qobject.h>
77
#include <qstring.h>
88

9+
#include "../../core/logcat.hpp"
910
#include "../../dbus/properties.hpp"
1011
#include "nm/dbus_nm_accesspoint.h"
11-
#include "utils.hpp"
12-
13-
namespace qs::dbus {
14-
15-
DBusResult<qs::network::NM80211ApFlags::Enum>
16-
DBusDataTransform<qs::network::NM80211ApFlags::Enum>::fromWire(quint32 wire) {
17-
return DBusResult(static_cast<qs::network::NM80211ApFlags::Enum>(wire));
18-
}
19-
20-
DBusResult<qs::network::NM80211ApSecurityFlags::Enum>
21-
DBusDataTransform<qs::network::NM80211ApSecurityFlags::Enum>::fromWire(quint32 wire) {
22-
return DBusResult(static_cast<qs::network::NM80211ApSecurityFlags::Enum>(wire));
23-
}
24-
25-
DBusResult<qs::network::NM80211Mode::Enum>
26-
DBusDataTransform<qs::network::NM80211Mode::Enum>::fromWire(quint32 wire) {
27-
return DBusResult(static_cast<qs::network::NM80211Mode::Enum>(wire));
28-
}
29-
30-
} // namespace qs::dbus
3112

3213
namespace qs::network {
3314
using namespace qs::dbus;
3415

3516
namespace {
36-
Q_LOGGING_CATEGORY(logNetworkManager, "quickshell.network.networkmanager", QtWarningMsg);
17+
QS_LOGGING_CATEGORY(logNetworkManager, "quickshell.network.networkmanager", QtWarningMsg);
3718
}
3819

39-
NMAccessPoint::NMAccessPoint(
40-
const QString& path,
41-
NMWirelessCapabilities::Enum caps,
42-
QObject* parent
43-
)
44-
: QObject(parent)
45-
, mCaps(caps) {
20+
NMAccessPoint::NMAccessPoint(const QString& path, QObject* parent): QObject(parent) {
4621
this->proxy = new DBusNMAccessPointProxy(
4722
"org.freedesktop.NetworkManager",
4823
path,
@@ -55,10 +30,13 @@ NMAccessPoint::NMAccessPoint(
5530
return;
5631
}
5732

58-
// clang-format off
59-
QObject::connect(&this->accessPointProperties, &DBusPropertyGroup::getAllFinished, this, [this]() { emit this->ready(); }, Qt::SingleShotConnection);
60-
bSecurity.setBinding([&] { return findBestWirelessSecurity( this->mCaps, true, this->bMode == NM80211Mode::Adhoc, this->bFlags, this->bWpaFlags, this->bRsnFlags); });
61-
// clang-format on
33+
QObject::connect(
34+
&this->accessPointProperties,
35+
&DBusPropertyGroup::getAllFinished,
36+
this,
37+
&NMAccessPoint::ready,
38+
Qt::SingleShotConnection
39+
);
6240

6341
this->accessPointProperties.setInterface(this->proxy);
6442
this->accessPointProperties.updateAllViaGetAll();
@@ -69,3 +47,22 @@ QString NMAccessPoint::address() const { return this->proxy ? this->proxy->servi
6947
QString NMAccessPoint::path() const { return this->proxy ? this->proxy->path() : QString(); }
7048

7149
} // namespace qs::network
50+
51+
namespace qs::dbus {
52+
53+
DBusResult<qs::network::NM80211ApFlags::Enum>
54+
DBusDataTransform<qs::network::NM80211ApFlags::Enum>::fromWire(quint32 wire) {
55+
return DBusResult(static_cast<qs::network::NM80211ApFlags::Enum>(wire));
56+
}
57+
58+
DBusResult<qs::network::NM80211ApSecurityFlags::Enum>
59+
DBusDataTransform<qs::network::NM80211ApSecurityFlags::Enum>::fromWire(quint32 wire) {
60+
return DBusResult(static_cast<qs::network::NM80211ApSecurityFlags::Enum>(wire));
61+
}
62+
63+
DBusResult<qs::network::NM80211Mode::Enum>
64+
DBusDataTransform<qs::network::NM80211Mode::Enum>::fromWire(quint32 wire) {
65+
return DBusResult(static_cast<qs::network::NM80211Mode::Enum>(wire));
66+
}
67+
68+
} // namespace qs::dbus

src/network/nm/accesspoint.hpp

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,37 +41,29 @@ class NMAccessPoint: public QObject {
4141
Q_OBJECT;
4242

4343
public:
44-
explicit NMAccessPoint(
45-
const QString& path,
46-
NMWirelessCapabilities::Enum caps,
47-
QObject* parent = nullptr
48-
);
44+
explicit NMAccessPoint(const QString& path, QObject* parent = nullptr);
4945

5046
[[nodiscard]] bool isValid() const;
5147
[[nodiscard]] QString path() const;
5248
[[nodiscard]] QString address() const;
5349
[[nodiscard]] QByteArray ssid() const { return this->bSsid; };
54-
[[nodiscard]] NMWirelessCapabilities::Enum capabilities() const { return this->mCaps; };
5550
[[nodiscard]] quint8 signalStrength() const { return this->bSignalStrength; };
5651
[[nodiscard]] NM80211ApFlags::Enum flags() const { return this->bFlags; };
5752
[[nodiscard]] NM80211ApSecurityFlags::Enum wpaFlags() const { return this->bWpaFlags; };
5853
[[nodiscard]] NM80211ApSecurityFlags::Enum rsnFlags() const { return this->bRsnFlags; };
5954
[[nodiscard]] NM80211Mode::Enum mode() const { return this->bMode; };
60-
[[nodiscard]] NMWirelessSecurityType::Enum security() const { return this->bSecurity; };
6155

6256
signals:
6357
void ssidChanged(const QByteArray& ssid);
6458
void signalStrengthChanged(quint8 signal);
6559
void wpaFlagsChanged(NM80211ApSecurityFlags::Enum wpaFlags);
6660
void rsnFlagsChanged(NM80211ApSecurityFlags::Enum rsnFlags);
6761
void flagsChanged(NM80211ApFlags::Enum flags);
68-
void securityChanged(NMWirelessSecurityType::Enum security);
6962
void modeChanged(NM80211Mode::Enum mode);
7063
void ready();
7164
void disappeared();
7265

7366
private:
74-
NMWirelessCapabilities::Enum mCaps;
7567
bool mActive = false;
7668

7769
// clang-format off
@@ -81,7 +73,6 @@ class NMAccessPoint: public QObject {
8173
Q_OBJECT_BINDABLE_PROPERTY(NMAccessPoint, NM80211ApSecurityFlags::Enum, bWpaFlags, &NMAccessPoint::wpaFlagsChanged);
8274
Q_OBJECT_BINDABLE_PROPERTY(NMAccessPoint, NM80211ApSecurityFlags::Enum, bRsnFlags, &NMAccessPoint::rsnFlagsChanged);
8375
Q_OBJECT_BINDABLE_PROPERTY(NMAccessPoint, NM80211Mode::Enum, bMode, &NMAccessPoint::modeChanged);
84-
Q_OBJECT_BINDABLE_PROPERTY(NMAccessPoint, NMWirelessSecurityType::Enum, bSecurity, &NMAccessPoint::securityChanged);
8576

8677
QS_DBUS_BINDABLE_PROPERTY_GROUP(NMAccessPointAdapter, accessPointProperties);
8778
QS_DBUS_PROPERTY_BINDING(NMAccessPoint, pSsid, bSsid, accessPointProperties, "Ssid");

src/network/nm/backend.cpp

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include <qobject.h>
55
#include <qtmetamacros.h>
66

7+
#include "../../core/logcat.hpp"
78
#include "../../dbus/properties.hpp"
89
#include "../network.hpp"
910
#include "../wifi.hpp"
@@ -14,12 +15,9 @@
1415
namespace qs::network {
1516

1617
namespace {
17-
Q_LOGGING_CATEGORY(logNetworkManager, "quickshell.network.networkmanager", QtWarningMsg);
18+
QS_LOGGING_CATEGORY(logNetworkManager, "quickshell.network.networkmanager", QtWarningMsg);
1819
}
1920

20-
const QString NM_SERVICE = "org.freedesktop.NetworkManager";
21-
const QString NM_PATH = "/org/freedesktop/NetworkManager";
22-
2321
NetworkManager::NetworkManager(QObject* parent): NetworkBackend(parent) {
2422
qDBusRegisterMetaType<ConnectionSettingsMap>();
2523

@@ -30,11 +28,16 @@ NetworkManager::NetworkManager(QObject* parent): NetworkBackend(parent) {
3028
return;
3129
}
3230

33-
this->proxy = new DBusNetworkManagerProxy(NM_SERVICE, NM_PATH, bus, this);
31+
this->proxy = new DBusNetworkManagerProxy(
32+
"org.freedesktop.NetworkManager",
33+
"/org/freedesktop/NetworkManager",
34+
bus,
35+
this
36+
);
3437

3538
if (!this->proxy->isValid()) {
3639
qCDebug(logNetworkManager
37-
) << "NetworkManager service is not currently running. This network backend will not work";
40+
) << "NetworkManager is not currently running. This network backend will not work";
3841
} else {
3942
this->init();
4043
}
@@ -91,7 +94,7 @@ void NetworkManager::registerDevice(const QString& path) {
9194
auto pending = introspection->asyncCall("Introspect");
9295
auto* call = new QDBusPendingCallWatcher(pending, this);
9396

94-
auto responseCallback = [this, path](QDBusPendingCallWatcher* call) {
97+
auto responseCallback = [this, path, introspection](QDBusPendingCallWatcher* call) {
9598
const QDBusPendingReply<QString> reply = *call;
9699

97100
if (reply.isError()) {
@@ -112,6 +115,7 @@ void NetworkManager::registerDevice(const QString& path) {
112115
}
113116
}
114117
delete call;
118+
delete introspection;
115119
};
116120

117121
QObject::connect(call, &QDBusPendingCallWatcher::finished, this, responseCallback);
@@ -150,9 +154,10 @@ void NetworkManager::registerWifiDevice(const QString& path) {
150154
QObject::connect(wireless, &NMWirelessDevice::wifiNetworkAdded, device, &WifiDevice::networkAdded);
151155
QObject::connect(wireless, &NMWirelessDevice::wifiNetworkRemoved, device, &WifiDevice::networkRemoved);
152156
QObject::connect(device, &WifiDevice::requestScan, wireless, &NMWirelessDevice::scan);
157+
QObject::connect(device, &WifiDevice::requestDisconnect, wireless, &NMWirelessDevice::disconnect);
153158
// clang-format on
154159

155-
emit wifiDeviceAdded(device);
160+
emit this->wifiDeviceAdded(device);
156161
}
157162

158163
void NetworkManager::onDevicePathAdded(const QDBusObjectPath& path) {
@@ -162,14 +167,12 @@ void NetworkManager::onDevicePathAdded(const QDBusObjectPath& path) {
162167
void NetworkManager::onDevicePathRemoved(const QDBusObjectPath& path) {
163168
auto iter = this->mDeviceHash.find(path.path());
164169
if (iter == this->mDeviceHash.end()) {
165-
qCWarning(logNetworkManager) << "NetworkManager sent removal signal for" << path.path()
170+
qCWarning(logNetworkManager) << "Sent removal signal for" << path.path()
166171
<< "which is not registered.";
167172
} else {
168173
auto* device = iter.value();
169174
this->mDeviceHash.erase(iter);
170-
if (auto* wifi = qobject_cast<WifiDevice*>(device)) {
171-
emit wifiDeviceRemoved(wifi);
172-
};
175+
if (auto* wifi = qobject_cast<WifiDevice*>(device)) emit this->wifiDeviceRemoved(wifi);
173176
delete device;
174177
}
175178
}
@@ -185,8 +188,7 @@ void NetworkManager::activateConnection(
185188
const QDBusPendingReply<QDBusObjectPath> reply = *call;
186189

187190
if (reply.isError()) {
188-
qCWarning(logNetworkManager)
189-
<< "Failed to request connection activation:" << reply.error().message();
191+
qCWarning(logNetworkManager) << "Failed to activate connection:" << reply.error().message();
190192
}
191193
delete call;
192194
};
@@ -206,7 +208,7 @@ void NetworkManager::addAndActivateConnection(
206208

207209
if (reply.isError()) {
208210
qCWarning(logNetworkManager)
209-
<< "Failed to start add and activate connection:" << reply.error().message();
211+
<< "Failed to add and activate connection:" << reply.error().message();
210212
}
211213
delete call;
212214
};

0 commit comments

Comments
 (0)