Guest User

Untitled

a guest
Jul 2nd, 2020
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.07 KB | None | 0 0
  1. h file:
  2.  
  3. #ifndef CONTROLMENUCLASS_H
  4. #define CONTROLMENUCLASS_H
  5.  
  6. #include <QMainWindow>
  7. #include <QJsonObject>
  8. #include <QThread>
  9. #include <QTimer>
  10.  
  11. #include <QScreen>
  12.  
  13. class ApiFunctionsClass;
  14. class CustomWidgetClass;
  15. class ProcessesControllerClass;
  16.  
  17. QT_BEGIN_NAMESPACE
  18. namespace Ui { class control_menu_ui; }
  19. QT_END_NAMESPACE
  20.  
  21. class ControlMenuClass : public QMainWindow
  22. {
  23.     Q_OBJECT
  24.  
  25. public:
  26.     ControlMenuClass(QString json_params_path_param, QWidget *parent = nullptr);
  27.     ~ControlMenuClass();
  28.  
  29. private:
  30.     QString json_params_path;
  31.     QJsonObject ui_params;
  32.     bool event_flag = false;
  33.  
  34.     ApiFunctionsClass *api = nullptr;
  35.     CustomWidgetClass *custom_widget = nullptr;
  36.     ProcessesControllerClass *worker = nullptr;
  37.  
  38.     QTimer *timer = nullptr;
  39.  
  40.     void program_launch();
  41.     void exit_program(int status_code);
  42.  
  43. protected:
  44.     bool eventFilter(QObject *, QEvent *event);
  45.  
  46. private slots:
  47.     void timer_slot();
  48.     void program_stop_slot();
  49.     void show_message_slot(QString text);
  50.  
  51. private:
  52.     Ui::control_menu_ui *ui;
  53. };
  54. #endif // CONTROLMENUCLASS_H
  55.  
  56.  
  57. -------------------------------------------------------------------------------
  58. cpp file:
  59.  
  60. ControlMenuClass::ControlMenuClass(QString json_params_path_param, QWidget *parent) : QMainWindow(parent), json_params_path(json_params_path_param), ui(new Ui::control_menu_ui){
  61.     this->move(0,0);
  62. //    QCoreApplication::instance()->installEventFilter(this);
  63.     this->installEventFilter(this);
  64.  
  65.     ui->setupUi(this);
  66.     this->setWindowModality(Qt::ApplicationModal);
  67.  
  68.     qobject_cast<QMainWindow*>(this)->setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
  69.     qobject_cast<QMainWindow*>(this)->centralWidget()->setStyleSheet("QWidget#centralWidget{border-style: solid; border-width: 3px; border-color: #cc5d44;}");
  70.  
  71.     api = new ApiFunctionsClass(this);
  72.     api->load_registry_settings("bilbo_project/control_menu");
  73.  
  74.     custom_widget = new CustomWidgetClass(this);
  75.  
  76.     program_launch();
  77. }
  78.  
  79. ControlMenuClass::~ControlMenuClass(){
  80.     api->save_registry_settings("bilbo_project/control_menu");
  81.  
  82.     delete ui;
  83. }
  84.  
  85. bool ControlMenuClass::eventFilter(QObject *, QEvent *event){
  86.     if ( event->type() == event->Hide && !event_flag ) { qDebug() << 1; event->accept(); return true; }//this->show(); }
  87.     if ( event->type() == event->Resize && !event_flag ) { qDebug() << 1; event->accept(); return true; }
  88.  
  89.     return false;
  90. }
  91.  
  92.  
  93.  
  94. //--------------------------------------------------------GUI FUNCTIONS-----------------------------------------------------------------//
  95.  
  96. void ControlMenuClass::program_launch(){
  97.     api->save_registry_settings("bilbo_project/control_menu");
  98.  
  99.     QString ui_params_str = api->get_file_data(json_params_path);
  100.     ui_params = QJsonDocument::fromJson(ui_params_str.toUtf8()).object();
  101.  
  102.     if ( !ui_params.contains("threads_count") ) { return exit_program(-1); }
  103.  
  104.     if ( !ui_params.contains("sphere_file_line") ) { return exit_program(-2); }
  105.     if ( !ui_params.contains("ls_login") ) { return exit_program(-3); }
  106.  
  107.     if ( !ui_params.contains("proxy_dir_line") ) { return exit_program(-4); }
  108.     if ( !ui_params.contains("port_range_min") ) { return exit_program(-5); }
  109.     if ( !ui_params.contains("port_range_max") ) { return exit_program(-6); }
  110.  
  111.     if ( !ui_params.contains("logs_dir_line") ) { return exit_program(-7); }
  112.     if ( !ui_params.contains("work_dir_line") ) { return exit_program(-8); }
  113.  
  114.     if ( !ui_params.contains("sites_number") ) { return exit_program(-9); }
  115.     if ( !ui_params.contains("deep") ) { return exit_program(-10); }
  116.     if ( !ui_params.contains("pages_time") ) { return exit_program(-11); }
  117.  
  118.     if ( !ui_params.contains("sites_keywords") ) { ui_params["sites_keywords"] = ""; }
  119.     if ( !ui_params.contains("current_blacklist") ) { ui_params["current_blacklist"] = QJsonArray(); }
  120.  
  121.     ui_params["blacklist"] = true;
  122.     ui_params["filter"] = false;
  123.     ui_params["keywords_number"] = 0;
  124.     ui_params["mode_keywords"] = false;
  125.     ui_params["mode_sites"] = true;
  126.  
  127.     timer = new QTimer;
  128.     timer->setSingleShot(true);
  129.     connect(timer, SIGNAL(timeout()), this, SLOT(timer_slot()));
  130.     timer->start(1000);
  131. }
  132.  
  133. void ControlMenuClass::program_stop_slot(){ worker->thread_control_flag = false; }
  134.  
  135. void ControlMenuClass::timer_slot(){
  136.     if ( timer ) { timer->deleteLater(); timer = nullptr; }
  137.  
  138.     this->resize(200, 300);
  139.     this->hide();
  140.  
  141. //    QThread* thread = new QThread;
  142. //    worker = new ProcessesControllerClass(this, ui_params, custom_widget, static_cast<int>(custom_widget->winId()));
  143. //    worker->moveToThread(thread);
  144. //    connect(thread, SIGNAL(started()), worker, SLOT(process()));
  145. //    connect(worker, SIGNAL(finished()), thread, SLOT(quit()));
  146. //    connect(worker, SIGNAL(finished()), worker, SLOT(deleteLater()));
  147. //    connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
  148.  
  149. //    thread->start();
  150. }
  151.  
  152. void ControlMenuClass::show_message_slot(QString text){ qDebug() << text; }
  153.  
  154. void ControlMenuClass::exit_program(int status_code){ qDebug() << status_code; }
Add Comment
Please, Sign In to add comment