修复在登陆时通知已注销

This commit is contained in:
2018-05-19 13:26:52 +08:00
parent 89b42ad3f6
commit 2d707b7484
4 changed files with 17 additions and 8 deletions
+9 -5
View File
@@ -24,6 +24,7 @@ MainTray::MainTray(QByteArray username, QByteArray password, QObject *parent): Q
connect(netctrl, NetController::stateChanged, this, [this](NetController::State state){
switch (state) {
case NetController::Online:
isForceLogin = false;
setIcon(QIcon(tr(":/icon/favicon.ico")));
if(!muteAction->isChecked())
showMessage(tr("网络已连接"),tr("校园网登陆成功"), this->icon(), msgDur);
@@ -31,11 +32,13 @@ MainTray::MainTray(QByteArray username, QByteArray password, QObject *parent): Q
logoutAction->setEnabled(true);
break;
case NetController::Offline:
setIcon(QIcon(tr(":/icon/offline.ico")));
if(!muteAction->isChecked())
showMessage(tr("网络已断开"),tr("校园网已注销"), this->icon(), msgDur);
loginAction->setEnabled(true);
logoutAction->setEnabled(true);
if(!isForceLogin){
setIcon(QIcon(tr(":/icon/offline.ico")));
if(!muteAction->isChecked())
showMessage(tr("网络已断开"),tr("校园网已注销"), this->icon(), msgDur);
loginAction->setEnabled(true);
logoutAction->setEnabled(true);
}
break;
case NetController::Disconnected:
setIcon(QIcon(tr(":/icon/offline.ico")));
@@ -75,6 +78,7 @@ MainTray::MainTray(QByteArray username, QByteArray password, QObject *parent): Q
muteAction->setToolTip(tr("勿扰模式下不会发出通知"));
connect(loginAction, QAction::triggered, this,[this](){
isForceLogin = true;
netctrl->sendLogoutRequest();
netctrl->sendLoginRequest();
isForceLogout = false;
+3 -2
View File
@@ -28,7 +28,8 @@ private:
OptionsWindow opWindow;
QTimer *autoLoginTimer; //自动重连定时器
bool isForceLogout = false; //自动重连flag
bool isForceLogout = false;
bool isForceLogin = false;
NetController::State currentState = NetController::Unknown; //当前状态
@@ -39,7 +40,7 @@ private:
void setAutoStart(bool set);
QByteArray user, passwd;
int msgDur = 1000; //通知持续时间
int msgDur = 500; //通知持续时间
int checkInterval = 1000; //查询状态定时器周期
+4 -1
View File
@@ -24,8 +24,9 @@ NetController::NetController(QByteArray id, QByteArray passwd, QObject *parent)
void NetController::checkState()
{
sendCheckRequest();
if(NEUState==Offline&&lastState!=Offline)
if(NEUState == Offline && lastState != Offline && offlineCount++ > 1)
{
offlineCount = 0;
lastState = Offline;
emit stateChanged(lastState);
}
@@ -97,6 +98,7 @@ void NetController::handleResponse(QNetworkReply *reply)
}
else
{
offlineCount = 0;
NEUState = Online;
QStringList infoList = status.split(',');
emit sendInfo(infoList[0], infoList[1], infoList[2], infoList[5]);
@@ -104,6 +106,7 @@ void NetController::handleResponse(QNetworkReply *reply)
}
else
{
offlineCount = 0;
NEUState = Disconnected;
}
}
+1
View File
@@ -28,6 +28,7 @@ private:
QString offlineString = "not_online";
QByteArray checkParam, username, password;
State NEUState = Unknown, lastState = Unknown;
int offlineCount = 0;
QNetworkAccessManager manager;
QNetworkRequest request;