1010
1111namespace  qs ::network {
1212
13- // /! Connection state.
14- class  NetworkConnectionState : public  QObject  {
13+ // /! Connection state of a NetworkDevice .
14+ class  DeviceConnectionState : public  QObject  {
1515	Q_OBJECT;
1616	QML_ELEMENT;
1717	QML_SINGLETON;
@@ -25,37 +25,56 @@ class NetworkConnectionState: public QObject {
2525		Disconnected = 4 ,
2626	};
2727	Q_ENUM (Enum);
28- 	Q_INVOKABLE static  QString toString (NetworkConnectionState ::Enum state);
28+ 	Q_INVOKABLE static  QString toString (DeviceConnectionState ::Enum state);
2929};
3030
31- // /! A Network device.
31+ // /! Type of network device.
32+ class  DeviceType : public  QObject  {
33+ 	Q_OBJECT;
34+ 	QML_ELEMENT;
35+ 	QML_SINGLETON;
36+ 
37+ public: 
38+ 	enum  Enum : quint8 {
39+ 		None = 0 ,
40+ 		Wifi = 1 ,
41+ 	};
42+ 	Q_ENUM (Enum);
43+ 	Q_INVOKABLE static  QString toString (DeviceType::Enum type);
44+ };
45+ 
46+ 
47+ // /! A network device.
3248class  NetworkDevice : public  QObject  {
3349	Q_OBJECT;
3450	QML_ELEMENT;
3551	QML_UNCREATABLE (" Devices can only be acquired through Network" 
3652	//  clang-format off
53+ 	// / The device type.
54+ 	Q_PROPERTY (DeviceType::Enum type READ type CONSTANT);
3755	// / The name of the device's control interface.
3856	Q_PROPERTY (QString name READ name NOTIFY nameChanged BINDABLE bindableName);
3957	// / The hardware address of the device in the XX:XX:XX:XX:XX:XX format.
4058	Q_PROPERTY (QString address READ address NOTIFY addressChanged BINDABLE bindableAddress);
4159	// / Connection state of the device.
42- 	Q_PROPERTY (qs::network::NetworkConnectionState ::Enum state READ state NOTIFY stateChanged BINDABLE bindableState);
60+ 	Q_PROPERTY (qs::network::DeviceConnectionState ::Enum state READ state NOTIFY stateChanged BINDABLE bindableState);
4361	// / A more specific device state when the backend is NetworkManager.
4462	Q_PROPERTY (qs::network::NMDeviceState::Enum nmState READ nmState NOTIFY nmStateChanged BINDABLE bindableNmState);
4563	//  clang-format on
4664
4765public: 
48- 	explicit  NetworkDevice (QObject* parent = nullptr );
66+ 	explicit  NetworkDevice (DeviceType::Enum type,  QObject* parent = nullptr );
4967
5068	// / Disconnects the device and prevents it from automatically activating further connections.
5169	Q_INVOKABLE void  disconnect ();
5270
71+ 	[[nodiscard]] DeviceType::Enum type () const  { return  this ->mType ; };
5372	QBindable<QString> bindableName () { return  &this ->bName ; };
5473	[[nodiscard]] QString name () const  { return  this ->bName ; };
5574	QBindable<QString> bindableAddress () { return  &this ->bAddress ; };
5675	[[nodiscard]] QString address () const  { return  this ->bAddress ; };
57- 	QBindable<NetworkConnectionState ::Enum> bindableState () { return  &this ->bState ; };
58- 	[[nodiscard]] NetworkConnectionState ::Enum state () const  { return  this ->bState ; };
76+ 	QBindable<DeviceConnectionState ::Enum> bindableState () { return  &this ->bState ; };
77+ 	[[nodiscard]] DeviceConnectionState ::Enum state () const  { return  this ->bState ; };
5978	QBindable<NMDeviceState::Enum> bindableNmState () { return  &this ->bNmState ; };
6079	[[nodiscard]] NMDeviceState::Enum nmState () const  { return  this ->bNmState ; };
6180
@@ -67,14 +86,13 @@ class NetworkDevice: public QObject {
6786	void  nmStateChanged ();
6887
6988private: 
89+ 	DeviceType::Enum mType ;
7090	//  clang-format off
7191	Q_OBJECT_BINDABLE_PROPERTY (NetworkDevice, QString, bName, &NetworkDevice::nameChanged);
7292	Q_OBJECT_BINDABLE_PROPERTY (NetworkDevice, QString, bAddress, &NetworkDevice::addressChanged);
73- 	Q_OBJECT_BINDABLE_PROPERTY (NetworkDevice, NetworkConnectionState ::Enum, bState, &NetworkDevice::stateChanged);
93+ 	Q_OBJECT_BINDABLE_PROPERTY (NetworkDevice, DeviceConnectionState ::Enum, bState, &NetworkDevice::stateChanged);
7494	Q_OBJECT_BINDABLE_PROPERTY (NetworkDevice, NMDeviceState::Enum, bNmState, &NetworkDevice::nmStateChanged);
7595	//  clang-format on
7696};
7797
7898} //  namespace qs::network
79- 
80- QDebug operator <<(QDebug debug, const  qs::network::NetworkDevice* device);
0 commit comments