summaryrefslogtreecommitdiff
path: root/raveos-calamares-module/wifi/NetworkManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'raveos-calamares-module/wifi/NetworkManager.h')
-rw-r--r--raveos-calamares-module/wifi/NetworkManager.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/raveos-calamares-module/wifi/NetworkManager.h b/raveos-calamares-module/wifi/NetworkManager.h
new file mode 100644
index 0000000..ff9dbf2
--- /dev/null
+++ b/raveos-calamares-module/wifi/NetworkManager.h
@@ -0,0 +1,48 @@
+#pragma once
+
+#include <QObject>
+#include <QString>
+#include <QStringList>
+
+class NetworkManager : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(QStringList networks READ networks NOTIFY networksChanged)
+ Q_PROPERTY(bool connected READ isConnected NOTIFY connectionChanged)
+
+public:
+ explicit NetworkManager(QObject* parent = nullptr);
+
+ QStringList networks() const;
+ bool isConnected() const;
+
+ // Get the last connected network credentials (for saving to installed system)
+ QString lastConnectedSsid() const { return m_lastConnectedSsid; }
+ QString lastConnectedPassword() const { return m_lastConnectedPassword; }
+ QString lastSecurityType() const { return m_lastSecurityType; } // "wpa-psk" or "sae"
+
+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();
+
+ QStringList m_networks;
+ bool m_connected = false;
+
+ // Store credentials for saving to installed system
+ QString m_lastConnectedSsid;
+ QString m_lastConnectedPassword;
+ QString m_lastSecurityType; // "wpa-psk", "sae", or "" (open)
+ int m_connectionCheckCount = 0;
+};