Sun, 01 May 2022 16:27:00 +0200
Added brewday boil box. The setLocked function changed into setStage. Fixed bug that resetted the efficiency to the equipment default.
src/EditProduct.cpp | file | annotate | diff | comparison | revisions | |
src/EditProduct.h | file | annotate | diff | comparison | revisions | |
src/EditProductTab1.cpp | file | annotate | diff | comparison | revisions | |
src/EditProductTab2.cpp | file | annotate | diff | comparison | revisions | |
src/EditProductTab3.cpp | file | annotate | diff | comparison | revisions | |
ui/EditProduct.ui | file | annotate | diff | comparison | revisions |
--- 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<int>::of(&QComboBox::currentIndexChanged), this, &EditProduct::sp_type_changed); connect(ui->sp_phEdit, QOverload<double>::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);
--- 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();
--- 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); }
--- 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);
--- 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; /*
--- 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 @@ </property> </widget> </widget> + <widget class="QGroupBox" name="brew_boilBox"> + <property name="geometry"> + <rect> + <x>370</x> + <y>40</y> + <width>721</width> + <height>151</height> + </rect> + </property> + <property name="title"> + <string>Boiling</string> + </property> + <widget class="QLabel" name="brew_preboilphLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>20</y> + <width>131</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Pre boil pH:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QLabel" name="brew_preboilsgLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>50</y> + <width>131</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Pre boil SG:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QLabel" name="brew_preboilvolLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>80</y> + <width>131</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Pre boil vol@100°C:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QLabel" name="brew_preboileffLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>110</y> + <width>131</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Pre boil efficiency:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="brew_preboilphEdit"> + <property name="geometry"> + <rect> + <x>150</x> + <y>20</y> + <width>81</width> + <height>24</height> + </rect> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="accelerated"> + <bool>true</bool> + </property> + <property name="maximum"> + <double>14.000000000000000</double> + </property> + <property name="singleStep"> + <double>0.100000000000000</double> + </property> + </widget> + <widget class="QDoubleSpinBox" name="brew_preboilsgEdit"> + <property name="geometry"> + <rect> + <x>150</x> + <y>50</y> + <width>81</width> + <height>24</height> + </rect> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="accelerated"> + <bool>true</bool> + </property> + <property name="decimals"> + <number>3</number> + </property> + <property name="singleStep"> + <double>0.001000000000000</double> + </property> + </widget> + <widget class="QDoubleSpinBox" name="brew_preboilsgShow"> + <property name="geometry"> + <rect> + <x>240</x> + <y>50</y> + <width>71</width> + <height>24</height> + </rect> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + <property name="buttonSymbols"> + <enum>QAbstractSpinBox::NoButtons</enum> + </property> + <property name="decimals"> + <number>3</number> + </property> + </widget> + <widget class="QDoubleSpinBox" name="brew_preboileffShow"> + <property name="geometry"> + <rect> + <x>150</x> + <y>110</y> + <width>81</width> + <height>24</height> + </rect> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + <property name="buttonSymbols"> + <enum>QAbstractSpinBox::NoButtons</enum> + </property> + <property name="suffix"> + <string> %</string> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>200.000000000000000</double> + </property> + </widget> + <widget class="QDoubleSpinBox" name="brew_preboilvolEdit"> + <property name="geometry"> + <rect> + <x>150</x> + <y>80</y> + <width>81</width> + <height>24</height> + </rect> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="accelerated"> + <bool>true</bool> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + <property name="singleStep"> + <double>1.000000000000000</double> + </property> + </widget> + <widget class="QDoubleSpinBox" name="brew_preboilvolShow"> + <property name="geometry"> + <rect> + <x>240</x> + <y>80</y> + <width>71</width> + <height>24</height> + </rect> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + <property name="buttonSymbols"> + <enum>QAbstractSpinBox::NoButtons</enum> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + </widget> + <widget class="QToolButton" name="brew_preboilButton"> + <property name="geometry"> + <rect> + <x>320</x> + <y>80</y> + <width>28</width> + <height>22</height> + </rect> + </property> + <property name="text"> + <string>...</string> + </property> + <property name="icon"> + <iconset resource="../../../../../../home/mbroek/MyProjects/bmsapp/resources/icons.qrc"> + <normaloff>:/icons/silk/pencil.png</normaloff>:/icons/silk/pencil.png</iconset> + </property> + </widget> + <widget class="QDoubleSpinBox" name="brew_aboilsgEdit"> + <property name="geometry"> + <rect> + <x>500</x> + <y>50</y> + <width>81</width> + <height>24</height> + </rect> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="accelerated"> + <bool>true</bool> + </property> + <property name="decimals"> + <number>3</number> + </property> + <property name="singleStep"> + <double>0.001000000000000</double> + </property> + </widget> + <widget class="QToolButton" name="brew_aboilButton"> + <property name="geometry"> + <rect> + <x>670</x> + <y>80</y> + <width>28</width> + <height>22</height> + </rect> + </property> + <property name="text"> + <string>...</string> + </property> + <property name="icon"> + <iconset resource="../../../../../../home/mbroek/MyProjects/bmsapp/resources/icons.qrc"> + <normaloff>:/icons/silk/pencil.png</normaloff>:/icons/silk/pencil.png</iconset> + </property> + </widget> + <widget class="QLabel" name="brew_aboilsgLabel"> + <property name="geometry"> + <rect> + <x>360</x> + <y>50</y> + <width>131</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>After boil SG:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="brew_aboilvolEdit"> + <property name="geometry"> + <rect> + <x>500</x> + <y>80</y> + <width>81</width> + <height>24</height> + </rect> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="accelerated"> + <bool>true</bool> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + <property name="singleStep"> + <double>1.000000000000000</double> + </property> + </widget> + <widget class="QLabel" name="brew_aboilvolLabel"> + <property name="geometry"> + <rect> + <x>360</x> + <y>80</y> + <width>131</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>After boil vol@100°C:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="brew_aboilphEdit"> + <property name="geometry"> + <rect> + <x>500</x> + <y>20</y> + <width>81</width> + <height>24</height> + </rect> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="accelerated"> + <bool>true</bool> + </property> + <property name="maximum"> + <double>14.000000000000000</double> + </property> + <property name="singleStep"> + <double>0.100000000000000</double> + </property> + </widget> + <widget class="QDoubleSpinBox" name="brew_aboilsgShow"> + <property name="geometry"> + <rect> + <x>590</x> + <y>50</y> + <width>71</width> + <height>24</height> + </rect> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + <property name="buttonSymbols"> + <enum>QAbstractSpinBox::NoButtons</enum> + </property> + <property name="decimals"> + <number>3</number> + </property> + </widget> + <widget class="QLabel" name="brew_aboileffLabel"> + <property name="geometry"> + <rect> + <x>360</x> + <y>110</y> + <width>131</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>After boil efficiency:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="brew_aboileffShow"> + <property name="geometry"> + <rect> + <x>500</x> + <y>110</y> + <width>81</width> + <height>24</height> + </rect> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + <property name="buttonSymbols"> + <enum>QAbstractSpinBox::NoButtons</enum> + </property> + <property name="suffix"> + <string> %</string> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>200.000000000000000</double> + </property> + </widget> + <widget class="QDoubleSpinBox" name="brew_aboilvolShow"> + <property name="geometry"> + <rect> + <x>590</x> + <y>80</y> + <width>71</width> + <height>24</height> + </rect> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + <property name="buttonSymbols"> + <enum>QAbstractSpinBox::NoButtons</enum> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + </widget> + <widget class="QLabel" name="brew_aboilphLabel"> + <property name="geometry"> + <rect> + <x>360</x> + <y>20</y> + <width>131</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>After boil pH:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </widget> </widget> <widget class="QWidget" name="ferment"> <attribute name="icon">