From b9a39287cfd7d93d89aa3f40b5d2b3847cf033a6 Mon Sep 17 00:00:00 2001 From: krivoshein Date: Tue, 21 Oct 2025 11:48:30 +0300 Subject: [PATCH] Settings 2 --- ServerLMS/Systems/tools.h | 3 ++ ServerLMS/dialogsettingstray.cpp | 45 +++++++++++------ ServerLMS/dialogsettingstray.h | 6 ++- ServerLMS/serverlmswidget.cpp | 24 +++++++++ ServerLMS/serverlmswidget.h | 3 ++ ServerLMS/serverlmswidget.ui | 86 ++++++++++++++++---------------- TrayServerLMS/mainwindow.cpp | 5 +- TrayServerLMS/mainwindow.ui | 60 ++-------------------- 8 files changed, 112 insertions(+), 120 deletions(-) diff --git a/ServerLMS/Systems/tools.h b/ServerLMS/Systems/tools.h index 35dd84c..b243a54 100644 --- a/ServerLMS/Systems/tools.h +++ b/ServerLMS/Systems/tools.h @@ -30,6 +30,9 @@ static const QString tasksFIMfileName = "/tasksFIM.xml"; static const QString clientHash = staticDataFolderName + "/clientHash.xml"; static const QString logFolderPath = "log"; +static const QString configFolderName = "config"; +static const QString settingsName = configFolderName + "/settings.xml"; + static const QString baseNameVersion = "base";//может вынести комманды куда нибудь? static const QString commandTryBaseDelete = "BASEDELETETRY"; diff --git a/ServerLMS/dialogsettingstray.cpp b/ServerLMS/dialogsettingstray.cpp index 8edbe4e..e1216f4 100644 --- a/ServerLMS/dialogsettingstray.cpp +++ b/ServerLMS/dialogsettingstray.cpp @@ -1,4 +1,6 @@ +#include #include "dialogsettingstray.h" +#include "Systems/tools.h" #include "ui_dialogsettingstray.h" DialogSettingsTray::DialogSettingsTray(QWidget *parent) : @@ -42,7 +44,6 @@ DBSettings DialogSettingsTray::getSettings() bool DialogSettingsTray::loadSettings(DBSettings *settings) { - /* QFile file(settingsName); if(! file.open(QIODevice::ReadOnly)) return false; @@ -53,15 +54,31 @@ bool DialogSettingsTray::loadSettings(DBSettings *settings) if(xmlReader.isStartElement()){ - if(xmlReader.name() == "ServerSettings") + if(xmlReader.name() == "DataBaseSettings") { foreach(const QXmlStreamAttribute &attr, xmlReader.attributes()){ QString name = attr.name().toString(); QString value = attr.value().toString(); - if(name == "Address"){ - settings->Address = value; + if(name == "Type"){ + settings->Type = value; + } + + if(name == "Name"){ + settings->Name = value; + } + + if(name == "UserName"){ + settings->UserName = value; + } + + if(name == "Password"){ + settings->Password = value; + } + + if(name == "HostName"){ + settings->HostName = value; } if(name == "Port"){ @@ -72,10 +89,6 @@ bool DialogSettingsTray::loadSettings(DBSettings *settings) settings->Language = value; } - if(name == "AutoStart"){ - settings->isAutoStart = value.toInt(); - } - } } } @@ -84,7 +97,6 @@ bool DialogSettingsTray::loadSettings(DBSettings *settings) } file.close(); - */ return true; } @@ -105,7 +117,9 @@ void DialogSettingsTray::on_btnSave_clicked() settings->Language = "RUS"; } - //settings->Address = ui->editAddress->text(); + //settings->Address = ui->editUserName->text(); + //settings->Address = ui->editPassword->text(); + //settings->Address = ui->editHostName->text(); //settings->Port = ui->editPort->text(); saveSettings(); @@ -115,7 +129,6 @@ void DialogSettingsTray::on_btnSave_clicked() bool DialogSettingsTray::saveSettings() { - /* QFile file(settingsName); if(! file.open(QIODevice::WriteOnly)) @@ -127,12 +140,15 @@ bool DialogSettingsTray::saveSettings() xmlWriter.writeStartDocument(); xmlWriter.writeStartElement("ServerSettingsContainer"); - xmlWriter.writeStartElement("ServerSettings"); + xmlWriter.writeStartElement("DataBaseSettings"); - xmlWriter.writeAttribute("Address", settings->Address); + xmlWriter.writeAttribute("Type", settings->Type); + xmlWriter.writeAttribute("Name", settings->Name); + xmlWriter.writeAttribute("UserName", settings->UserName); + xmlWriter.writeAttribute("Password", settings->Password); + xmlWriter.writeAttribute("HostName", settings->HostName); xmlWriter.writeAttribute("Port", settings->Port); xmlWriter.writeAttribute("Language", settings->Language); - xmlWriter.writeAttribute("AutoStart", QString::number(settings->isAutoStart)); xmlWriter.writeEndElement(); xmlWriter.writeEndElement(); @@ -140,7 +156,6 @@ bool DialogSettingsTray::saveSettings() xmlWriter.writeEndDocument(); file.close(); - */ return true; } diff --git a/ServerLMS/dialogsettingstray.h b/ServerLMS/dialogsettingstray.h index 103d990..d640f8e 100644 --- a/ServerLMS/dialogsettingstray.h +++ b/ServerLMS/dialogsettingstray.h @@ -7,7 +7,11 @@ class DBSettings{ public: - QString Address; + QString Type; + QString Name; + QString UserName; + QString Password; + QString HostName; QString Port; QString Language; }; diff --git a/ServerLMS/serverlmswidget.cpp b/ServerLMS/serverlmswidget.cpp index 8f05e74..ac6b7e8 100644 --- a/ServerLMS/serverlmswidget.cpp +++ b/ServerLMS/serverlmswidget.cpp @@ -30,6 +30,9 @@ ServerLMSWidget::ServerLMSWidget(QWidget *parent) : qRegisterMetaType("PacketType"); qRegisterMetaType("UserType"); qRegisterMetaType("LogLevel"); + + setLanguageInterfase(); + errorCode = 0; ui->btnStopServer->setEnabled(false); @@ -240,3 +243,24 @@ void ServerLMSWidget::on_btnSettings_clicked() break; } } + +void ServerLMSWidget::setLanguageInterfase() +{ + DBSettings settings; + DialogSettingsTray::loadSettings(&settings); + + if(settings.Language == "ENG") + { + qtLanguageTranslator.load(QString("translations/ServerLMS_") + languageENG, "."); + language = languageENG; + } + else + { + qtLanguageTranslator.load(QString("translations/ServerLMS_") + languageRUS, "."); + language = languageRUS; + } + + qApp->installTranslator(&qtLanguageTranslator); + + emit signal_LanguageChanged(language); +} diff --git a/ServerLMS/serverlmswidget.h b/ServerLMS/serverlmswidget.h index c7d8dc1..7753720 100644 --- a/ServerLMS/serverlmswidget.h +++ b/ServerLMS/serverlmswidget.h @@ -98,6 +98,9 @@ private slots: void on_btnSettings_clicked(); +private: + void setLanguageInterfase(); + private: Ui::ServerLMSWidget *ui; diff --git a/ServerLMS/serverlmswidget.ui b/ServerLMS/serverlmswidget.ui index da8f3ec..4e03b96 100644 --- a/ServerLMS/serverlmswidget.ui +++ b/ServerLMS/serverlmswidget.ui @@ -6,7 +6,7 @@ 0 0 - 600 + 800 600 @@ -138,6 +138,48 @@ + + + + + + Block Authorization + + + + + + + + 0 + 0 + + + + + 32 + 32 + + + + + 32 + 32 + + + + + + + :/resources/icons/open.png + + + true + + + + + @@ -256,48 +298,6 @@ - - - - - - Block Authorization - - - - - - - - 0 - 0 - - - - - 32 - 32 - - - - - 32 - 32 - - - - - - - :/resources/icons/open.png - - - true - - - - - diff --git a/TrayServerLMS/mainwindow.cpp b/TrayServerLMS/mainwindow.cpp index 8d0f95c..4b78292 100644 --- a/TrayServerLMS/mainwindow.cpp +++ b/TrayServerLMS/mainwindow.cpp @@ -15,12 +15,9 @@ MainWindow::MainWindow(QWidget *parent) : { ui->setupUi(this); - //Задаём два пункта с текстом локалей в комбобоксе - ui->cmbLanguage->addItems(QStringList() << "English" << "Русский"); - serverLMSWidget = new ServerLMSWidget(this); - ui->verticalLayout_1->addWidget(serverLMSWidget); + ui->verticalLayout_Main->addWidget(serverLMSWidget); connect(serverLMSWidget, &ServerLMSWidget::signal_LanguageChanged, this, &MainWindow::slot_LanguageChanged); diff --git a/TrayServerLMS/mainwindow.ui b/TrayServerLMS/mainwindow.ui index 15f4d83..d2812bf 100644 --- a/TrayServerLMS/mainwindow.ui +++ b/TrayServerLMS/mainwindow.ui @@ -20,7 +20,7 @@ Server Learning management system (LMS) - + :/resources/IcoServerRRJ.ico:/resources/IcoServerRRJ.ico @@ -28,61 +28,7 @@ - - - - - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 0 - 0 - - - - Language - - - - - - - - 0 - 0 - - - - - 100 - 0 - - - - - - - + @@ -101,7 +47,7 @@ - +