# HG changeset patch # User Michiel Broek # Date 1651415220 -7200 # Node ID da148d6b4c95cdd9cfe9431cf15b8cfe2629c2fc # Parent bce87b8b604b0692726367c964a1260e6dc39089 Added brewday boil box. The setLocked function changed into setStage. Fixed bug that resetted the efficiency to the equipment default. diff -r bce87b8b604b -r da148d6b4c95 src/EditProduct.cpp --- a/src/EditProduct.cpp Sun May 01 11:38:53 2022 +0200 +++ b/src/EditProduct.cpp Sun May 01 16:27:00 2022 +0200 @@ -730,7 +730,6 @@ ui->nameEdit->setText(product->name); ui->codeEdit->setText(product->code); ui->birthEdit->setText(product->birth.toString("dd MMM yyyy")); - ui->stageEdit->setText(prod_stages[product->stage]); ui->notesEdit->setPlainText(product->notes); ui->typeEdit->setCurrentIndex(product->type); ui->batch_sizeEdit->setValue(product->batch_size); @@ -909,12 +908,23 @@ ui->brew_mashsgEdit->setValue(product->brew_mash_sg); ui->brew_mashsgShow->setValue(0); ui->brew_masheffShow->setValue(product->brew_mash_efficiency); - ui->brew_spargetempShow->setValue(product->sparge_temp); ui->brew_spargevolShow->setValue(product->sparge_volume); ui->brew_spargeestShow->setValue(product->brew_sparge_est); ui->brew_spargephEdit->setValue(product->brew_sparge_ph); + ui->brew_boilBox->setTitle(tr("Boiling %1 minutes").arg(product->boil_time)); + ui->brew_preboilphEdit->setValue(product->brew_preboil_ph); + ui->brew_preboilsgEdit->setValue(product->brew_preboil_sg); + ui->brew_preboilvolEdit->setValue(product->brew_preboil_volume); + ui->brew_preboilvolShow->setValue(product->boil_size * 1.04); + ui->brew_preboileffShow->setValue(product->brew_preboil_efficiency); + ui->brew_aboilphEdit->setValue(product->brew_aboil_ph); + ui->brew_aboilsgEdit->setValue(product->brew_aboil_sg); + ui->brew_aboilvolEdit->setValue(product->brew_aboil_volume); + ui->brew_aboilvolShow->setValue(product->batch_size * 1.04); + ui->brew_aboileffShow->setValue(product->brew_aboil_efficiency); + // Tab fermentation. // Tab packaging. @@ -984,7 +994,7 @@ connect(ui->sp_acidtypeEdit, QOverload::of(&QComboBox::currentIndexChanged), this, &EditProduct::sp_type_changed); connect(ui->sp_phEdit, QOverload::of(&QDoubleSpinBox::valueChanged), this, &EditProduct::sp_ph_changed); - setLocked(product->locked); + setStage(); ui->saveButton->setEnabled(false); ui->deleteButton->setEnabled((id >= 0 && ! product->locked) ? true:false); @@ -1257,15 +1267,15 @@ query.bindValue(":brew_whirlpool7", round(product->brew_whirlpool7)); query.bindValue(":brew_whirlpool6", round(product->brew_whirlpool6)); query.bindValue(":brew_whirlpool2", round(product->brew_whirlpool2)); - query.bindValue(":brew_fermenter_volume", round(product->brew_aboil_efficiency * 10) / 10); - query.bindValue(":brew_fermenter_extrawater", round(product->brew_aboil_efficiency * 10) / 10); - query.bindValue(":brew_fermenter_tcloss", round(product->brew_aboil_efficiency * 10) / 10); + query.bindValue(":brew_fermenter_volume", round(product->brew_fermenter_volume * 10) / 10); + query.bindValue(":brew_fermenter_extrawater", round(product->brew_fermenter_extrawater * 10) / 10); + query.bindValue(":brew_fermenter_tcloss", round(product->brew_fermenter_tcloss * 10) / 10); query.bindValue(":brew_aeration_time", round(product->brew_aeration_time)); - query.bindValue(":brew_aeration_speed", round(product->brew_aboil_efficiency * 10) / 10); + query.bindValue(":brew_aeration_speed", round(product->brew_aeration_speed * 10) / 10); query.bindValue(":brew_aeration_type", product->brew_aeration_type); - query.bindValue(":brew_fermenter_sg", round(product->brew_aboil_efficiency * 1000) / 1000); - query.bindValue(":brew_fermenter_ibu", round(product->brew_aboil_efficiency * 10) / 10); - query.bindValue(":brew_fermenter_color", round(product->brew_aboil_efficiency * 10) / 10); + query.bindValue(":brew_fermenter_sg", round(product->brew_fermenter_sg * 1000) / 1000); + query.bindValue(":brew_fermenter_ibu", round(product->brew_fermenter_ibu * 10) / 10); + query.bindValue(":brew_fermenter_color", round(product->brew_fermenter_color * 10) / 10); query.bindValue(":brew_date_end", product->brew_date_end); query.bindValue(":og", round(product->og * 1000) / 1000); query.bindValue(":fg", round(product->fg * 1000) / 1000); diff -r bce87b8b604b -r da148d6b4c95 src/EditProduct.h --- a/src/EditProduct.h Sun May 01 11:38:53 2022 +0200 +++ b/src/EditProduct.h Sun May 01 16:27:00 2022 +0200 @@ -159,7 +159,7 @@ static bool yeast_sort_test(const Yeasts &D1, const Yeasts &D2); void WindowTitle(); void showEquipment(); - void setLocked(bool val); + void setStage(); void brewing_salt_sub(QString salt, double val); void set_brewing_salt(QString salt, double val); void calcFermentables(); diff -r bce87b8b604b -r da148d6b4c95 src/EditProductTab1.cpp --- a/src/EditProductTab1.cpp Sun May 01 11:38:53 2022 +0200 +++ b/src/EditProductTab1.cpp Sun May 01 16:27:00 2022 +0200 @@ -132,7 +132,9 @@ double new_evap = (0.1 * product->batch_size) * val / 60.0; product->boil_size = product->batch_size + new_evap; product->boil_time = val; + ui->brew_boilBox->setTitle(tr("Boiling %1 minutes").arg(product->boil_time)); ui->boil_sizeEdit->setValue(product->boil_size); + ui->brew_preboilvolShow->setValue(product->boil_size * 1.04); calcFermentables(); calcIBUs(); is_changed(); @@ -147,8 +149,10 @@ product->boil_size = val + evap; double factor = val / product->batch_size; ui->boil_sizeEdit->setValue(product->boil_size); + ui->brew_preboilvolShow->setValue(product->boil_size * 1.04); product->sparge_volume *= factor; ui->sp_volEdit->setValue(product->sparge_volume); + ui->brew_spargevolShow->setValue(product->sparge_volume); product->batch_size = val; calcFermentablesFromOG(product->est_og); // Keep the OG adjustWaters(factor); @@ -176,81 +180,91 @@ { qDebug() << "locked_changed" << val; + if (product->stage < PROD_STAGE_READY) + return; + product->locked = val; - setLocked(val); + product->stage = val ? PROD_STAGE_CLOSED : PROD_STAGE_READY; + setStage(); is_changed(); } -void EditProduct::setLocked(bool val) +void EditProduct::setStage() { + int stage = product->stage; + bool locked = product->locked; + + ui->stageEdit->setText(prod_stages[stage]); + /* Tab 1, generic */ - ui->typeEdit->setDisabled(val); - ui->color_methodEdit->setDisabled(val); - ui->ibu_methodEdit->setDisabled(val); - ui->beerstyleEdit->setDisabled(val); - ui->nameEdit->setReadOnly(val); - ui->notesEdit->setReadOnly(val); - ui->batch_sizeEdit->setReadOnly(val); - ui->batch_sizeEdit->setButtonSymbols(val ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); - ui->boil_sizeEdit->setReadOnly(val); - ui->boil_sizeEdit->setButtonSymbols(val ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); - ui->boil_timeEdit->setReadOnly(val); - ui->boil_timeEdit->setButtonSymbols(val ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); - ui->efficiencyEdit->setReadOnly(val); - ui->efficiencyEdit->setButtonSymbols(val ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); - ui->est_ogEdit->setReadOnly(val); - ui->est_ogEdit->setButtonSymbols(val ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); + ui->typeEdit->setDisabled(stage > PROD_STAGE_WAIT); + ui->color_methodEdit->setDisabled(locked); + ui->ibu_methodEdit->setDisabled(locked); + ui->beerstyleEdit->setDisabled(stage > PROD_STAGE_WAIT); + ui->nameEdit->setReadOnly(stage > PROD_STAGE_WAIT); + ui->codeEdit->setReadOnly(stage > PROD_STAGE_WAIT); + ui->notesEdit->setReadOnly(locked); + ui->batch_sizeEdit->setReadOnly(stage > PROD_STAGE_WAIT); + ui->batch_sizeEdit->setButtonSymbols((stage > PROD_STAGE_WAIT) ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); + ui->boil_sizeEdit->setReadOnly(stage > PROD_STAGE_WAIT); + ui->boil_sizeEdit->setButtonSymbols((stage > PROD_STAGE_WAIT) ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); + ui->boil_timeEdit->setReadOnly(stage > PROD_STAGE_WAIT); + ui->boil_timeEdit->setButtonSymbols((stage > PROD_STAGE_WAIT) ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); + ui->efficiencyEdit->setReadOnly(stage > PROD_STAGE_WAIT); + ui->efficiencyEdit->setButtonSymbols((stage > PROD_STAGE_WAIT) ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); + ui->est_ogEdit->setReadOnly(stage > PROD_STAGE_WAIT); + ui->est_ogEdit->setButtonSymbols((stage > PROD_STAGE_WAIT) ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); /* Tab 2, fermentables */ - ui->est_og2Edit->setReadOnly(val); - ui->est_og2Edit->setButtonSymbols(val ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); - ui->addFermentable->setEnabled(! val); + ui->est_og2Edit->setReadOnly(stage > PROD_STAGE_WAIT); + ui->est_og2Edit->setButtonSymbols((stage > PROD_STAGE_WAIT) ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); + ui->addFermentable->setEnabled(stage <= PROD_STAGE_PACKAGE); /* Tab 3, hops */ - ui->addHop->setEnabled(! val); + ui->addHop->setEnabled(stage <= PROD_STAGE_PACKAGE); /* Tab 4, miscs */ - ui->addMisc->setEnabled(! val); + ui->addMisc->setEnabled(stage <= PROD_STAGE_PACKAGE); /* Tab 5, yeasts */ - ui->addYeast->setEnabled(! val); + ui->addYeast->setEnabled(stage <= PROD_STAGE_PACKAGE); /* Tab 6, mash */ - ui->addMash->setEnabled(! val); - ui->mash_nameEdit->setReadOnly(val); - ui->mash_pickEdit->setDisabled(val); + ui->addMash->setEnabled(stage <= PROD_STAGE_BREW); + ui->mash_nameEdit->setReadOnly(stage > PROD_STAGE_BREW); + ui->mash_pickEdit->setDisabled(stage > PROD_STAGE_BREW); /* Tab 7, water */ - ui->sp_sourceEdit->setDisabled(val); - ui->wt_sourceEdit->setDisabled(val); - ui->w1_nameEdit->setDisabled(val); - ui->w2_nameEdit->setDisabled(val); - ui->mw_acidPick->setDisabled(val); - ui->sp_acidtypeEdit->setDisabled(val); - ui->w2_volEdit->setReadOnly(val); - ui->w2_volEdit->setButtonSymbols(val ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); - ui->sp_phEdit->setReadOnly(val); - ui->sp_phEdit->setButtonSymbols(val ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); - ui->sp_tempEdit->setReadOnly(val); - ui->sp_tempEdit->setButtonSymbols(val ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); - ui->sp_volEdit->setReadOnly(val); - ui->sp_volEdit->setButtonSymbols(val ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); - ui->bs_cacl2Edit->setReadOnly(val); - ui->bs_cacl2Edit->setButtonSymbols(val ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); - ui->bs_caso4Edit->setReadOnly(val); - ui->bs_caso4Edit->setButtonSymbols(val ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); - ui->bs_mgso4Edit->setReadOnly(val); - ui->bs_mgso4Edit->setButtonSymbols(val ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); - ui->bs_naclEdit->setReadOnly(val); - ui->bs_naclEdit->setButtonSymbols(val ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); - ui->bs_mgcl2Edit->setReadOnly(val); - ui->bs_mgcl2Edit->setButtonSymbols(val ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); - ui->bs_nahco3Edit->setReadOnly(val); - ui->bs_nahco3Edit->setButtonSymbols(val ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); - ui->bs_caco3Edit->setReadOnly(val); - ui->bs_caco3Edit->setButtonSymbols(val ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); - if (val) { + ui->sp_sourceEdit->setDisabled(stage > PROD_STAGE_BREW); + ui->wt_sourceEdit->setDisabled(stage > PROD_STAGE_BREW); + ui->w1_nameEdit->setDisabled(stage > PROD_STAGE_BREW); + ui->w2_nameEdit->setDisabled(stage > PROD_STAGE_BREW); + ui->mw_acidPick->setDisabled(stage > PROD_STAGE_BREW); + ui->sp_acidtypeEdit->setDisabled(stage > PROD_STAGE_BREW); + ui->w2_volEdit->setReadOnly(stage > PROD_STAGE_BREW); + ui->w2_volEdit->setButtonSymbols((stage > PROD_STAGE_BREW) ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); + ui->sp_phEdit->setReadOnly(stage > PROD_STAGE_BREW); + ui->sp_phEdit->setButtonSymbols((stage > PROD_STAGE_BREW) ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); + ui->sp_tempEdit->setReadOnly(stage > PROD_STAGE_BREW); + ui->sp_tempEdit->setButtonSymbols((stage > PROD_STAGE_BREW) ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); + ui->sp_volEdit->setReadOnly(stage > PROD_STAGE_BREW); + ui->sp_volEdit->setButtonSymbols((stage > PROD_STAGE_BREW) ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); + ui->bs_cacl2Edit->setReadOnly(stage > PROD_STAGE_BREW); + ui->bs_cacl2Edit->setButtonSymbols((stage > PROD_STAGE_BREW) ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); + ui->bs_caso4Edit->setReadOnly(stage > PROD_STAGE_BREW); + ui->bs_caso4Edit->setButtonSymbols((stage > PROD_STAGE_BREW) ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); + ui->bs_mgso4Edit->setReadOnly(stage > PROD_STAGE_BREW); + ui->bs_mgso4Edit->setButtonSymbols((stage > PROD_STAGE_BREW) ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); + ui->bs_naclEdit->setReadOnly(stage > PROD_STAGE_BREW); + ui->bs_naclEdit->setButtonSymbols((stage > PROD_STAGE_BREW) ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); + ui->bs_mgcl2Edit->setReadOnly(stage > PROD_STAGE_BREW); + ui->bs_mgcl2Edit->setButtonSymbols((stage > PROD_STAGE_BREW) ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); + ui->bs_nahco3Edit->setReadOnly(stage > PROD_STAGE_BREW); + ui->bs_nahco3Edit->setButtonSymbols((stage > PROD_STAGE_BREW) ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); + ui->bs_caco3Edit->setReadOnly(stage > PROD_STAGE_BREW); + ui->bs_caco3Edit->setButtonSymbols((stage > PROD_STAGE_BREW) ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); + if (stage > PROD_STAGE_BREW) { ui->mw_phEdit->setReadOnly(true); ui->mw_phEdit->setButtonSymbols(QAbstractSpinBox::NoButtons); ui->mw_acidvolEdit->setReadOnly(true); @@ -261,7 +275,7 @@ ui->mw_acidvolEdit->setReadOnly(product->calc_acid); ui->mw_acidvolEdit->setButtonSymbols(product->calc_acid ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); } - ui->mw_autoEdit->setDisabled(val); + ui->mw_autoEdit->setDisabled(stage > PROD_STAGE_BREW); } diff -r bce87b8b604b -r da148d6b4c95 src/EditProductTab2.cpp --- a/src/EditProductTab2.cpp Sun May 01 11:38:53 2022 +0200 +++ b/src/EditProductTab2.cpp Sun May 01 16:27:00 2022 +0200 @@ -41,7 +41,7 @@ ui->topup_kettleEdit->setValue(product->eq_top_up_kettle); ui->hop_utilizationEdit->setValue(product->eq_hop_utilization); ui->eqbatch_sizeEdit->setValue(product->eq_batch_size); - ui->efficiencyEdit->setValue(product->eq_efficiency); + ui->eq_efficiencyEdit->setValue(product->eq_efficiency); /* Chilling */ ui->trub_chillerlossEdit->setValue(product->eq_trub_chiller_loss); diff -r bce87b8b604b -r da148d6b4c95 src/EditProductTab3.cpp --- a/src/EditProductTab3.cpp Sun May 01 11:38:53 2022 +0200 +++ b/src/EditProductTab3.cpp Sun May 01 16:27:00 2022 +0200 @@ -235,7 +235,7 @@ mvol += product->fermentables.at(i).f_amount * product->fermentables.at(i).f_moisture / 100; s += d; } - d = ui->efficiencyEdit->value() / 100 * d; + d = product->efficiency / 100 * d; sugarsm += d; product->mashs_kg += product->fermentables.at(i).f_amount; } @@ -275,7 +275,11 @@ ui->est_og4Edit->setValue(og); ui->est_ogShow->setValue(og); + product->est_og3 = Utils::estimate_sg(sugarsf, product->batch_size); + ui->brew_aboilsgShow->setValue(product->est_og3); + product->preboil_sg = Utils::estimate_sg(sugarsm, product->boil_size); + ui->brew_preboilsgShow->setValue(product->preboil_sg); qDebug() << " preboil SG" << product->preboil_sg; /* diff -r bce87b8b604b -r da148d6b4c95 ui/EditProduct.ui --- a/ui/EditProduct.ui Sun May 01 11:38:53 2022 +0200 +++ b/ui/EditProduct.ui Sun May 01 16:27:00 2022 +0200 @@ -6377,6 +6377,469 @@ + + + + 370 + 40 + 721 + 151 + + + + Boiling + + + + + 10 + 20 + 131 + 20 + + + + Pre boil pH: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 50 + 131 + 20 + + + + Pre boil SG: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 80 + 131 + 20 + + + + Pre boil vol@100°C: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 10 + 110 + 131 + 20 + + + + Pre boil efficiency: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 150 + 20 + 81 + 24 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + true + + + 14.000000000000000 + + + 0.100000000000000 + + + + + + 150 + 50 + 81 + 24 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + true + + + 3 + + + 0.001000000000000 + + + + + + 240 + 50 + 71 + 24 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + true + + + QAbstractSpinBox::NoButtons + + + 3 + + + + + + 150 + 110 + 81 + 24 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + true + + + QAbstractSpinBox::NoButtons + + + % + + + 1 + + + 200.000000000000000 + + + + + + 150 + 80 + 81 + 24 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + true + + + 1 + + + 100000.000000000000000 + + + 1.000000000000000 + + + + + + 240 + 80 + 71 + 24 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + true + + + QAbstractSpinBox::NoButtons + + + 1 + + + 100000.000000000000000 + + + + + + 320 + 80 + 28 + 22 + + + + ... + + + + :/icons/silk/pencil.png:/icons/silk/pencil.png + + + + + + 500 + 50 + 81 + 24 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + true + + + 3 + + + 0.001000000000000 + + + + + + 670 + 80 + 28 + 22 + + + + ... + + + + :/icons/silk/pencil.png:/icons/silk/pencil.png + + + + + + 360 + 50 + 131 + 20 + + + + After boil SG: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 500 + 80 + 81 + 24 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + true + + + 1 + + + 100000.000000000000000 + + + 1.000000000000000 + + + + + + 360 + 80 + 131 + 20 + + + + After boil vol@100°C: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 500 + 20 + 81 + 24 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + true + + + 14.000000000000000 + + + 0.100000000000000 + + + + + + 590 + 50 + 71 + 24 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + true + + + QAbstractSpinBox::NoButtons + + + 3 + + + + + + 360 + 110 + 131 + 20 + + + + After boil efficiency: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + 500 + 110 + 81 + 24 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + true + + + QAbstractSpinBox::NoButtons + + + % + + + 1 + + + 200.000000000000000 + + + + + + 590 + 80 + 71 + 24 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + true + + + QAbstractSpinBox::NoButtons + + + 1 + + + 100000.000000000000000 + + + + + + 360 + 20 + 131 + 20 + + + + After boil pH: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + +