#include #include "dialogsettingstray.h" #include "Systems/tools.h" #include "ui_dialogsettingstray.h" DialogSettingsTray::DialogSettingsTray(QWidget *parent) : QDialog(parent), ui(new Ui::DialogSettingsTray), settings(nullptr), flSettingsServerChanged(false) { ui->setupUi(this); settings = new DBSettings; //Задаём два пункта с текстом локалей в комбобоксе ui->cmbLanguage->addItems(QStringList() << "English" << "Русский"); if(loadSettings(settings)) { if(settings->Language == "ENG") ui->cmbLanguage->setCurrentText("English"); else ui->cmbLanguage->setCurrentText("Русский"); //ui->editAddress->setText(settings->Address); //ui->editPort->setText(settings->Port); } ui->btnSave->setEnabled(false); flSettingsServerChanged = false; } DialogSettingsTray::~DialogSettingsTray() { delete ui; delete settings; } DBSettings DialogSettingsTray::getSettings() { return *settings; } bool DialogSettingsTray::loadSettings(DBSettings *settings) { QFile file(settingsName); if(! file.open(QIODevice::ReadOnly)) return false; QXmlStreamReader xmlReader(&file); while (!xmlReader.atEnd()){ if(xmlReader.isStartElement()){ if(xmlReader.name() == "DataBaseSettings") { foreach(const QXmlStreamAttribute &attr, xmlReader.attributes()){ QString name = attr.name().toString(); QString value = attr.value().toString(); 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"){ settings->Port = value; } if(name == "Language"){ settings->Language = value; } } } } xmlReader.readNext(); } file.close(); return true; } void DialogSettingsTray::on_cmbLanguage_currentTextChanged(const QString &arg1) { } void DialogSettingsTray::on_btnSave_clicked() { if(ui->cmbLanguage->currentText() == QStringLiteral("English")) { settings->Language = "ENG"; } else { settings->Language = "RUS"; } //settings->Address = ui->editUserName->text(); //settings->Address = ui->editPassword->text(); //settings->Address = ui->editHostName->text(); //settings->Port = ui->editPort->text(); saveSettings(); this->accept(); } bool DialogSettingsTray::saveSettings() { QFile file(settingsName); if(! file.open(QIODevice::WriteOnly)) return false; QXmlStreamWriter xmlWriter(&file); xmlWriter.setAutoFormatting(true); xmlWriter.writeStartDocument(); xmlWriter.writeStartElement("ServerSettingsContainer"); xmlWriter.writeStartElement("DataBaseSettings"); 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.writeEndElement(); xmlWriter.writeEndElement(); xmlWriter.writeEndDocument(); file.close(); return true; } void DialogSettingsTray::on_cmbLanguage_currentIndexChanged(int index) { ui->btnSave->setEnabled(true); } void DialogSettingsTray::on_DialogSettingsTray_accepted() { QString language; if(settings->Language == "ENG") language = QString("en_EN"); else language = QString("ru_RU"); emit signal_LanguageChanged(language); }