diff options
Diffstat (limited to 'client-qt/udm-client-qt/udm_main.cpp')
-rw-r--r-- | client-qt/udm-client-qt/udm_main.cpp | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/client-qt/udm-client-qt/udm_main.cpp b/client-qt/udm-client-qt/udm_main.cpp index f85dc5d..0089a45 100644 --- a/client-qt/udm-client-qt/udm_main.cpp +++ b/client-qt/udm-client-qt/udm_main.cpp @@ -22,10 +22,14 @@ #include "udm_main.h" #include <QMenuBar> #include <QThread> +#include <QMessageBox> +#include <QStatusBar> +#include <QLabel> #include "connect_widget.h" #include "client_session.h" + udm_main::udm_main(QWidget *parent) : QMainWindow(parent) { @@ -34,6 +38,9 @@ udm_main::udm_main(QWidget *parent) connect(action_connect, SIGNAL(triggered()), this, SLOT(show_connect_widget())); auto action_exit = menu_main->addAction(tr("Exit")); connect(action_exit, SIGNAL(triggered(bool)), this, SLOT(close())); //TODO: something better + lbl_state = new QLabel; + lbl_state->setText(tr("State") + ": " + tr("Offline")); + this->statusBar()->addPermanentWidget(lbl_state); } udm_main::~udm_main() @@ -55,6 +62,8 @@ void udm_main::client_pre_connect_init() thread_client_session = new QThread(this); io_service_ = new boost::asio::io_service; session = new client_session(0, io_service_); //parent must be 0 here + connect(session, SIGNAL(server_message_received(server_msg)), this, SLOT(server_message_received(server_msg))); + connect(session, SIGNAL(client_connected(bool,QString)), this, SLOT(client_connected(bool,QString))); } void udm_main::client_connect_finalize() { @@ -78,3 +87,48 @@ void udm_main::client_connect_ssl(QString &host, QString &password, int port, QS client_connect_finalize(); emit connect_signal_ssl(host, password, port, ssl_ca, ssl_crt, ssl_key); } + +void udm_main::server_message_received(server_msg msg) +{ + switch(msg.type()) + { + case SERVER_MSG_TYPE::SERVER_AUTH_REPLY: + { + if(msg.auth_reply().status()) + { + auth_token = msg.auth_reply().auth_token().c_str(); + //TODO: update client status + lbl_state->setText(tr("State") + ": " + tr("Connected") + ", " + tr("Authenticated")); + } + else + { + QMessageBox msg_box; + msg_box.setText(tr("Authentication failed with error:") + "\n" + msg.auth_reply().error_description().c_str()); + msg_box.exec(); + lbl_state->setText(tr("State") + ": " + tr("auth error")); + } + + } + break; + default: + break; + } +} + +void udm_main::client_connected(bool success, QString error_text) +{ + if(!success) + { + QMessageBox msg; + msg.setText(tr("client connection error with error:") + error_text); + msg.exec(); + lbl_state->setText(tr("State") + ": " + tr("Connection error")); + } + else + { + lbl_state->setText(tr("State") + ": " + tr("Connected")); + } +/* QMessageBox msg; + msg.setText(success?"client connected with message:":"client connection error with error:" + error_text); + msg.exec(); */ +} |