mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
175 lines
5.1 KiB
C++
175 lines
5.1 KiB
C++
#ifndef SERVERLMSWIDGET_H
|
||
#define SERVERLMSWIDGET_H
|
||
|
||
#include <QWidget>
|
||
#include <QTranslator>
|
||
#include <QSystemTrayIcon>
|
||
|
||
#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
|