1515
1616namespace qs ::network {
1717
18+ class NM80211ApFlags : public QObject {
19+ Q_OBJECT;
20+
21+ public:
22+ enum Enum : quint8 {
23+ None = 0 ,
24+ Privacy = 1 ,
25+ Wps = 2 ,
26+ WpsPbc = 4 ,
27+ WpsPin = 8 ,
28+ };
29+ Q_ENUM (Enum);
30+ };
31+
32+ class NM80211ApSecurityFlags : public QObject {
33+ Q_OBJECT;
34+
35+ public:
36+ enum Enum : quint16 {
37+ None = 0 ,
38+ PairWep40 = 1 ,
39+ PairWep104 = 2 ,
40+ PairTkip = 4 ,
41+ PairCcmp = 8 ,
42+ GroupWep40 = 16 ,
43+ GroupWep104 = 32 ,
44+ GroupTkip = 64 ,
45+ GroupCcmp = 128 ,
46+ KeyMgmtPsk = 256 ,
47+ KeyMgmt8021x = 512 ,
48+ KeyMgmtSae = 1024 ,
49+ KeyMgmtOwe = 2048 ,
50+ KeyMgmtOweTm = 4096 ,
51+ KeyMgmtEapSuiteB192 = 8192 ,
52+ };
53+ Q_ENUM (Enum);
54+ };
55+
56+ } // namespace qs::network
57+
58+ namespace qs ::dbus {
59+
60+ template <>
61+ struct DBusDataTransform <qs::network::NM80211ApFlags::Enum> {
62+ using Wire = quint32;
63+ using Data = qs::network::NM80211ApFlags::Enum;
64+ static DBusResult<Data> fromWire (Wire wire);
65+ };
66+
67+ template <>
68+ struct DBusDataTransform <qs::network::NM80211ApSecurityFlags::Enum> {
69+ using Wire = quint32;
70+ using Data = qs::network::NM80211ApSecurityFlags::Enum;
71+ static DBusResult<Data> fromWire (Wire wire);
72+ };
73+
74+ } // namespace qs::dbus
75+
76+ namespace qs ::network {
77+
1878// NMAccessPointAdapter wraps the state of a NetworkManager access point
1979// (org.freedesktop.NetworkManager.AccessPoint)
2080class NMAccessPointAdapter : public QObject {
@@ -31,28 +91,36 @@ class NMAccessPointAdapter: public QObject {
3191signals:
3292 void ssidChanged (const QByteArray& ssid);
3393 void signalStrengthChanged (quint8 signal);
94+ void wpaFlagsChanged (NM80211ApSecurityFlags::Enum wpaFlags);
95+ void rsnFlagsChanged (NM80211ApSecurityFlags::Enum rsnFlags);
96+ void flagsChanged (NM80211ApFlags::Enum flags);
3497
3598private:
3699 // clang-format off
37100 Q_OBJECT_BINDABLE_PROPERTY (NMAccessPointAdapter, QByteArray, bSsid, &NMAccessPointAdapter::ssidChanged);
38101 Q_OBJECT_BINDABLE_PROPERTY (NMAccessPointAdapter, quint8, bSignalStrength, &NMAccessPointAdapter::signalStrengthChanged);
102+ Q_OBJECT_BINDABLE_PROPERTY (NMAccessPointAdapter, NM80211ApFlags::Enum, bFlags, &NMAccessPointAdapter::flagsChanged);
103+ Q_OBJECT_BINDABLE_PROPERTY (NMAccessPointAdapter, NM80211ApSecurityFlags::Enum, bWpaFlags, &NMAccessPointAdapter::wpaFlagsChanged);
104+ Q_OBJECT_BINDABLE_PROPERTY (NMAccessPointAdapter, NM80211ApSecurityFlags::Enum, bRsnFlags, &NMAccessPointAdapter::rsnFlagsChanged);
39105
40106 QS_DBUS_BINDABLE_PROPERTY_GROUP (NMAccessPointAdapter, accessPointProperties);
41107 QS_DBUS_PROPERTY_BINDING (NMAccessPointAdapter, pSsid, bSsid, accessPointProperties, " Ssid" );
42108 QS_DBUS_PROPERTY_BINDING (NMAccessPointAdapter, pSignalStrength, bSignalStrength, accessPointProperties, " Strength" );
109+ QS_DBUS_PROPERTY_BINDING (NMAccessPointAdapter, pFlags, bFlags, accessPointProperties, " Flags" );
110+ QS_DBUS_PROPERTY_BINDING (NMAccessPointAdapter, pWpaFlags, bWpaFlags, accessPointProperties, " WpaFlags" );
111+ QS_DBUS_PROPERTY_BINDING (NMAccessPointAdapter, pRsnFlags, bRsnFlags, accessPointProperties, " RsnFlags" );
43112 // clang-format on
44113
45114 DBusNMAccessPointProxy* proxy = nullptr ;
46115};
47116
48- // NMAccessPointGroup bundles the state of access points with the same SSID
49- // into a single object and supplies signals/slots to connect AP signal strength
50- // to NetworkWifiNetwork signal strength
51- class NMAccessPointGroup : public QObject {
117+ // NMWifiNetwork represents a wireless network, which aggregates all access points with
118+ // the same SSID. It also provides signals and slots for a frontend WifiNetwork.
119+ class NMWifiNetwork : public QObject {
52120 Q_OBJECT;
53121
54122public:
55- explicit NMAccessPointGroup (QByteArray ssid, QObject* parent = nullptr );
123+ explicit NMWifiNetwork (QByteArray ssid, QObject* parent = nullptr );
56124 void addAccessPoint (NMAccessPointAdapter* ap);
57125 void removeAccessPoint (NMAccessPointAdapter* ap);
58126 void updateSignalStrength ();
@@ -66,7 +134,7 @@ class NMAccessPointGroup: public QObject {
66134 QByteArray mSsid ;
67135
68136 // clang-format off
69- Q_OBJECT_BINDABLE_PROPERTY (NMAccessPointGroup , quint8, bMaxSignal, &NMAccessPointGroup ::signalStrengthChanged);
137+ Q_OBJECT_BINDABLE_PROPERTY (NMWifiNetwork , quint8, bMaxSignal, &NMWifiNetwork ::signalStrengthChanged);
70138 // clang-format on
71139};
72140
0 commit comments