summaryrefslogtreecommitdiffstats
path: root/src/imports/wifi/qwifimanager.h
diff options
context:
space:
mode:
authorGunnar Sletta <gunnar.sletta@digia.com>2013-03-21 16:36:00 +0100
committerGunnar Sletta <gunnar.sletta@digia.com>2013-03-21 16:36:00 +0100
commitc7c95d95771abb8f69ac44c7f9701b8225af7824 (patch)
treea5514c2d09f00c7ed4d397cf0de9179af27d3d60 /src/imports/wifi/qwifimanager.h
parent3bab79ccafe79105c1c3d7dc6fe1e87d80628bd9 (diff)
Moved wifi to its own importable module
Diffstat (limited to 'src/imports/wifi/qwifimanager.h')
-rw-r--r--src/imports/wifi/qwifimanager.h79
1 files changed, 79 insertions, 0 deletions
diff --git a/src/imports/wifi/qwifimanager.h b/src/imports/wifi/qwifimanager.h
new file mode 100644
index 0000000..a2fdb99
--- /dev/null
+++ b/src/imports/wifi/qwifimanager.h
@@ -0,0 +1,79 @@
+#ifndef QWIFIMANAGER_H
+#define QWIFIMANAGER_H
+
+#include <QtCore/QObject>
+#include <QtCore/QByteArray>
+
+#include "qwifinetworklist.h"
+
+class QWifiManagerEventThread;
+
+class QWifiManager : public QObject
+{
+ Q_OBJECT
+
+ Q_PROPERTY(bool ready READ isReady NOTIFY readyChanged)
+ Q_PROPERTY(bool online READ isOnline NOTIFY onlineChanged)
+ Q_PROPERTY(bool scanning READ scanning WRITE setScanning NOTIFY scanningChanged)
+
+ Q_PROPERTY(QString connectedSSID READ connectedSSID NOTIFY connectedSSIDChanged)
+ Q_PROPERTY(QWifiNetworkList *networks READ networks CONSTANT)
+
+public:
+ enum InternalState {
+ IS_Uninitialized,
+ IS_StartBackend,
+ IS_ConnectToBackend,
+ IS_UpAndRunning
+ };
+
+ QWifiManager();
+
+ QWifiNetworkList *networks() { return &m_networks; }
+
+ QString connectedSSID() const { return m_connectedSSID; }
+
+ bool scanning() const { return m_scanning; }
+ void setScanning(bool scanning);
+
+ bool isReady() const { return m_internalState == IS_UpAndRunning; }
+ bool isOnline() const { return m_online; }
+
+
+public slots:
+ void start();
+
+ void connect(QWifiNetwork *network, const QString &passphrase);
+
+signals:
+ void scanningChanged(bool arg);
+ void readyChanged(bool ready);
+ void onlineChanged(bool online);
+ void connectedSSIDChanged(const QString &);
+
+protected:
+ bool event(QEvent *);
+
+private:
+ friend class QWifiManagerEventThread;
+
+ void handleConnected();
+ void parseScanResults();
+ void connectToBackend();
+ QByteArray call(const char *command);
+
+ QString m_connectedSSID;
+ QWifiNetworkList m_networks;
+
+ QWifiManagerEventThread *m_eventThread;
+
+ int m_scanTimer;
+
+ InternalState m_internalState;
+
+ bool m_scanning;
+ bool m_online;
+
+};
+
+#endif // QWIFIMANAGER_H