Сервер рефакт

This commit is contained in:
2025-10-21 14:40:35 +03:00
parent f2df91e97e
commit 5287d5f13d
9 changed files with 43 additions and 53 deletions

View File

@@ -18,6 +18,7 @@ add_library(ServerLMS SHARED
Data/Client.h Data/Client.h
Data/PacketType.h Data/PacketType.h
Data/StreamingVersionData.h Data/StreamingVersionData.h
Data/usertype.h
Systems/assetsmanager.cpp Systems/assetsmanager.cpp
Systems/assetsmanager.h Systems/assetsmanager.h
Systems/recognizesystem.cpp Systems/recognizesystem.cpp
@@ -45,8 +46,7 @@ add_library(ServerLMS SHARED
Systems/chatsystem.cpp Systems/chatsystem.cpp
Systems/chatsystem.h Systems/chatsystem.h
Systems/fasthashcalculator.cpp Systems/fasthashcalculator.cpp
Systems/fasthashcalculator.h Systems/fasthashcalculator.h
Data/usertype.h
providerdblms.cpp providerdblms.cpp
providerdblms.h providerdblms.h
ServerLMS.qrc ServerLMS.qrc

View File

@@ -11,7 +11,7 @@ DialogSettingsTray::DialogSettingsTray(QWidget *parent) :
{ {
ui->setupUi(this); ui->setupUi(this);
settings = new DBSettings; settings = new ServerDBSettings;
//Задаём два пункта с текстом локалей в комбобоксе //Задаём два пункта с текстом локалей в комбобоксе
ui->cmbLanguage->addItems(QStringList() << "English" << "Русский"); ui->cmbLanguage->addItems(QStringList() << "English" << "Русский");
@@ -37,12 +37,12 @@ DialogSettingsTray::~DialogSettingsTray()
delete settings; delete settings;
} }
DBSettings DialogSettingsTray::getSettings() ServerDBSettings DialogSettingsTray::getSettings()
{ {
return *settings; return *settings;
} }
bool DialogSettingsTray::loadSettings(DBSettings *settings) bool DialogSettingsTray::loadSettings(ServerDBSettings *settings)
{ {
QFile file(settingsName); QFile file(settingsName);
if(! file.open(QIODevice::ReadOnly)) if(! file.open(QIODevice::ReadOnly))

View File

@@ -5,7 +5,7 @@
#include <QTranslator> #include <QTranslator>
#include <QEvent> #include <QEvent>
class DBSettings{ class ServerDBSettings{
public: public:
QString Type; QString Type;
QString Name; QString Name;
@@ -28,11 +28,11 @@ public:
explicit DialogSettingsTray(QWidget *parent = nullptr); explicit DialogSettingsTray(QWidget *parent = nullptr);
~DialogSettingsTray(); ~DialogSettingsTray();
DBSettings getSettings(); ServerDBSettings getSettings();
bool settingsServerIsChanged(){ return flSettingsServerChanged;} bool settingsServerIsChanged(){ return flSettingsServerChanged;}
static bool loadSettings(DBSettings *settings); static bool loadSettings(ServerDBSettings *settings);
signals: signals:
//сигнал об изменении языка интерфейса //сигнал об изменении языка интерфейса
@@ -52,7 +52,7 @@ private:
private: private:
Ui::DialogSettingsTray *ui; Ui::DialogSettingsTray *ui;
DBSettings *settings; ServerDBSettings *settings;
bool flSettingsServerChanged; bool flSettingsServerChanged;
}; };

View File

@@ -18,11 +18,16 @@ ServerLMSWidget::ServerLMSWidget(QWidget *parent) :
server(nullptr), server(nullptr),
updateThread(nullptr), updateThread(nullptr),
loggerThread(nullptr), loggerThread(nullptr),
mutex(nullptr),
dataParser(nullptr), dataParser(nullptr),
processingSystem(nullptr), processingSystem(nullptr),
updateController(nullptr), updateController(nullptr),
assetsManager(nullptr),
commonClientHandler(nullptr),
chatSystem(nullptr),
providerDBLMS(nullptr), providerDBLMS(nullptr),
language(languageENG) language(languageENG),
errorCode(0)
{ {
ui->setupUi(this); ui->setupUi(this);
mutex = new QMutex; mutex = new QMutex;
@@ -38,10 +43,6 @@ ServerLMSWidget::ServerLMSWidget(QWidget *parent) :
ui->btnStopServer->setEnabled(false); ui->btnStopServer->setEnabled(false);
ui->btnStartServer->setEnabled(true); ui->btnStartServer->setEnabled(true);
// Сделаем первоначальную инициализацию перевода для окна виджета
//qtLanguageTranslator.load(QString("translations/ServerLMS_") + QString("en_EN"), ".");
//qApp->installTranslator(&qtLanguageTranslator);
updateThread = new QThread; updateThread = new QThread;
loggerThread = new QThread; loggerThread = new QThread;
@@ -108,6 +109,20 @@ ServerLMSWidget::~ServerLMSWidget()
server->stopServer(); server->stopServer();
updateThread->exit(); updateThread->exit();
loggerThread->exit(); loggerThread->exit();
delete server;
delete commonClientHandler;
delete dataParser;
delete processingSystem;
delete updateController;
delete assetsManager;
delete chatSystem;
delete providerDBLMS;
delete loggerThread;
delete updateThread;
delete mutex;
delete ui; delete ui;
} }
@@ -208,11 +223,6 @@ void ServerLMSWidget::changeEvent(QEvent *event)
} }
} }
void ServerLMSWidget::on_cmbLanguage_currentTextChanged(const QString &arg1)
{
}
void ServerLMSWidget::on_btnSettings_clicked() void ServerLMSWidget::on_btnSettings_clicked()
{ {
DialogSettingsTray dlg(this); DialogSettingsTray dlg(this);
@@ -251,7 +261,7 @@ void ServerLMSWidget::on_btnSettings_clicked()
void ServerLMSWidget::setLanguageInterfase() void ServerLMSWidget::setLanguageInterfase()
{ {
DBSettings settings; ServerDBSettings settings;
DialogSettingsTray::loadSettings(&settings); DialogSettingsTray::loadSettings(&settings);
if(settings.Language == "ENG") if(settings.Language == "ENG")

View File

@@ -78,6 +78,7 @@ public slots:
void slotUpdateListClients(); void slotUpdateListClients();
void slot_BlockAutorization(bool block); void slot_BlockAutorization(bool block);
void addToLog(QString message); void addToLog(QString message);
public: public:
void removeClient(int socketId); void removeClient(int socketId);
@@ -96,9 +97,6 @@ public:
private slots: private slots:
void on_btnStartServer_clicked(); void on_btnStartServer_clicked();
void on_btnStopServer_clicked(); void on_btnStopServer_clicked();
void on_cmbLanguage_currentTextChanged(const QString &arg1);
void on_btnSettings_clicked(); void on_btnSettings_clicked();
private: private:

View File

@@ -126,7 +126,7 @@
</widget> </widget>
</item> </item>
<item> <item>
<spacer name="horizontalSpacer"> <spacer name="horizontalSpacer_1">
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
@@ -215,7 +215,7 @@
</property> </property>
<layout class="QGridLayout" name="gridLayout_4"> <layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0"> <item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout_3"> <layout class="QVBoxLayout" name="verticalLayout_Clients">
<item> <item>
<widget class="QListWidget" name="listWidget_Clients"> <widget class="QListWidget" name="listWidget_Clients">
<property name="sizePolicy"> <property name="sizePolicy">
@@ -250,7 +250,7 @@
</property> </property>
<layout class="QGridLayout" name="gridLayout_3"> <layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0"> <item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout_Logger">
<item> <item>
<widget class="QPlainTextEdit" name="loggerTextField"> <widget class="QPlainTextEdit" name="loggerTextField">
<property name="readOnly"> <property name="readOnly">

View File

@@ -6,6 +6,6 @@ int main(int argc, char *argv[])
{ {
QApplication a(argc, argv); QApplication a(argc, argv);
MainWindow w; MainWindow w;
//w.show(); //w.show(); //По-умолчанию свернуто в трее
return a.exec(); return a.exec();
} }

View File

@@ -67,15 +67,13 @@ MainWindow::MainWindow(QWidget *parent) :
this, SLOT(slot_IconActivated(QSystemTrayIcon::ActivationReason))); this, SLOT(slot_IconActivated(QSystemTrayIcon::ActivationReason)));
slot_Menu_HideWindow(); slot_Menu_HideWindow();
} }
/* Метод, который обрабатывает событие закрытия окна приложения /* Метод, который обрабатывает событие закрытия окна приложения
* */ * */
void MainWindow::closeEvent(QCloseEvent * event) void MainWindow::closeEvent(QCloseEvent * event)
{ {
/* Если окно видимо и чекбокс отмечен, то завершение приложения /* Если окно видимо, то завершение приложения
* игнорируется, а окно просто скрывается, что сопровождается * игнорируется, а окно просто скрывается, что сопровождается
* соответствующим всплывающим сообщением * соответствующим всплывающим сообщением
*/ */
@@ -92,7 +90,7 @@ void MainWindow::slot_IconActivated(QSystemTrayIcon::ActivationReason reason)
{ {
switch (reason){ switch (reason){
case QSystemTrayIcon::Trigger: case QSystemTrayIcon::Trigger:
/* иначе, если окно видимо, то оно скрывается, /* если окно видимо, то оно скрывается,
* и наоборот, если скрыто, то разворачивается на экран * и наоборот, если скрыто, то разворачивается на экран
* */ * */
if(!this->isVisible()) if(!this->isVisible())
@@ -119,6 +117,10 @@ MainWindow::~MainWindow()
{ {
delete serverLMSWidget; delete serverLMSWidget;
delete trayIcon; delete trayIcon;
delete menu;
delete action_ShowWindow;
delete action_HideWindow;
delete action_Exit;
delete ui; delete ui;
} }
@@ -135,28 +137,13 @@ void MainWindow::changeEvent(QEvent *event)
} }
} }
void MainWindow::on_cmbLanguage_currentIndexChanged(const QString &arg1)
{
QString language;
if(arg1 == QStringLiteral("English"))
language = QString("en_EN");
else
language = QString("ru_RU");
qtLanguageTranslator.load(QString("translations/TrayServerLMS_") + language, ".");
qApp->installTranslator(&qtLanguageTranslator);
emit signal_LanguageChanged(language);
}
void MainWindow::errorCheck() void MainWindow::errorCheck()
{ {
if(serverLMSWidget->hasError() == 100) if(serverLMSWidget->hasError() == 100)
{ {
QMessageBox msgBox; QMessageBox msgBox;
msgBox.setWindowTitle("Ошибка!"); msgBox.setWindowTitle(tr("Error!"));
msgBox.setIcon(QMessageBox::Critical); msgBox.setIcon(QMessageBox::Critical);
msgBox.setText(tr("No Client files found!")); msgBox.setText(tr("No Client files found!"));
msgBox.setInformativeText(tr("* check Application for the presence of a folder with a build \n" msgBox.setInformativeText(tr("* check Application for the presence of a folder with a build \n"

View File

@@ -40,20 +40,14 @@ public slots:
//Слот обработки смены языка //Слот обработки смены языка
void slot_LanguageChanged(QString language); void slot_LanguageChanged(QString language);
private slots:
//Слот нажатия на иконку приложения в трее //Слот нажатия на иконку приложения в трее
void slot_IconActivated(QSystemTrayIcon::ActivationReason reason); void slot_IconActivated(QSystemTrayIcon::ActivationReason reason);
public slots:
//Слоты нажатия на пункты меню //Слоты нажатия на пункты меню
void slot_Menu_ShowWindow(); void slot_Menu_ShowWindow();
void slot_Menu_HideWindow(); void slot_Menu_HideWindow();
void slot_Menu_Exit(); void slot_Menu_Exit();
private slots:
//Слот смены языка
void on_cmbLanguage_currentIndexChanged(const QString &arg1);
signals: signals:
//сигнал об изменении языка интерфейса //сигнал об изменении языка интерфейса
void signal_LanguageChanged(QString language); void signal_LanguageChanged(QString language);
@@ -67,6 +61,7 @@ private:
ServerLMSWidget* serverLMSWidget; ServerLMSWidget* serverLMSWidget;
QTranslator qtLanguageTranslator; QTranslator qtLanguageTranslator;
//Трей
QSystemTrayIcon* trayIcon; QSystemTrayIcon* trayIcon;
QMenu * menu; QMenu * menu;
QAction * action_ShowWindow; QAction * action_ShowWindow;