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.cpp29
1 files changed, 23 insertions, 6 deletions
diff --git a/client-qt/udm-client-qt/udm_main.cpp b/client-qt/udm-client-qt/udm_main.cpp
index 02c0f9a..f85dc5d 100644
--- a/client-qt/udm-client-qt/udm_main.cpp
+++ b/client-qt/udm-client-qt/udm_main.cpp
@@ -32,11 +32,13 @@ udm_main::udm_main(QWidget *parent)
auto menu_main = this->menuBar()->addMenu(tr("Main"));
auto action_connect = menu_main->addAction(tr("Connect"));
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
}
udm_main::~udm_main()
{
-
+ //TODO: clear all remaining data
}
void udm_main::show_connect_widget()
@@ -48,16 +50,31 @@ void udm_main::show_connect_widget()
w->show();
}
-void udm_main::client_connect(QString &host, QString &password, int port)
+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(this, SIGNAL(connect_signal(QString,QString,int)), session, SLOT(client_connect(QString,QString,int)));
- connect(this, SIGNAL(run_client_io_loop()), session, SLOT(run_io_service()));
- connect(session, SIGNAL(terminate_thread()), thread_client_session, SLOT(terminate()));
+}
+void udm_main::client_connect_finalize()
+{
+ //connect(session, SIGNAL(terminate_thread()), thread_client_session, SLOT(terminate()));
session->moveToThread(thread_client_session);
thread_client_session->start();
+}
+
+void udm_main::client_connect(QString &host, QString &password, int port)
+{
+ client_pre_connect_init();
+ connect(this, SIGNAL(connect_signal(QString,QString,int)), session, SLOT(client_connect(QString,QString,int)));
+ client_connect_finalize();
emit connect_signal(host, password, port);
- emit run_client_io_loop();
+}
+
+void udm_main::client_connect_ssl(QString &host, QString &password, int port, QString &ssl_ca, QString &ssl_crt, QString &ssl_key)
+{
+ client_pre_connect_init();
+ connect(this, SIGNAL(connect_signal(QString,QString,int,QString,QString)), session, SLOT(client_connect(QString,QString,int,QString,QString)));
+ client_connect_finalize();
+ emit connect_signal_ssl(host, password, port, ssl_ca, ssl_crt, ssl_key);
}