#pragma once #include #include #include #include class NetworkManager : public QObject { Q_OBJECT Q_PROPERTY(QVariantList accessPoints READ accessPoints NOTIFY networksChanged) Q_PROPERTY(bool connected READ isConnected NOTIFY connectionChanged) public: explicit NetworkManager(QObject* parent = nullptr); QVariantList accessPoints() const { return m_accessPoints; } bool isConnected() const; QString lastConnectedSsid() const { return m_lastConnectedSsid; } QString lastConnectedPassword() const { return m_lastConnectedPassword; } QString lastSecurityType() const { return m_lastSecurityType; } public slots: void scan(); void connectTo(const QString& ssid, const QString& password); signals: void networksChanged(); void connectionChanged(); void connectionFailed(const QString& error); private slots: void startConnectionCheck(); private: void updateConnectionState(); void fetchAccessPoints(); QVariantList m_accessPoints; bool m_connected = false; QString m_lastConnectedSsid; QString m_lastConnectedPassword; QString m_lastSecurityType; int m_connectionCheckCount = 0; };