Settings 2

This commit is contained in:
2025-10-21 11:48:30 +03:00
parent 068a4ee14a
commit b9a39287cf
8 changed files with 112 additions and 120 deletions

View File

@@ -30,6 +30,9 @@ static const QString tasksFIMfileName = "/tasksFIM.xml";
static const QString clientHash = staticDataFolderName + "/clientHash.xml"; static const QString clientHash = staticDataFolderName + "/clientHash.xml";
static const QString logFolderPath = "log"; 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 baseNameVersion = "base";//может вынести комманды куда нибудь?
static const QString commandTryBaseDelete = "BASEDELETETRY"; static const QString commandTryBaseDelete = "BASEDELETETRY";

View File

@@ -1,4 +1,6 @@
#include <QXmlStreamReader>
#include "dialogsettingstray.h" #include "dialogsettingstray.h"
#include "Systems/tools.h"
#include "ui_dialogsettingstray.h" #include "ui_dialogsettingstray.h"
DialogSettingsTray::DialogSettingsTray(QWidget *parent) : DialogSettingsTray::DialogSettingsTray(QWidget *parent) :
@@ -42,7 +44,6 @@ DBSettings DialogSettingsTray::getSettings()
bool DialogSettingsTray::loadSettings(DBSettings *settings) bool DialogSettingsTray::loadSettings(DBSettings *settings)
{ {
/*
QFile file(settingsName); QFile file(settingsName);
if(! file.open(QIODevice::ReadOnly)) if(! file.open(QIODevice::ReadOnly))
return false; return false;
@@ -53,15 +54,31 @@ bool DialogSettingsTray::loadSettings(DBSettings *settings)
if(xmlReader.isStartElement()){ if(xmlReader.isStartElement()){
if(xmlReader.name() == "ServerSettings") if(xmlReader.name() == "DataBaseSettings")
{ {
foreach(const QXmlStreamAttribute &attr, xmlReader.attributes()){ foreach(const QXmlStreamAttribute &attr, xmlReader.attributes()){
QString name = attr.name().toString(); QString name = attr.name().toString();
QString value = attr.value().toString(); QString value = attr.value().toString();
if(name == "Address"){ if(name == "Type"){
settings->Address = value; 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"){ if(name == "Port"){
@@ -72,10 +89,6 @@ bool DialogSettingsTray::loadSettings(DBSettings *settings)
settings->Language = value; settings->Language = value;
} }
if(name == "AutoStart"){
settings->isAutoStart = value.toInt();
}
} }
} }
} }
@@ -84,7 +97,6 @@ bool DialogSettingsTray::loadSettings(DBSettings *settings)
} }
file.close(); file.close();
*/
return true; return true;
} }
@@ -105,7 +117,9 @@ void DialogSettingsTray::on_btnSave_clicked()
settings->Language = "RUS"; 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(); //settings->Port = ui->editPort->text();
saveSettings(); saveSettings();
@@ -115,7 +129,6 @@ void DialogSettingsTray::on_btnSave_clicked()
bool DialogSettingsTray::saveSettings() bool DialogSettingsTray::saveSettings()
{ {
/*
QFile file(settingsName); QFile file(settingsName);
if(! file.open(QIODevice::WriteOnly)) if(! file.open(QIODevice::WriteOnly))
@@ -127,12 +140,15 @@ bool DialogSettingsTray::saveSettings()
xmlWriter.writeStartDocument(); xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("ServerSettingsContainer"); 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("Port", settings->Port);
xmlWriter.writeAttribute("Language", settings->Language); xmlWriter.writeAttribute("Language", settings->Language);
xmlWriter.writeAttribute("AutoStart", QString::number(settings->isAutoStart));
xmlWriter.writeEndElement(); xmlWriter.writeEndElement();
xmlWriter.writeEndElement(); xmlWriter.writeEndElement();
@@ -140,7 +156,6 @@ bool DialogSettingsTray::saveSettings()
xmlWriter.writeEndDocument(); xmlWriter.writeEndDocument();
file.close(); file.close();
*/
return true; return true;
} }

View File

@@ -7,7 +7,11 @@
class DBSettings{ class DBSettings{
public: public:
QString Address; QString Type;
QString Name;
QString UserName;
QString Password;
QString HostName;
QString Port; QString Port;
QString Language; QString Language;
}; };

View File

@@ -30,6 +30,9 @@ ServerLMSWidget::ServerLMSWidget(QWidget *parent) :
qRegisterMetaType<PacketType>("PacketType"); qRegisterMetaType<PacketType>("PacketType");
qRegisterMetaType<UserType>("UserType"); qRegisterMetaType<UserType>("UserType");
qRegisterMetaType<LogLevel>("LogLevel"); qRegisterMetaType<LogLevel>("LogLevel");
setLanguageInterfase();
errorCode = 0; errorCode = 0;
ui->btnStopServer->setEnabled(false); ui->btnStopServer->setEnabled(false);
@@ -240,3 +243,24 @@ void ServerLMSWidget::on_btnSettings_clicked()
break; 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);
}

View File

@@ -98,6 +98,9 @@ private slots:
void on_btnSettings_clicked(); void on_btnSettings_clicked();
private:
void setLanguageInterfase();
private: private:
Ui::ServerLMSWidget *ui; Ui::ServerLMSWidget *ui;

View File

@@ -6,7 +6,7 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>600</width> <width>800</width>
<height>600</height> <height>600</height>
</rect> </rect>
</property> </property>
@@ -138,6 +138,48 @@
</property> </property>
</spacer> </spacer>
</item> </item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_Block">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Block Authorization</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lblBlockAuth">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="ServerLMS.qrc">:/resources/icons/open.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item> <item>
<widget class="QToolButton" name="btnSettings"> <widget class="QToolButton" name="btnSettings">
<property name="minimumSize"> <property name="minimumSize">
@@ -256,48 +298,6 @@
</property> </property>
</spacer> </spacer>
</item> </item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_Block">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Block Authorization</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lblBlockAuth">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="ServerLMS.qrc">:/resources/icons/open.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
</layout> </layout>
</item> </item>
</layout> </layout>

View File

@@ -15,12 +15,9 @@ MainWindow::MainWindow(QWidget *parent) :
{ {
ui->setupUi(this); ui->setupUi(this);
//Задаём два пункта с текстом локалей в комбобоксе
ui->cmbLanguage->addItems(QStringList() << "English" << "Русский");
serverLMSWidget = new ServerLMSWidget(this); serverLMSWidget = new ServerLMSWidget(this);
ui->verticalLayout_1->addWidget(serverLMSWidget); ui->verticalLayout_Main->addWidget(serverLMSWidget);
connect(serverLMSWidget, &ServerLMSWidget::signal_LanguageChanged, this, &MainWindow::slot_LanguageChanged); connect(serverLMSWidget, &ServerLMSWidget::signal_LanguageChanged, this, &MainWindow::slot_LanguageChanged);

View File

@@ -20,7 +20,7 @@
<string>Server Learning management system (LMS)</string> <string>Server Learning management system (LMS)</string>
</property> </property>
<property name="windowIcon"> <property name="windowIcon">
<iconset resource="testServerLMS.qrc"> <iconset resource="TrayServerLMS.qrc">
<normaloff>:/resources/IcoServerRRJ.ico</normaloff>:/resources/IcoServerRRJ.ico</iconset> <normaloff>:/resources/IcoServerRRJ.ico</normaloff>:/resources/IcoServerRRJ.ico</iconset>
</property> </property>
<widget class="QWidget" name="centralwidget"> <widget class="QWidget" name="centralwidget">
@@ -28,61 +28,7 @@
<item row="0" column="0"> <item row="0" column="0">
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="0" column="0"> <item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout_Main"/>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<layout class="QVBoxLayout" name="verticalLayout_1"/>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Language</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="cmbLanguage">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item> </item>
</layout> </layout>
</item> </item>
@@ -101,7 +47,7 @@
<widget class="QStatusBar" name="statusbar"/> <widget class="QStatusBar" name="statusbar"/>
</widget> </widget>
<resources> <resources>
<include location="testServerLMS.qrc"/> <include location="TrayServerLMS.qrc"/>
</resources> </resources>
<connections/> <connections/>
</ui> </ui>