Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- h file:
- #ifndef CONTROLMENUCLASS_H
- #define CONTROLMENUCLASS_H
- #include <QMainWindow>
- #include <QJsonObject>
- #include <QThread>
- #include <QTimer>
- #include <QScreen>
- class ApiFunctionsClass;
- class CustomWidgetClass;
- class ProcessesControllerClass;
- QT_BEGIN_NAMESPACE
- namespace Ui { class control_menu_ui; }
- QT_END_NAMESPACE
- class ControlMenuClass : public QMainWindow
- {
- Q_OBJECT
- public:
- ControlMenuClass(QString json_params_path_param, QWidget *parent = nullptr);
- ~ControlMenuClass();
- private:
- QString json_params_path;
- QJsonObject ui_params;
- bool event_flag = false;
- ApiFunctionsClass *api = nullptr;
- CustomWidgetClass *custom_widget = nullptr;
- ProcessesControllerClass *worker = nullptr;
- QTimer *timer = nullptr;
- void program_launch();
- void exit_program(int status_code);
- protected:
- bool eventFilter(QObject *, QEvent *event);
- private slots:
- void timer_slot();
- void program_stop_slot();
- void show_message_slot(QString text);
- private:
- Ui::control_menu_ui *ui;
- };
- #endif // CONTROLMENUCLASS_H
- -------------------------------------------------------------------------------
- cpp file:
- ControlMenuClass::ControlMenuClass(QString json_params_path_param, QWidget *parent) : QMainWindow(parent), json_params_path(json_params_path_param), ui(new Ui::control_menu_ui){
- this->move(0,0);
- // QCoreApplication::instance()->installEventFilter(this);
- this->installEventFilter(this);
- ui->setupUi(this);
- this->setWindowModality(Qt::ApplicationModal);
- qobject_cast<QMainWindow*>(this)->setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
- qobject_cast<QMainWindow*>(this)->centralWidget()->setStyleSheet("QWidget#centralWidget{border-style: solid; border-width: 3px; border-color: #cc5d44;}");
- api = new ApiFunctionsClass(this);
- api->load_registry_settings("bilbo_project/control_menu");
- custom_widget = new CustomWidgetClass(this);
- program_launch();
- }
- ControlMenuClass::~ControlMenuClass(){
- api->save_registry_settings("bilbo_project/control_menu");
- delete ui;
- }
- bool ControlMenuClass::eventFilter(QObject *, QEvent *event){
- if ( event->type() == event->Hide && !event_flag ) { qDebug() << 1; event->accept(); return true; }//this->show(); }
- if ( event->type() == event->Resize && !event_flag ) { qDebug() << 1; event->accept(); return true; }
- return false;
- }
- //--------------------------------------------------------GUI FUNCTIONS-----------------------------------------------------------------//
- void ControlMenuClass::program_launch(){
- api->save_registry_settings("bilbo_project/control_menu");
- QString ui_params_str = api->get_file_data(json_params_path);
- ui_params = QJsonDocument::fromJson(ui_params_str.toUtf8()).object();
- if ( !ui_params.contains("threads_count") ) { return exit_program(-1); }
- if ( !ui_params.contains("sphere_file_line") ) { return exit_program(-2); }
- if ( !ui_params.contains("ls_login") ) { return exit_program(-3); }
- if ( !ui_params.contains("proxy_dir_line") ) { return exit_program(-4); }
- if ( !ui_params.contains("port_range_min") ) { return exit_program(-5); }
- if ( !ui_params.contains("port_range_max") ) { return exit_program(-6); }
- if ( !ui_params.contains("logs_dir_line") ) { return exit_program(-7); }
- if ( !ui_params.contains("work_dir_line") ) { return exit_program(-8); }
- if ( !ui_params.contains("sites_number") ) { return exit_program(-9); }
- if ( !ui_params.contains("deep") ) { return exit_program(-10); }
- if ( !ui_params.contains("pages_time") ) { return exit_program(-11); }
- if ( !ui_params.contains("sites_keywords") ) { ui_params["sites_keywords"] = ""; }
- if ( !ui_params.contains("current_blacklist") ) { ui_params["current_blacklist"] = QJsonArray(); }
- ui_params["blacklist"] = true;
- ui_params["filter"] = false;
- ui_params["keywords_number"] = 0;
- ui_params["mode_keywords"] = false;
- ui_params["mode_sites"] = true;
- timer = new QTimer;
- timer->setSingleShot(true);
- connect(timer, SIGNAL(timeout()), this, SLOT(timer_slot()));
- timer->start(1000);
- }
- void ControlMenuClass::program_stop_slot(){ worker->thread_control_flag = false; }
- void ControlMenuClass::timer_slot(){
- if ( timer ) { timer->deleteLater(); timer = nullptr; }
- this->resize(200, 300);
- this->hide();
- // QThread* thread = new QThread;
- // worker = new ProcessesControllerClass(this, ui_params, custom_widget, static_cast<int>(custom_widget->winId()));
- // worker->moveToThread(thread);
- // connect(thread, SIGNAL(started()), worker, SLOT(process()));
- // connect(worker, SIGNAL(finished()), thread, SLOT(quit()));
- // connect(worker, SIGNAL(finished()), worker, SLOT(deleteLater()));
- // connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
- // thread->start();
- }
- void ControlMenuClass::show_message_slot(QString text){ qDebug() << text; }
- void ControlMenuClass::exit_program(int status_code){ qDebug() << status_code; }
Add Comment
Please, Sign In to add comment