增加设置id和password的入口
This commit is contained in:
+4
-2
@@ -27,11 +27,13 @@ DEFINES += QT_DEPRECATED_WARNINGS
|
||||
SOURCES += \
|
||||
main.cpp \
|
||||
netcontroller.cpp \
|
||||
maintray.cpp
|
||||
maintray.cpp \
|
||||
optionswindow.cpp
|
||||
|
||||
HEADERS += \
|
||||
netcontroller.h \
|
||||
maintray.h
|
||||
maintray.h \
|
||||
optionswindow.h
|
||||
|
||||
RESOURCES += \
|
||||
resource.qrc
|
||||
|
||||
@@ -5,9 +5,9 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
QApplication a(argc, argv);
|
||||
|
||||
MainTray tray("","");
|
||||
QObject::connect(&tray, MainTray::exit, &a, QApplication::quit);
|
||||
tray.show();
|
||||
MainTray *tray = new MainTray("","");
|
||||
QObject::connect(tray, MainTray::exit, &a, QApplication::quit);
|
||||
tray->show();
|
||||
|
||||
return a.exec();
|
||||
}
|
||||
|
||||
+18
-1
@@ -3,10 +3,13 @@
|
||||
MainTray::MainTray(QByteArray username, QByteArray password, QObject *parent): QSystemTrayIcon(parent), menu(new QMenu()),
|
||||
user(username),passwd(password)
|
||||
{
|
||||
opWindow.hide();
|
||||
setIcon(QIcon(tr(":/icon/favicon.ico")));
|
||||
|
||||
netctrl = new NetController(user,passwd,this);
|
||||
|
||||
connect(&opWindow, OptionsWindow::saveSettings, this, updataUserInfo);
|
||||
//发送通知
|
||||
connect(netctrl, NetController::getOnline, this, [this](){
|
||||
showMessage(tr("网络已连接"),tr("校园网登陆成功"), this->icon(), msgDur);});
|
||||
connect(netctrl, NetController::getOffline, this, [this](){
|
||||
@@ -33,7 +36,7 @@ MainTray::MainTray(QByteArray username, QByteArray password, QObject *parent): Q
|
||||
isAutoLogin = set;
|
||||
netctrl->sendLoginRequest();
|
||||
});
|
||||
// connect(optionsAction, QAction::triggered, this, [this]());
|
||||
connect(optionsAction, QAction::triggered, this, [this](){showOptions();});
|
||||
connect(quitAction, QAction::triggered, this,[this](){emit exit();});
|
||||
|
||||
autoLogin->setChecked(true);
|
||||
@@ -41,6 +44,7 @@ MainTray::MainTray(QByteArray username, QByteArray password, QObject *parent): Q
|
||||
menu->addAction(loginAction);
|
||||
menu->addAction(logoutAction);
|
||||
menu->addAction(autoLogin);
|
||||
menu->addAction(optionsAction);
|
||||
menu->addAction(quitAction);
|
||||
|
||||
setContextMenu(menu);
|
||||
@@ -60,3 +64,16 @@ void MainTray::handleActivated(QSystemTrayIcon::ActivationReason reason)
|
||||
}
|
||||
}
|
||||
|
||||
void MainTray::showOptions()
|
||||
{
|
||||
opWindow.show();
|
||||
}
|
||||
|
||||
void MainTray::updataUserInfo(QByteArray id, QByteArray pass)
|
||||
{
|
||||
netctrl->setUsername(id);
|
||||
netctrl->setPassword(pass);
|
||||
opWindow.hide();
|
||||
netctrl->sendLoginRequest();
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include <QMenu>
|
||||
#include <QAction>
|
||||
#include <netcontroller.h>
|
||||
#include <optionswindow.h>
|
||||
|
||||
class MainTray: public QSystemTrayIcon
|
||||
{
|
||||
@@ -17,8 +18,10 @@ private:
|
||||
QMenu *menu;
|
||||
QAction *loginAction, *logoutAction, *autoLogin, *optionsAction, *quitAction;
|
||||
NetController *netctrl;
|
||||
OptionsWindow opWindow;
|
||||
bool isAutoLogin = true;
|
||||
void handleActivated(QSystemTrayIcon::ActivationReason reason);
|
||||
void showOptions();
|
||||
|
||||
QByteArray user, passwd;
|
||||
int msgDur = 500;
|
||||
@@ -27,6 +30,7 @@ signals:
|
||||
void exit();
|
||||
|
||||
private slots:
|
||||
void updataUserInfo(QByteArray id, QByteArray pass);
|
||||
|
||||
};
|
||||
|
||||
|
||||
+22
-18
@@ -5,24 +5,6 @@ NetController::NetController(QByteArray id, QByteArray passwd, QObject *parent)
|
||||
{
|
||||
checkParam.append("action=get_online_info");
|
||||
|
||||
loginParam.append("action=login&");
|
||||
loginParam.append("nas_ip=&");
|
||||
loginParam.append("password=");
|
||||
loginParam.append(password);
|
||||
loginParam.append("&save_me=0&");
|
||||
loginParam.append("url=&");
|
||||
loginParam.append("user_ip=&");
|
||||
loginParam.append("user_mac=&");
|
||||
loginParam.append("username=");
|
||||
loginParam.append(username);
|
||||
|
||||
logoutParam.append("action=logout&");
|
||||
logoutParam.append("ajax=1&");
|
||||
logoutParam.append("password=");
|
||||
logoutParam.append(password);
|
||||
logoutParam.append("&username=");
|
||||
logoutParam.append(username);
|
||||
|
||||
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
|
||||
connect(&manager, QNetworkAccessManager::finished, this, handleResponse);
|
||||
|
||||
@@ -60,12 +42,34 @@ void NetController::sendCheckRequest()
|
||||
void NetController::sendLoginRequest()
|
||||
{
|
||||
request.setUrl(QUrl(loginUrl));
|
||||
|
||||
QByteArray loginParam;
|
||||
loginParam.append("action=login&");
|
||||
loginParam.append("nas_ip=&");
|
||||
loginParam.append("password=");
|
||||
loginParam.append(password);
|
||||
loginParam.append("&save_me=0&");
|
||||
loginParam.append("url=&");
|
||||
loginParam.append("user_ip=&");
|
||||
loginParam.append("user_mac=&");
|
||||
loginParam.append("username=");
|
||||
loginParam.append(username);
|
||||
|
||||
manager.post(request, loginParam);
|
||||
}
|
||||
|
||||
void NetController::sendLogoutRequest()
|
||||
{
|
||||
request.setUrl(QUrl(loginUrl));
|
||||
|
||||
QByteArray logoutParam;
|
||||
logoutParam.append("action=logout&");
|
||||
logoutParam.append("ajax=1&");
|
||||
logoutParam.append("password=");
|
||||
logoutParam.append(password);
|
||||
logoutParam.append("&username=");
|
||||
logoutParam.append(username);
|
||||
|
||||
manager.post(request, logoutParam);
|
||||
}
|
||||
|
||||
|
||||
+4
-1
@@ -17,13 +17,16 @@ public:
|
||||
void sendLoginRequest();
|
||||
void sendLogoutRequest();
|
||||
|
||||
void setUsername(QByteArray newName) { username = newName; }
|
||||
void setPassword(QByteArray newPass) { password = newPass; }
|
||||
|
||||
enum Status {Offline, Online, Disconnected};
|
||||
|
||||
private:
|
||||
QString checkUrl = "http://ipgw.neu.edu.cn/include/auth_action.php";
|
||||
QString loginUrl = "http://ipgw.neu.edu.cn/srun_portal_pc.php?ac_id=1&";
|
||||
QString offlineString = "not_online";
|
||||
QByteArray checkParam, loginParam, logoutParam, username, password;
|
||||
QByteArray checkParam, username, password;
|
||||
Status NEUStatus, flag;
|
||||
|
||||
QNetworkAccessManager manager;
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
#include "optionswindow.h"
|
||||
|
||||
OptionsWindow::OptionsWindow(QWidget *parent) : QWidget(parent)
|
||||
{
|
||||
vlayout = new QVBoxLayout(this);
|
||||
layout = new QFormLayout();
|
||||
hlayout = new QHBoxLayout();
|
||||
|
||||
idEdit = new QLineEdit(this);
|
||||
passwordEdit = new QLineEdit(this);
|
||||
passwordEdit->setEchoMode(QLineEdit::Password);
|
||||
|
||||
layout->addRow(tr("用户名"), idEdit);
|
||||
layout->addRow(tr("密码"), passwordEdit);
|
||||
|
||||
saveButton = new QPushButton("确定", this);
|
||||
cancleButton = new QPushButton("取消", this);
|
||||
hlayout->addWidget(saveButton);
|
||||
hlayout->addWidget(cancleButton);
|
||||
|
||||
vlayout->addLayout(layout);
|
||||
vlayout->addLayout(hlayout);
|
||||
|
||||
setLayout(vlayout);
|
||||
|
||||
connect(saveButton, QPushButton::clicked, this, [this](){emit saveSettings(idEdit->text().toUtf8(), passwordEdit->text().toUtf8());});
|
||||
connect(cancleButton, QPushButton::clicked, this, hide);
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
#ifndef OPTIONSWINDOW_H
|
||||
#define OPTIONSWINDOW_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QLineEdit>
|
||||
#include <QPushButton>
|
||||
#include <QFormLayout>
|
||||
#include <QVBoxLayout>
|
||||
|
||||
class OptionsWindow : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit OptionsWindow(QWidget *parent = nullptr);
|
||||
|
||||
private:
|
||||
QLineEdit *idEdit, *passwordEdit;
|
||||
QPushButton *saveButton, *cancleButton;
|
||||
QFormLayout *layout;
|
||||
QVBoxLayout *vlayout;
|
||||
QHBoxLayout *hlayout;
|
||||
|
||||
signals:
|
||||
void saveSettings(QByteArray id, QByteArray pass);
|
||||
public slots:
|
||||
};
|
||||
|
||||
#endif // OPTIONSWINDOW_H
|
||||
Reference in New Issue
Block a user