From c7c95d95771abb8f69ac44c7f9701b8225af7824 Mon Sep 17 00:00:00 2001 From: Gunnar Sletta Date: Thu, 21 Mar 2013 16:36:00 +0100 Subject: Moved wifi to its own importable module --- src/imports/wifi/qwifimanager.h | 79 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 src/imports/wifi/qwifimanager.h (limited to 'src/imports/wifi/qwifimanager.h') 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 +#include + +#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 -- cgit v1.2.3