3 Commits
Author SHA1 Message Date
c-my b99d28fbf8 remove debug 2018-05-20 00:24:02 +08:00
c-my 2352f79460 update settings 2018-05-20 00:12:57 +08:00
c-my 3f4219c929 检测登陆异常
首次运行自动弹出设置窗口
密码错误或欠费导致的登陆失败会提示
点击密码错误的提示会打开设置窗口
密码错误时不再尝试登陆导致登陆受限
2018-05-20 00:09:54 +08:00
3 changed files with 58 additions and 9 deletions

No files matched your search

+22 -1
View File
@@ -6,7 +6,7 @@ MainTray::MainTray(QByteArray username, QByteArray password, QObject *parent): Q
infoMenu(new QMenu()),
settingsMenu(new QMenu()),
//初始化settings
settings(QSettings::IniFormat, QSettings::UserScope, "TurnMeOn", "NEU-Dectect"),
settings(QSettings::IniFormat, QSettings::UserScope, "Cai.MY", "NEU-Monitor"),
//初始化optionswindow
opWindow(settings.value("id", "").toByteArray(), settings.value("password", "").toByteArray()),
user(username),
@@ -47,6 +47,16 @@ MainTray::MainTray(QByteArray username, QByteArray password, QObject *parent): Q
loginAction->setDisabled(true);
logoutAction->setDisabled(true);
break;
case NetController::WrongPass:
setIcon(QIcon(tr(":/icon/offline.ico")));
if(!muteAction->isChecked())
showMessage(tr("登陆失败"),tr("密码错误"), this->icon(), msgDur);
break;
case NetController::Owed:
setIcon(QIcon(tr(":/icon/offline.ico")));
if(!muteAction->isChecked())
showMessage(tr("登陆失败"),tr("已欠费"), this->icon(), msgDur);
break;
default:
break;
}
@@ -54,6 +64,12 @@ MainTray::MainTray(QByteArray username, QByteArray password, QObject *parent): Q
showToolTip(state);
});
connect(this, QSystemTrayIcon::messageClicked, this, [this](){
if(currentState == NetController::WrongPass)
opWindow.show();
});
connect(netctrl, NetController::sendInfo, this, handleInfo);
//菜单Action
@@ -142,6 +158,11 @@ MainTray::MainTray(QByteArray username, QByteArray password, QObject *parent): Q
loginAction->trigger();
}
});
if(settings.value("id").isNull()||settings.value("password").isNull())
{
opWindow.show();
}
}
MainTray::~MainTray()
+35 -7
View File
@@ -24,21 +24,30 @@ NetController::NetController(QByteArray id, QByteArray passwd, QObject *parent)
void NetController::checkState()
{
sendCheckRequest();
if(NEUState == Offline && lastState != Offline && offlineCount++ > 1)
if(NEUState == Offline && lastState != Offline/* && offlineCount++ > 1*/)
{
offlineCount = 0;
lastState = Offline;
emit stateChanged(lastState);
emit stateChanged(NEUState);
}
else if(NEUState == Online && lastState != Online)
{
lastState = Online;
emit stateChanged(lastState);
emit stateChanged(NEUState);
}
else if(NEUState == Disconnected && lastState != Disconnected)
{
lastState = Disconnected;
emit stateChanged(lastState);
emit stateChanged(NEUState);
}
else if(NEUState == WrongPass && lastState != WrongPass)
{
lastState = WrongPass;
emit stateChanged(NEUState);
}
else if(NEUState == Owed && lastState != Owed)
{
lastState = Owed;
emit stateChanged(NEUState);
}
}
@@ -94,11 +103,17 @@ void NetController::handleResponse(QNetworkReply *reply)
QString status = reply->readAll();
if(status==offlineString)
{
NEUState = Offline;
if(NEUState!=WrongPass && NEUState!=Owed && offlineCount++ > 1)
{
offlineCount = 0;
lastState = NEUState;
NEUState = Offline;
}
}
else
{
offlineCount = 0;
lastState = NEUState;
NEUState = Online;
QStringList infoList = status.split(',');
emit sendInfo(infoList[0], infoList[1], infoList[2], infoList[5]);
@@ -107,11 +122,24 @@ void NetController::handleResponse(QNetworkReply *reply)
else
{
offlineCount = 0;
lastState = NEUState;
NEUState = Disconnected;
}
}
else if(url==loginUrl)
{
QString loginPage(reply->readAll());
if(loginPage.contains(QString("已欠费"))){//欠费
lastState = NEUState;
NEUState = Owed;
}
else if(loginPage.contains("Password is error")){//密码错误
lastState = NEUState;
NEUState = WrongPass;
}
else if(loginPage.contains("网络已连接")){//登陆成功
lastState = NEUState;
NEUState = Online;
}
}
}
+1 -1
View File
@@ -20,7 +20,7 @@ public:
void setUsername(QByteArray newName) { username = newName; }
void setPassword(QByteArray newPass) { password = newPass; }
enum State {Unknown, Offline, Online, Disconnected};
enum State {Unknown, Offline, Online, Disconnected, Owed, WrongPass};
private:
QString checkUrl = "http://ipgw.neu.edu.cn/include/auth_action.php";