Tue, 01 Mar 2022 13:19:25 +0100
Finisch miscs dutch translation.
/** * Setup.cpp is part of bmsapp. * * bmsapp is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * bmsapp is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include "Setup.h" #include "../ui/ui_Setup.h" #include "config.h" #include "bmsapp.h" Setup::Setup(QWidget *parent) : QDialog(parent), ui(new Ui::Setup) { QSqlQuery query; qDebug() << "Setup start"; ui->setupUi(this); setWindowTitle( QString("BMSapp - %1 - Setup").arg(VERSIONSTRING) ); query.prepare("SELECT * FROM profile_setup WHERE record='1'"); query.exec(); query.next(); ui->breweryEdit->setText(query.value(1).toString()); // max 128 connect(ui->breweryEdit, &QLineEdit::textChanged, this, &Setup::is_changed); ui->fwhEdit->setValue(query.value(4).toInt()); ui->mashhopEdit->setValue(query.value(3).toInt()); ui->pelletEdit->setValue(query.value(5).toInt()); ui->hopplugEdit->setValue(query.value(6).toInt()); ui->wethopEdit->setValue(query.value(7).toInt()); ui->cryohopEdit->setValue(query.value(8).toInt()); connect(ui->fwhEdit, &QSpinBox::textChanged, this, &Setup::is_changed); connect(ui->mashhopEdit, &QSpinBox::textChanged, this, &Setup::is_changed); connect(ui->pelletEdit, &QSpinBox::textChanged, this, &Setup::is_changed); connect(ui->hopplugEdit, &QSpinBox::textChanged, this, &Setup::is_changed); connect(ui->wethopEdit, &QSpinBox::textChanged, this, &Setup::is_changed); connect(ui->cryohopEdit, &QSpinBox::textChanged, this, &Setup::is_changed); ui->grainEdit->setValue(query.value(12).toDouble()); ui->brixEdit->setValue(query.value(11).toDouble()); connect(ui->grainEdit, &QDoubleSpinBox::textChanged, this, &Setup::is_changed); connect(ui->brixEdit, &QDoubleSpinBox::textChanged, this, &Setup::is_changed); ui->colorEdit->addItem("Morey"); ui->colorEdit->addItem("Mosher"); ui->colorEdit->addItem("Daniels"); ui->colorEdit->addItem("Halberstadt"); ui->colorEdit->addItem("Naudts"); ui->colorEdit->setEditable(true); ui->colorEdit->setCurrentIndex(query.value(10).toInt()); connect(ui->colorEdit, &QComboBox::currentTextChanged, this, &Setup::is_changed); ui->ibuEdit->addItem("Tinseth"); ui->ibuEdit->addItem("Rager"); ui->ibuEdit->addItem("Daniels"); ui->ibuEdit->setEditable(true); ui->ibuEdit->setCurrentIndex(query.value(9).toInt()); connect(ui->ibuEdit, &QComboBox::currentTextChanged, this, &Setup::is_changed); QSqlQuery query2("SELECT record,name FROM inventory_waters"); query2.first(); int pos = -1; ui->waterEdit->setEditable(true); ui->waterEdit->setPlaceholderText(tr("Choose default water")); for (int i = 0 ; i < query2.size() ; i++ ) { ui->waterEdit->addItem(query2.value(1).toString()); if (query2.value(0).toInt() == query.value(13).toInt()) { pos = i; } query2.next(); } if (pos >= 0) ui->waterEdit->setCurrentIndex(pos); connect(ui->waterEdit, &QComboBox::currentTextChanged, this, &Setup::is_changed); QSqlQuery query3("SELECT DISTINCT laboratory FROM inventory_yeasts ORDER BY laboratory"); query3.first(); pos = -1; ui->yeastEdit->setEditable(true); ui->yeastEdit->setPlaceholderText(tr("Choose laboratory")); for (int i = 0 ; i < query3.size() ; i++ ) { ui->yeastEdit->addItem(query3.value(0).toString()); if (QString::compare(query.value(14).toString(), query3.value(0).toString(), Qt::CaseSensitive) == 0) pos = i; query3.next(); } if (pos >= 0) ui->yeastEdit->setCurrentIndex(pos); connect(ui->yeastEdit, &QComboBox::currentTextChanged, this, &Setup::is_changed); // query.value(2).toString() logo varchar(1024) } Setup::~Setup() { qDebug() << "Setup done"; delete ui; } /* * Also called from the Quit button if there are changes to save. */ void Setup::on_saveButton_clicked() { QSqlQuery query; /* * Search record number of the current water. */ query.prepare("SELECT record FROM inventory_waters WHERE name=:name"); query.bindValue(":name", ui->waterEdit->currentText()); query.exec(); query.first(); int record = query.value(0).toInt(); /* * Update all other data */ query.prepare("UPDATE profile_setup SET brewery_name=:brewery, factor_mashhop=:mashhop, factor_fwh=:fwh, factor_pellet=:pellet, " "factor_plug=:plug, factor_wethop=:wet, factor_cryohop=:cryo, color_method=:color, ibu_method=:ibu, " "brix_correction=:brix, grain_absorbtion=:grain, default_water=:water, my_yeastlab=:yeast WHERE record='1'"); query.bindValue(":brewery", ui->breweryEdit->text()); query.bindValue(":mashhop", ui->mashhopEdit->value()); query.bindValue(":fwh", ui->fwhEdit->value()); query.bindValue(":pellet", ui->pelletEdit->value()); query.bindValue(":plug", ui->hopplugEdit->value()); query.bindValue(":wet", ui->wethopEdit->value()); query.bindValue(":cryo", ui->cryohopEdit->value()); query.bindValue(":color", ui->colorEdit->currentIndex()); query.bindValue(":ibu", ui->ibuEdit->currentIndex()); query.bindValue(":brix", ui->brixEdit->value()); query.bindValue(":grain", ui->grainEdit->value()); query.bindValue(":water", record); query.bindValue(":yeast", ui->yeastEdit->currentText()); query.exec(); if (query.lastError().isValid()) { qDebug() << "Setup Save error:" << query.lastError(); QMessageBox::warning(this, tr("Database error"), tr("MySQL error: %1\n%2\n%3") .arg(query.lastError().nativeErrorCode()) .arg(query.lastError().driverText()) .arg(query.lastError().databaseText())); } else { qDebug() << "Setup Saved"; } this->fieldIsChanged = false; setWindowTitle( QString("BMSapp - %1 - Setup").arg(VERSIONSTRING) ); } void Setup::on_quitButton_clicked() { if (this->fieldIsChanged) { int rc = QMessageBox::warning(this, tr("Setup changed"), tr("The setup has been modified\n Save changes?"), QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel, QMessageBox::Save); switch (rc) { case QMessageBox::Save: on_saveButton_clicked(); break; /* Saved and then Quit */ case QMessageBox::Discard: break; /* Quit without Save */ case QMessageBox::Cancel: return; /* Return to the setup page */ } } emit firstWindow(); } void Setup::is_changed() { this->fieldIsChanged = true; setWindowTitle( QString("BMSapp - %1 - Setup **").arg(VERSIONSTRING) ); }