85 lines
2.2 KiB
C++
85 lines
2.2 KiB
C++
#ifndef MAINTRAY_H
|
|
#define MAINTRAY_H
|
|
|
|
#if _MSC_VER >= 1600
|
|
#pragma execution_character_set("utf-8")
|
|
#endif
|
|
|
|
#include <QObject>
|
|
#include <QSystemTrayIcon>
|
|
#include <QMenu>
|
|
#include <QAction>
|
|
#include <netcontroller.h>
|
|
#include <optionswindow.h>
|
|
#include <QSettings>
|
|
#include <QMessageBox>
|
|
#include <QTimer>
|
|
#include <QApplication>
|
|
#include <QFile>
|
|
#include <QtGlobal>
|
|
#include <QClipboard>
|
|
#include <QStandardPaths>
|
|
#include <QTextStream>
|
|
#include <QDateTime>
|
|
|
|
class MainTray : public QSystemTrayIcon
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
MainTray(QObject *parent = Q_NULLPTR);
|
|
~MainTray();
|
|
enum TrafficState
|
|
{
|
|
Normal,
|
|
Over,
|
|
Nearly
|
|
};
|
|
|
|
private:
|
|
QMenu *menu, *infoMenu, *settingsMenu;
|
|
QAction *loginAction, *logoutAction, *autoLogin, *optionsAction, *aboutAction, *quitAction;
|
|
QAction *mbAction, *timeAction, *balanceAction, *ipAction, *bootAction, *muteAction, *mobileAction;
|
|
QAction *forceLoginAction;
|
|
NetController *netctrl;
|
|
QSettings settings;
|
|
|
|
QByteArray user, passwd;
|
|
int totalTraffic;
|
|
bool isMobile = false;
|
|
bool forceLogin = false;
|
|
|
|
OptionsWindow opWindow;
|
|
QTimer *autoLoginTimer; //自动重连定时器
|
|
|
|
QString olIconPath = tr(":/icons/favicon.ico");
|
|
QString offIconPath = tr(":/icons/offline.ico");
|
|
|
|
bool isForceLogout = false;
|
|
bool isForceLogin = false;
|
|
bool hasWarned = false;
|
|
|
|
NetController::State currentState = NetController::Unknown; //当前状态
|
|
TrafficState trafficstate = Normal;
|
|
|
|
void showToolTip(NetController::State state);
|
|
void handleActivated(QSystemTrayIcon::ActivationReason reason); //处理左键单击、双击
|
|
void showOptions(); //显示选项窗口
|
|
void showAbout(); //显示关于窗口
|
|
void setAutoStart(bool set);
|
|
|
|
int msgDur = 500; //通知持续时间
|
|
int checkInterval = 1000; //查询状态定时器周期
|
|
|
|
inline QString getQtVersion();
|
|
inline QString getCompilerVersion();
|
|
signals:
|
|
void exit();
|
|
|
|
private slots:
|
|
void updateUserInfo(QByteArray id, QByteArray pass, int traffic);
|
|
void handleState(NetController::State state);
|
|
void handleInfo(QString mb, QString sec, QString balance, QString ip);
|
|
};
|
|
|
|
#endif // MAINTRAY_H
|