/*
Copyright © 2015 Gluzskiy Alexandr (sss)
This file is part of Unknown Download Manager (UDM).
UDM is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
UDM is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with UDM. If not, see .
*/
#include "udm_main.h"
#include
#include
#include "connect_widget.h"
#include "client_session.h"
udm_main::udm_main(QWidget *parent)
: QMainWindow(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()));
}
udm_main::~udm_main()
{
}
void udm_main::show_connect_widget()
{
connect_widget *w = new connect_widget;
connect(w, SIGNAL(client_connect(QString&,QString&,int)), this, SLOT(client_connect(QString&,QString&,int)));
//TODO: make connection to other slots related to connection
//TODO: destroy widget on close
w->show();
}
void udm_main::client_connect(QString &host, QString &password, int port)
{
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()));
session->moveToThread(thread_client_session);
thread_client_session->start();
emit connect_signal(host, password, port);
emit run_client_io_loop();
}