@@ -79,11 +79,15 @@ class NetworkDevice: public QObject {
7979 // / The name of the device's control interface.
8080 Q_PROPERTY (QString name READ name NOTIFY nameChanged BINDABLE bindableName);
8181 // / The hardware address of the device in the XX:XX:XX:XX:XX:XX format.
82- Q_PROPERTY (QString address READ address NOTIFY addressChanged BINDABLE bindableAddress);
82+ Q_PROPERTY (QString address READ default NOTIFY addressChanged BINDABLE bindableAddress);
83+ // / True if the device is connected.
84+ Q_PROPERTY (bool connected READ default NOTIFY connectedChanged BINDABLE bindableConnected);
8385 // / Connection state of the device.
84- Q_PROPERTY (qs::network::DeviceConnectionState::Enum state READ state NOTIFY stateChanged BINDABLE bindableState);
86+ Q_PROPERTY (qs::network::DeviceConnectionState::Enum state READ default NOTIFY stateChanged BINDABLE bindableState);
8587 // / A more specific device state when the backend is NetworkManager.
86- Q_PROPERTY (qs::network::NMDeviceState::Enum nmState READ nmState NOTIFY nmStateChanged BINDABLE bindableNmState);
88+ Q_PROPERTY (qs::network::NMDeviceState::Enum nmState READ default NOTIFY nmStateChanged BINDABLE bindableNmState);
89+ // / True if the device is allowed to autoconnect.
90+ Q_PROPERTY (bool autoconnect READ autoconnect WRITE setAutoconnect NOTIFY autoconnectChanged);
8791 // clang-format on
8892
8993public:
@@ -96,26 +100,32 @@ class NetworkDevice: public QObject {
96100 QBindable<QString> bindableName () { return &this ->bName ; };
97101 [[nodiscard]] QString name () const { return this ->bName ; };
98102 QBindable<QString> bindableAddress () { return &this ->bAddress ; };
99- [[nodiscard]] QString address () const { return this ->bAddress ; };
103+ QBindable< bool > bindableConnected () { return & this ->bConnected ; };
100104 QBindable<DeviceConnectionState::Enum> bindableState () { return &this ->bState ; };
101- [[nodiscard]] DeviceConnectionState::Enum state () const { return this ->bState ; };
102105 QBindable<NMDeviceState::Enum> bindableNmState () { return &this ->bNmState ; };
103- [[nodiscard]] NMDeviceState::Enum nmState () const { return this ->bNmState ; };
106+ [[nodiscard]] bool autoconnect () const { return this ->bAutoconnect ; };
107+ QBindable<bool > bindableAutoconnect () { return &this ->bAutoconnect ; };
108+ void setAutoconnect (bool autoconnect);
104109
105110signals:
106111 void requestDisconnect ();
112+ void requestSetAutoconnect (bool autoconnect);
107113 void nameChanged ();
108114 void addressChanged ();
115+ void connectedChanged ();
109116 void stateChanged ();
110117 void nmStateChanged ();
118+ void autoconnectChanged ();
111119
112120private:
113121 DeviceType::Enum mType ;
114122 // clang-format off
115123 Q_OBJECT_BINDABLE_PROPERTY (NetworkDevice, QString, bName, &NetworkDevice::nameChanged);
116124 Q_OBJECT_BINDABLE_PROPERTY (NetworkDevice, QString, bAddress, &NetworkDevice::addressChanged);
125+ Q_OBJECT_BINDABLE_PROPERTY (NetworkDevice, bool , bConnected, &NetworkDevice::connectedChanged);
117126 Q_OBJECT_BINDABLE_PROPERTY (NetworkDevice, DeviceConnectionState::Enum, bState, &NetworkDevice::stateChanged);
118127 Q_OBJECT_BINDABLE_PROPERTY (NetworkDevice, NMDeviceState::Enum, bNmState, &NetworkDevice::nmStateChanged);
128+ Q_OBJECT_BINDABLE_PROPERTY (NetworkDevice, bool , bAutoconnect, &NetworkDevice::autoconnectChanged);
119129 // clang-format on
120130};
121131
0 commit comments