summaryrefslogtreecommitdiff
path: root/raveos-calamares-module/wifi/NetworkManager.h
blob: 9f74bcbddcef6f508265e085c21f9a3e407f73d9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#pragma once

#include <QObject>
#include <QString>
#include <QStringList>
#include <QVariantList>

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;
};