diff --git a/GPClient/gpclient.cpp b/GPClient/gpclient.cpp index f5cb42c..18dc4ce 100644 --- a/GPClient/gpclient.cpp +++ b/GPClient/gpclient.cpp @@ -31,6 +31,7 @@ GPClient::GPClient(QWidget *parent) vpn = new com::yuezk::qt::GPService("com.yuezk.qt.GPService", "/", QDBusConnection::systemBus(), this); connect(vpn, &com::yuezk::qt::GPService::connected, this, &GPClient::onVPNConnected); connect(vpn, &com::yuezk::qt::GPService::disconnected, this, &GPClient::onVPNDisconnected); + connect(vpn, &com::yuezk::qt::GPService::error, this, &GPClient::onVPNError); connect(vpn, &com::yuezk::qt::GPService::logAvailable, this, &GPClient::onVPNLogAvailable); // Initiallize the context menu of system tray. @@ -477,6 +478,12 @@ void GPClient::onVPNDisconnected() } } +void GPClient::onVPNError(QString errorMessage) +{ + updateConnectionStatus(VpnStatus::disconnected); + openMessageBox("Failed to connect", errorMessage); +} + void GPClient::onVPNLogAvailable(QString log) { PLOGI << log; diff --git a/GPClient/gpclient.h b/GPClient/gpclient.h index a993a19..45ca86d 100644 --- a/GPClient/gpclient.h +++ b/GPClient/gpclient.h @@ -45,6 +45,7 @@ private slots: void onVPNConnected(); void onVPNDisconnected(); + void onVPNError(QString errorMessage); void onVPNLogAvailable(QString log); private: diff --git a/GPService/gpservice.cpp b/GPService/gpservice.cpp index 8dcc009..04d018f 100644 --- a/GPService/gpservice.cpp +++ b/GPService/gpservice.cpp @@ -99,7 +99,8 @@ void GPService::connect(QString server, QString username, QString passwd, QStrin QString bin = findBinary(); if (bin == nullptr) { - log("Could not found openconnect binary, make sure openconnect is installed, exiting."); + log("Could not find openconnect binary, make sure openconnect is installed, exiting."); + emit error("The OpenConect CLI was not found, make sure it has been installed!"); return; } diff --git a/GPService/gpservice.h b/GPService/gpservice.h index bd8afb7..63c4e5a 100644 --- a/GPService/gpservice.h +++ b/GPService/gpservice.h @@ -31,6 +31,7 @@ public: signals: void connected(); void disconnected(); + void error(QString errorMessage); void logAvailable(QString log); public slots: diff --git a/GPService/gpservice.xml b/GPService/gpservice.xml index 202573d..9a9b8e8 100644 --- a/GPService/gpservice.xml +++ b/GPService/gpservice.xml @@ -8,6 +8,9 @@ + + +