#ifndef SERVERLMSWIDGET_H #define SERVERLMSWIDGET_H #include #include #include #include "ServerLMS_global.h" #include "logger.h" #include "waitanimationwidget.h" #include "specialmessagebox.h" #include "Parsers/dataparser.h" #include "processingsystem.h" #include "updatecontroller.h" #include "assetsmanager.h" #include "commonclienthandler.h" #include "assetsmanager.h" #include "multithreadserver.h" #include "providerdblms.h" #include "docsupdater.h" #include "cficontroller.h" namespace Ui { class ServerLMSWidget; } class DataParser; class ProcessingSystem; class Logger; class UpdateController; class ClientHandler; class MultiThreadServer; class AssetsManager; class ChatSystem; class DocsUpdater; class CfiController; class SERVERLMS_EXPORT ServerLMSWidget : public QWidget { Q_OBJECT public: static const QString languageENG; static const QString languageRUS; public: explicit ServerLMSWidget(QWidget *parent = nullptr); ~ServerLMSWidget(); public: //INTERFACE void startInitialization(); QString getLanguage(); protected: //EVENT void changeEvent(QEvent * event) override; void resizeEvent(QResizeEvent *event) override; signals: //MAINWINDOW, ТРЕЙ //сигнал смены языка void signal_LanguageChanged(QString language); //сигнал вывода сообщения из трея void signal_Tray_ShowMessage(QString textMsg, QSystemTrayIcon::MessageIcon iconMsg = QSystemTrayIcon::Information); //синал обновления состояния сервера (иконка в трее) void signal_Tray_UpdateStateServer(EStateServer state_Server, EStateBlockAutorization state_BlockAutorization); //сигналы меню трея void signal_Menu_ShowWindow(); void signal_Menu_HideWindow(); //сигнал о наличии ошибок начальной инициализации void signal_StartInitHasError(int code); //сигнал об окончании начальной инициализации void signal_StartInitFinished(); //Для инициализации void signal_UpdateControllerInitialize(CommonClientHandler* commonClientHandler,AssetsManager *assetManager); void signal_UpdateDocsXML(); //Соединение с БД void signal_TryConnectionToDB(); void signal_TryDisConnectionFromDB(); //Сервер void signal_StartServer(); void signal_StopServer(); public slots: //ИНДИКАЦИЯ void slot_LanguageChanged(QString language); void slot_UpdateListClients(QStringList listFullName); void slot_BlockAutorizationIndicate(bool block, QString blocker, QString types); void slot_AddMessageToLog(QString message); void slot_ErrorPostgreSQL(QString text); void slot_StateConnectionToDB(bool state_dbIsConnected, DataBaseSettings state_dbSettings); void slot_StateServer(EStateServer state_Server, EStateBlockAutorization state_BlockAutorization); void slot_StateVersionMaterials(QString state_VersionMaterials); //Для инициализации void slot_UpdateControllerInitializeFinished(); void slot_UpdateDocsCompleted(); void slot_SetError(int code); //Соединение с БД void slot_ResultTryConnectDb(bool result); void slot_ResultTryDisConnectDb(bool result); private slots: void on_btnStartServer_clicked(); void on_btnStopServer_clicked(); void on_btnSettings_clicked(); private: void updateMyStyleSheet(); QString loadStyleSheet(); void initLanguageInterfase(); private: void updateStateOnlyServer(); void updateStateOnlyDB(); void updateStateOnlyVersionMaterials(); private: //Для инициализации void startInitialization_step0(); void startInitialization_step1(); void startInitialization_step2(); void startInitialization_step3(); void tryConnectionToDB(); private: Ui::ServerLMSWidget *ui; private: WaitAnimationWidget *waitAnimationWidget; QThread *updateThread; QThread *loggerThread; QThread *serverThread; MultiThreadServer *server; //serverThread DataParser *dataParser; //serverThread ProcessingSystem *processingSystem; //serverThread CommonClientHandler *commonClientHandler; //serverThread ChatSystem *chatSystem; //serverThread ProviderDBLMS* providerDBLMS; //serverThread UpdateController *updateController; //updateThread AssetsManager *assetsManager; //updateThread DocsUpdater* docsUpdater; //updateThread CfiController* cfiController; //updateThread QTranslator qtLanguageTranslator; QString language; int errorCode; QString state_VersionMaterials; bool state_dbIsConnected; DataBaseSettings state_dbSettings; EStateServer state_Server; EStateBlockAutorization state_BlockAutorization; bool flStartInitialization; bool flTryConnectionToDB; bool flNeedReconnectDB; bool flTryUpdateDocs; }; #endif // SERVERLMSWIDGET_H