mirror of https://gitee.com/openkylin/wpa.git
181 lines
4.4 KiB
C++
181 lines
4.4 KiB
C++
/*
|
|
* wpa_gui - WpaGui class
|
|
* Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi>
|
|
*
|
|
* This software may be distributed under the terms of the BSD license.
|
|
* See README for more details.
|
|
*/
|
|
|
|
#ifndef WPAGUI_H
|
|
#define WPAGUI_H
|
|
|
|
#include <QSystemTrayIcon>
|
|
#include <QObject>
|
|
#include "ui_wpagui.h"
|
|
#include "addinterface.h"
|
|
|
|
class UserDataRequest;
|
|
|
|
class WpaGuiApp : public QApplication
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
WpaGuiApp(int &argc, char **argv);
|
|
|
|
#if !defined(QT_NO_SESSIONMANAGER) && QT_VERSION < 0x050000
|
|
virtual void saveState(QSessionManager &manager);
|
|
#endif
|
|
|
|
WpaGui *w;
|
|
int argc;
|
|
char **argv;
|
|
};
|
|
|
|
class WpaGui : public QMainWindow, public Ui::WpaGui
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
|
|
enum TrayIconType {
|
|
TrayIconOffline = 0,
|
|
TrayIconAcquiring,
|
|
TrayIconConnected,
|
|
TrayIconSignalNone,
|
|
TrayIconSignalWeak,
|
|
TrayIconSignalOk,
|
|
TrayIconSignalGood,
|
|
TrayIconSignalExcellent,
|
|
};
|
|
|
|
WpaGui(QApplication *app, QWidget *parent = 0, const char *name = 0,
|
|
Qt::WindowFlags fl = 0);
|
|
~WpaGui();
|
|
|
|
virtual int ctrlRequest(const char *cmd, char *buf, size_t *buflen);
|
|
virtual void triggerUpdate();
|
|
virtual void editNetwork(const QString &sel);
|
|
virtual void removeNetwork(const QString &sel);
|
|
virtual void enableNetwork(const QString &sel);
|
|
virtual void disableNetwork(const QString &sel);
|
|
virtual int getNetworkDisabled(const QString &sel);
|
|
void setBssFromScan(const QString &bssid);
|
|
#ifndef QT_NO_SESSIONMANAGER
|
|
void saveState();
|
|
#endif
|
|
|
|
public slots:
|
|
virtual void parse_argv();
|
|
virtual void updateStatus();
|
|
virtual void updateNetworks();
|
|
virtual void helpIndex();
|
|
virtual void helpContents();
|
|
virtual void helpAbout();
|
|
virtual void disconnect();
|
|
virtual void scan();
|
|
virtual void eventHistory();
|
|
virtual void ping();
|
|
virtual void signalMeterUpdate();
|
|
virtual void processMsg(char *msg);
|
|
virtual void processCtrlReq(const char *req);
|
|
virtual void receiveMsgs();
|
|
virtual void connectB();
|
|
virtual void selectNetwork(const QString &sel);
|
|
virtual void editSelectedNetwork();
|
|
virtual void editListedNetwork();
|
|
virtual void removeSelectedNetwork();
|
|
virtual void removeListedNetwork();
|
|
virtual void addNetwork();
|
|
virtual void enableAllNetworks();
|
|
virtual void disableAllNetworks();
|
|
virtual void removeAllNetworks();
|
|
virtual void saveConfig();
|
|
virtual void selectAdapter(const QString &sel);
|
|
virtual void updateNetworkDisabledStatus();
|
|
virtual void enableListedNetwork(bool);
|
|
virtual void disableListedNetwork(bool);
|
|
virtual void showTrayMessage(QSystemTrayIcon::MessageIcon type,
|
|
int sec, const QString &msg);
|
|
virtual void showTrayStatus();
|
|
virtual void updateTrayIcon(TrayIconType type);
|
|
virtual void updateTrayToolTip(const QString &msg);
|
|
virtual QIcon loadThemedIcon(const QStringList &names,
|
|
const QIcon &fallback);
|
|
virtual void wpsDialog();
|
|
virtual void peersDialog();
|
|
virtual void tabChanged(int index);
|
|
virtual void wpsPbc();
|
|
virtual void wpsGeneratePin();
|
|
virtual void wpsApPinChanged(const QString &text);
|
|
virtual void wpsApPin();
|
|
#ifdef CONFIG_NATIVE_WINDOWS
|
|
virtual void startService();
|
|
virtual void stopService();
|
|
#endif /* CONFIG_NATIVE_WINDOWS */
|
|
virtual void addInterface();
|
|
|
|
protected slots:
|
|
virtual void languageChange();
|
|
virtual void trayActivated(QSystemTrayIcon::ActivationReason how);
|
|
virtual void closeEvent(QCloseEvent *event);
|
|
|
|
private:
|
|
ScanResults *scanres;
|
|
Peers *peers;
|
|
bool networkMayHaveChanged;
|
|
char *ctrl_iface;
|
|
EventHistory *eh;
|
|
struct wpa_ctrl *ctrl_conn;
|
|
QSocketNotifier *msgNotifier;
|
|
QTimer *timer;
|
|
int pingsToStatusUpdate;
|
|
WpaMsgList msgs;
|
|
char *ctrl_iface_dir;
|
|
struct wpa_ctrl *monitor_conn;
|
|
UserDataRequest *udr;
|
|
QAction *disconnectAction;
|
|
QAction *reconnectAction;
|
|
QAction *eventAction;
|
|
QAction *scanAction;
|
|
QAction *statAction;
|
|
QAction *showAction;
|
|
QAction *hideAction;
|
|
QAction *quitAction;
|
|
QMenu *tray_menu;
|
|
QSystemTrayIcon *tray_icon;
|
|
TrayIconType currentIconType;
|
|
QString wpaStateTranslate(char *state);
|
|
void createTrayIcon(bool);
|
|
bool ackTrayIcon;
|
|
bool startInTray;
|
|
bool quietMode;
|
|
|
|
int openCtrlConnection(const char *ifname);
|
|
|
|
bool wpsRunning;
|
|
|
|
QString bssFromScan;
|
|
|
|
void stopWpsRun(bool success);
|
|
|
|
QTimer *signalMeterTimer;
|
|
int signalMeterInterval;
|
|
|
|
#ifdef CONFIG_NATIVE_WINDOWS
|
|
QAction *fileStartServiceAction;
|
|
QAction *fileStopServiceAction;
|
|
|
|
bool serviceRunning();
|
|
#endif /* CONFIG_NATIVE_WINDOWS */
|
|
|
|
QAction *addInterfaceAction;
|
|
AddInterface *add_iface;
|
|
|
|
bool connectedToService;
|
|
|
|
QApplication *app;
|
|
bool inTray;
|
|
};
|
|
|
|
#endif /* WPAGUI_H */
|