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

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/PacketType.h
Data/StreamingVersionData.h
Data/usertype.h
Systems/assetsmanager.cpp
Systems/assetsmanager.h
Systems/recognizesystem.cpp
@@ -46,7 +47,6 @@ add_library(ServerLMS SHARED
Systems/chatsystem.h
Systems/fasthashcalculator.cpp
Systems/fasthashcalculator.h
Data/usertype.h
providerdblms.cpp
providerdblms.h
ServerLMS.qrc

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -67,15 +67,13 @@ MainWindow::MainWindow(QWidget *parent) :
this, SLOT(slot_IconActivated(QSystemTrayIcon::ActivationReason)));
slot_Menu_HideWindow();
}
/* Метод, который обрабатывает событие закрытия окна приложения
* */
void MainWindow::closeEvent(QCloseEvent * event)
{
/* Если окно видимо и чекбокс отмечен, то завершение приложения
/* Если окно видимо, то завершение приложения
* игнорируется, а окно просто скрывается, что сопровождается
* соответствующим всплывающим сообщением
*/
@@ -92,7 +90,7 @@ void MainWindow::slot_IconActivated(QSystemTrayIcon::ActivationReason reason)
{
switch (reason){
case QSystemTrayIcon::Trigger:
/* иначе, если окно видимо, то оно скрывается,
/* если окно видимо, то оно скрывается,
* и наоборот, если скрыто, то разворачивается на экран
* */
if(!this->isVisible())
@@ -119,6 +117,10 @@ MainWindow::~MainWindow()
{
delete serverLMSWidget;
delete trayIcon;
delete menu;
delete action_ShowWindow;
delete action_HideWindow;
delete action_Exit;
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()
{
if(serverLMSWidget->hasError() == 100)
{
QMessageBox msgBox;
msgBox.setWindowTitle("Ошибка!");
msgBox.setWindowTitle(tr("Error!"));
msgBox.setIcon(QMessageBox::Critical);
msgBox.setText(tr("No Client files found!"));
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);
private slots:
//Слот нажатия на иконку приложения в трее
void slot_IconActivated(QSystemTrayIcon::ActivationReason reason);
public slots:
//Слоты нажатия на пункты меню
void slot_Menu_ShowWindow();
void slot_Menu_HideWindow();
void slot_Menu_Exit();
private slots:
//Слот смены языка
void on_cmbLanguage_currentIndexChanged(const QString &arg1);
signals:
//сигнал об изменении языка интерфейса
void signal_LanguageChanged(QString language);
@@ -67,6 +61,7 @@ private:
ServerLMSWidget* serverLMSWidget;
QTranslator qtLanguageTranslator;
//Трей
QSystemTrayIcon* trayIcon;
QMenu * menu;
QAction * action_ShowWindow;