#ifndef SERVERLMSWIDGET_H #define SERVERLMSWIDGET_H #include "ServerLMS_global.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "multithreadserver.h" #include "providerdblms.h" #include "docsupdater.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; 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 sigUpdateController(CommonClientHandler* commonClientHandler,DataParser *dataParser,AssetsManager *assetManager); QTcpSocket* sigGetSocket(); void signal_DocsChanged(); 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(); public: QString getLanguage() { return language; } void setError(int code) { errorCode = 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(); 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; bool flStartInitialization; }; #endif // SERVERLMSWIDGET_H