This commit is contained in:
2025-12-05 12:20:47 +03:00
parent 57673d0ee4
commit 05fce073f1
450 changed files with 58 additions and 58 deletions

190
LibServer/serverlmswidget.h Normal file
View File

@@ -0,0 +1,190 @@
#ifndef SERVERLMSWIDGET_H
#define SERVERLMSWIDGET_H
#include "ServerLMS_global.h"
#include <QWidget>
#include <QTcpServer>
#include <QTcpSocket>
#include <QXmlStreamWriter>
#include <QMap>
#include <QTranslator>
#include <QMutex>
#include <QSystemTrayIcon>
#include <Systems/Parsers/dataparser.h>
#include <Systems/sendsystem.h>
#include <Systems/processingsystem.h>
#include <Systems/updatecontroller.h>
#include <Systems/assetsmanager.h>
#include <Systems/recognizesystem.h>
#include <Systems/logger.h>
#include <Systems/commonclienthandler.h>
#include <Systems/assetsmanager.h>
#include <Data/typesDataServerClient.h>
#include <Data/Client.h>
#include "multithreadserver.h"
#include "providerdblms.h"
#include "docsupdater.h"
#include "waitanimationwidget.h"
#include "specialmessagebox.h"
namespace Ui {
class ServerLMSWidget;
}
class DataParser;
class SendSystem;
class ProcessingSystem;
class Logger;
class UpdateController;
class RecognizeSystem;
class ClientHandler;
class MultiThreadServer;
class AssetsManager;
class ChatSystem;
class DocsUpdater;
class SERVERLMS_EXPORT ServerLMSWidget : public QWidget
{
Q_OBJECT
public:
explicit ServerLMSWidget(QWidget *parent = nullptr);
~ServerLMSWidget();
void start();
public:
static const QString languageENG;
static const QString languageRUS;
protected:
// Метод получения событий
// В нём будет производиться проверка события смены перевода приложения
void changeEvent(QEvent * event) override;
void resizeEvent(QResizeEvent *event) override;
signals:
//сигнал смены языка
void signal_LanguageChanged(QString language);
//сигнал вывода сообщения из трея
void signal_Tray_ShowMessage(QString textMsg, QSystemTrayIcon::MessageIcon iconMsg = QSystemTrayIcon::Information);
void signal_Menu_ShowWindow();
void signal_Menu_HideWindow();
void sigRecognize();
void sigCalculateFullHash();
void sigUpdateControllerInitialize(CommonClientHandler* commonClientHandler,DataParser *dataParser,AssetsManager *assetManager);
QTcpSocket* sigGetSocket();
void signal_DocsChanged();
void signal_hasError(int code);
public slots:
void slot_LanguageChanged(QString language);
void slot_UpdateListClients();
void slot_BlockAutorization(bool block);
void slot_AddMessageToLog(QString message);
void slot_ErrorPostgreSQL(QString text);
void slot_UpdateDocs();
void slot_startInitialization_step1();
void slot_setVersion(QString versionStr);
public:
QString getLanguage()
{
return language;
}
void setError(int code)
{
if(code == 100)
{
QString textError = tr("No Client files found!") + "\n\n" +
tr("* check Application for the presence of a folder with a build \n"
"* check SharedData for a folder with the base version and the name base");
SpecMsgBox::CriticalClose(this, textError);
}
errorCode = code;
emit signal_hasError(code);
}
int hasError() const
{
return errorCode;
}
ProcessingSystem* getProcessingSystem()
{
return processingSystem;
}
QMutex *getMutex() const
{
return mutex;
}
void removeClient(int socketId);
private slots:
void on_btnStartServer_clicked();
void on_btnStopServer_clicked();
void on_btnSettings_clicked();
void slot_trySetServerState(PacketType packetType);
private:
void setLanguageInterfase();
void updateMyStyleSheet();
QString loadStyleSheet();
void startInitialization_step0();
void tryConnectionToDB();
void updateStateServer();
private:
Ui::ServerLMSWidget *ui;
private:
WaitAnimationWidget *waitAnimationWidget;
MultiThreadServer *server;
QThread *updateThread;
QThread *loggerThread;
QMutex *mutex;
DataParser *dataParser;
ProcessingSystem *processingSystem;
UpdateController *updateController;
AssetsManager *assetsManager;
CommonClientHandler *commonClientHandler;
ChatSystem *chatSystem;
DocsUpdater* docsUpdater;
ProviderDBLMS* providerDBLMS;
bool first = true; // для тестов Unity
QTranslator qtLanguageTranslator;
QString language;
int errorCode;
QString versionStr;
bool flStartInitialization;
};
#endif // SERVERLMSWIDGET_H