Improve UI

This commit is contained in:
Kevin Yue 2020-02-15 20:43:54 +08:00
parent 2a7230a277
commit c08ce6298c
2 changed files with 37 additions and 13 deletions

View File

@ -11,6 +11,7 @@ GPClient::GPClient(QWidget *parent)
QObject::connect(this, &GPClient::connectFailed, [this]() { QObject::connect(this, &GPClient::connectFailed, [this]() {
ui->connectButton->setDisabled(false); ui->connectButton->setDisabled(false);
ui->connectButton->setText("Connect"); ui->connectButton->setText("Connect");
ui->statusLabel->setText("Not Connected");
}); });
// QNetworkAccessManager setup // QNetworkAccessManager setup
@ -26,6 +27,12 @@ GPClient::GPClient(QWidget *parent)
QObject::connect(vpn, &com::yuezk::qt::GPService::connected, this, &GPClient::onVPNConnected); QObject::connect(vpn, &com::yuezk::qt::GPService::connected, this, &GPClient::onVPNConnected);
QObject::connect(vpn, &com::yuezk::qt::GPService::disconnected, this, &GPClient::onVPNDisconnected); QObject::connect(vpn, &com::yuezk::qt::GPService::disconnected, this, &GPClient::onVPNDisconnected);
QObject::connect(vpn, &com::yuezk::qt::GPService::logAvailable, this, &GPClient::onVPNLogAvailable); QObject::connect(vpn, &com::yuezk::qt::GPService::logAvailable, this, &GPClient::onVPNLogAvailable);
int status = vpn->status();
if (status != 0) {
ui->statusLabel->setText("Connected");
ui->connectButton->setText("Disconnect");
}
} }
GPClient::~GPClient() GPClient::~GPClient()
@ -39,16 +46,20 @@ GPClient::~GPClient()
void GPClient::on_connectButton_clicked() void GPClient::on_connectButton_clicked()
{ {
if (ui->connectButton->text() == "Connect") { QString btnText = ui->connectButton->text();
if (btnText == "Connect") {
QString portal = ui->portalInput->text(); QString portal = ui->portalInput->text();
ui->statusLabel->setText("Authenticating...");
ui->connectButton->setDisabled(true); ui->connectButton->setDisabled(true);
ui->connectButton->setText("Connecting...");
samlLogin(portal); samlLogin(portal);
} else { } else if (btnText == "Cancel") {
ui->statusLabel->setText("Canceling...");
ui->connectButton->setDisabled(true);
vpn->disconnect();
} else {
ui->statusLabel->setText("Disconnecting...");
ui->connectButton->setDisabled(true); ui->connectButton->setDisabled(true);
ui->connectButton->setText("Disconnecting...");
vpn->disconnect(); vpn->disconnect();
} }
} }
@ -123,21 +134,23 @@ void GPClient::onLoginSuccess(QJsonObject loginResult)
qDebug() << "Server:" << host << ", User:" << user << "Cookie:" << cookieValue; qDebug() << "Server:" << host << ", User:" << user << "Cookie:" << cookieValue;
qDebug() << "openconnect --protocol=gp -u" << user << "--passwd-on-stdin" << host; qDebug() << "openconnect --protocol=gp -u" << user << "--passwd-on-stdin" << host;
ui->statusLabel->setText("Connecting...");
ui->connectButton->setText("Cancel");
vpn->connect(host, user, cookieValue); vpn->connect(host, user, cookieValue);
} }
void GPClient::onVPNConnected() void GPClient::onVPNConnected()
{ {
qDebug() << "VPN connected"; ui->statusLabel->setText("Connected");
ui->connectButton->setDisabled(false);
ui->connectButton->setText("Disconnect"); ui->connectButton->setText("Disconnect");
ui->connectButton->setDisabled(false);
} }
void GPClient::onVPNDisconnected() void GPClient::onVPNDisconnected()
{ {
qDebug() << "VPN disconnected"; ui->statusLabel->setText("Not Connected");
ui->connectButton->setDisabled(false);
ui->connectButton->setText("Connect"); ui->connectButton->setText("Connect");
ui->connectButton->setDisabled(false);
} }
void GPClient::onVPNLogAvailable(QString log) void GPClient::onVPNLogAvailable(QString log)

View File

@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>258</width> <width>258</width>
<height>316</height> <height>301</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -39,9 +39,20 @@
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout" stretch="0"> <layout class="QVBoxLayout" name="verticalLayout" stretch="0">
<item> <item>
<widget class="QLabel" name="label"> <widget class="QLabel" name="statusLabel">
<property name="font">
<font>
<pointsize>18</pointsize>
<weight>50</weight>
<bold>false</bold>
<underline>false</underline>
</font>
</property>
<property name="text"> <property name="text">
<string>TextLabel</string> <string>Not Connected</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property> </property>
</widget> </widget>
</item> </item>