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.cpp32
1 files changed, 11 insertions, 21 deletions
diff --git a/client-qt/udm-client-qt/udm_main.cpp b/client-qt/udm-client-qt/udm_main.cpp
index 72d73d8..27ddce1 100644
--- a/client-qt/udm-client-qt/udm_main.cpp
+++ b/client-qt/udm-client-qt/udm_main.cpp
@@ -34,6 +34,7 @@
#include <QPushButton>
#include <QToolBar>
#include <QMenu>
+#include <QApplication>
#include <boost/log/trivial.hpp>
@@ -47,12 +48,12 @@
udm_main::udm_main(QWidget *parent)
: QMainWindow(parent)
{
- io_service_ = nullptr;
- thread_client_session = nullptr;
- //session = nullptr;
+ io_service_ = new boost::asio::io_service;
+ thread_client_session = new QThread(this);
+ session = nullptr;
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 menu_connect = menu_main->addAction(tr("Connect"));
+ connect(menu_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;
@@ -203,24 +204,13 @@ void udm_main::show_connect_widget()
void udm_main::client_pre_connect_init()
{
- if(thread_client_session)
+ if(session)
{
- thread_client_session->quit();
- delete thread_client_session;
- thread_client_session = nullptr;
+ session->moveToThread(QApplication::instance()->thread());
+ thread_client_session->quit();
+ io_service_->stop();
+ delete session;
}
- thread_client_session = new QThread(this);
- if(io_service_)
- {
- delete io_service_;
- io_service_ = nullptr;
- }
- io_service_ = new boost::asio::io_service;
-/* if(session) //crashing
- {
- delete session;
- session = nullptr;
- } */
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)));