Files
RRJServer/LibServer/serverlmswidget.h
2026-02-10 16:28:28 +03:00

175 lines
5.1 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#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