summaryrefslogtreecommitdiff
path: root/client-qt/udm-client-qt/udm_main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'client-qt/udm-client-qt/udm_main.cpp')
-rw-r--r--client-qt/udm-client-qt/udm_main.cpp54
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(); */
+}