# HG changeset patch # User Michiel Broek # Date 1650113090 -7200 # Node ID ffe8b2e9517b5348fd577c606ec7ec19f50478b8 # Parent 17030224d919cad8b93f3e24683652f44fa07fa4 Added indicators for BUGU and SO4:Cl ratio. Force rounded values for changing brewing salts. diff -r 17030224d919 -r ffe8b2e9517b src/EditRecipe.h --- a/src/EditRecipe.h Sat Apr 16 13:05:47 2022 +0200 +++ b/src/EditRecipe.h Sat Apr 16 14:44:50 2022 +0200 @@ -365,6 +365,8 @@ double ProtonDeficit(double pHZ); double MashpH(); void calcWater(); + double GetBUGU(); + double GetOptSO4Clratio(); }; #endif diff -r 17030224d919 -r ffe8b2e9517b src/EditRecipeTab4.cpp --- a/src/EditRecipeTab4.cpp Sat Apr 16 13:05:47 2022 +0200 +++ b/src/EditRecipeTab4.cpp Sat Apr 16 14:44:50 2022 +0200 @@ -178,6 +178,7 @@ { QTableWidgetItem *item; + val = round(val * 100.0) / 100.0; if (val == 0) { /* * Remove this salt if it is in the table. @@ -247,6 +248,7 @@ if (this->ignoreChanges) return; + val = round(val * 100.0) / 100.0; qDebug() << "set_brewing_salt" << salt << val; brewing_salt_sub(salt, val); calcWater(); diff -r 17030224d919 -r ffe8b2e9517b src/EditRecipeTab7.cpp --- a/src/EditRecipeTab7.cpp Sat Apr 16 13:05:47 2022 +0200 +++ b/src/EditRecipeTab7.cpp Sat Apr 16 14:44:50 2022 +0200 @@ -319,6 +319,45 @@ chloride = wg_chloride + RA; } + double BUGU = GetBUGU(); + ui->buguEdit->setValue(BUGU); + if (BUGU < 0.32) + ui->buguResult->setText(tr("Very malty and sweet")); + else if (BUGU < 0.43) + ui->buguResult->setText(tr("Malty, sweet")); + else if (BUGU < 0.52) + ui->buguResult->setText(tr("Balanced")); + else if (BUGU < 0.63) + ui->buguResult->setText(tr("Hoppy, bitter")); + else + ui->buguResult->setText(tr("Very hoppy, very bitter")); + + double OptSO4Clratio = GetOptSO4Clratio(); + ui->so4clEdit->setValue(OptSO4Clratio); + ui->cur_so4clResult->setRange(0.7 * OptSO4Clratio, 1.3 * OptSO4Clratio); + if (OptSO4Clratio < 0.4) + ui->so4clResult->setText(tr("Too malty")); + else if (OptSO4Clratio < 0.6) + ui->so4clResult->setText(tr("Very malty")); + else if (OptSO4Clratio < 0.8) + ui->so4clResult->setText(tr("Malty")); + else if (OptSO4Clratio < 1.5) + ui->so4clResult->setText(tr("Balanced")); + else if (OptSO4Clratio < 2.0) + ui->so4clResult->setText(tr("Little bitter")); + else if (OptSO4Clratio < 4.0) + ui->so4clResult->setText(tr("Bitter")); + else if (OptSO4Clratio < 9.0) + ui->so4clResult->setText(tr("Very bitter")); + else + ui->so4clResult->setText(tr("Too bitter")); + if (chloride > 0) + RA = sulfate / chloride; + else + RA = 10; + ui->cur_so4clEdit->setValue(RA); + ui->cur_so4clResult->setValue(RA); + ui->wb_caEdit->setValue(calcium); ui->wb_mgEdit->setValue(magnesium); ui->wb_hco3Edit->setValue(bicarbonate); @@ -351,6 +390,26 @@ } +double EditRecipe::GetBUGU() +{ + double gu = (recipe->est_og - 1) * 1000; + if (gu > 0) + return recipe->est_ibu / gu; + return 0.5; +} + + +double EditRecipe::GetOptSO4Clratio() +{ + if (ui->wt_so4Edit->value() > 0 && ui->wt_clEdit->value()) { + /* If target water is selected .. */ + return (ui->wt_so4Edit->value() / ui->wt_clEdit->value()); + } + double BUGU = GetBUGU(); + return (-1.2 * BUGU + 1.4); +} + + void EditRecipe::on_calc_acid_clicked() { recipe->calc_acid = ! recipe->calc_acid; diff -r 17030224d919 -r ffe8b2e9517b ui/EditRecipe.ui --- a/ui/EditRecipe.ui Sat Apr 16 13:05:47 2022 +0200 +++ b/ui/EditRecipe.ui Sat Apr 16 14:44:50 2022 +0200 @@ -4064,6 +4064,199 @@ + + + + 310 + 340 + 161 + 20 + + + + Bitterness index: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 480 + 340 + 71 + 24 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + true + + + QAbstractSpinBox::NoButtons + + + false + + + 2 + + + 1000.000000000000000 + + + 0.100000000000000 + + + + + + 560 + 340 + 211 + 20 + + + + + true + + + + N/A + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 310 + 370 + 161 + 20 + + + + Preffered SO4:Cl ratio: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 480 + 370 + 71 + 24 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + true + + + QAbstractSpinBox::NoButtons + + + false + + + 1 + + + 1000.000000000000000 + + + 0.100000000000000 + + + + + + 560 + 370 + 211 + 20 + + + + + true + + + + N/A + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 310 + 400 + 161 + 20 + + + + Current SO4:Cl ratio: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 480 + 400 + 71 + 24 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + true + + + QAbstractSpinBox::NoButtons + + + false + + + 1 + + + 1000.000000000000000 + + + 0.100000000000000 + + + + + + 559 + 400 + 211 + 20 + + +