修复在登陆时通知已注销
This commit is contained in:
+9
-5
@@ -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
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user