/* 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 . */ #ifndef UDM_MAIN_H #define UDM_MAIN_H #include #include #include "../../protocol/udm.pb.h" class client_session; class QLabel; class QTableView; class QTreeView; class QTabWidget; class downloads_model; class filters_model; class QSplitter; class QToolBar; class QPushButton; class QMenu; class QAction; namespace boost { namespace asio { class io_service; } } class udm_main : public QMainWindow { Q_OBJECT public: udm_main(QWidget *parent = 0); ~udm_main(); public slots: void show_connect_widget(); void client_connect(QString &host, QString &password, int port); void client_connect_ssl(QString &host, QString &password, int port, QString &ssl_ca, QString &ssl_crt, QString &ssl_key); void server_message_received(server_msg msg); void client_connected(bool success, QString error_text); void client_disconnected(); void got_download_settings(std::string module_name, std::map); protected slots: void btn_start_clicked(); void btn_stop_clicked(); void btn_add_clicked(); void btn_del_clicked(); void download_start(); void download_stop(); void download_delete(); void downloads_menu(const QPoint&); void downloads_selection_changed(QItemSelection, QItemSelection); signals: void connect_signal(QString host, QString password, int port); void connect_signal_ssl(QString host, QString password, int port, QString ssl_ca, QString ssl_crt, QString ssl_key); private: void client_pre_connect_init(); void client_connect_finalize(); void create_buttons(); void create_menu(); QThread *thread_client_session; client_session *session; boost::asio::io_service *io_service_; std::string auth_token; QLabel *lbl_state; QTableView *tbl_downloads; QTreeView *tree_filters; QTabWidget *tabs_info; QToolBar *button_bar; QPushButton *btn_start, *btn_stop, *btn_del, *btn_add; QMenu *download_menu; std::list download_menu_actions; downloads_model *mdl_downloads; filters_model *mdl_filters; QSplitter *spl_hor, *spl_vert; core_info server_info; std::vector downloads; std::list modules; }; #endif // UDM_MAIN_H