diff options
author | Gunnar Sletta <gunnar.sletta@digia.com> | 2013-03-21 16:36:00 +0100 |
---|---|---|
committer | Gunnar Sletta <gunnar.sletta@digia.com> | 2013-03-21 16:36:00 +0100 |
commit | c7c95d95771abb8f69ac44c7f9701b8225af7824 (patch) | |
tree | a5514c2d09f00c7ed4d397cf0de9179af27d3d60 /src/imports/wifi/qwifimanager.h | |
parent | 3bab79ccafe79105c1c3d7dc6fe1e87d80628bd9 (diff) |
Moved wifi to its own importable module
Diffstat (limited to 'src/imports/wifi/qwifimanager.h')
-rw-r--r-- | src/imports/wifi/qwifimanager.h | 79 |
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 |