Fri, 29 Apr 2022 17:07:35 +0200
Tab 2 equipent, all editfields placed.
src/EditProduct.cpp | file | annotate | diff | comparison | revisions | |
src/EditProduct.h | file | annotate | diff | comparison | revisions | |
src/EditProductTab2.cpp | file | annotate | diff | comparison | revisions | |
src/global.cpp | file | annotate | diff | comparison | revisions | |
src/global.h | file | annotate | diff | comparison | revisions | |
ui/EditProduct.ui | file | annotate | diff | comparison | revisions |
--- a/src/EditProduct.cpp Thu Apr 28 22:49:13 2022 +0200 +++ b/src/EditProduct.cpp Fri Apr 29 17:07:35 2022 +0200 @@ -61,13 +61,11 @@ query.prepare("SELECT name FROM inventory_waters ORDER BY record"); query.exec(); - query.first(); ui->w1_nameEdit->addItem(""); ui->w2_nameEdit->addItem(""); - for (int i = 0; i < query.size(); i++) { + while (query.next()) { ui->w1_nameEdit->addItem(query.value(0).toString()); ui->w2_nameEdit->addItem(query.value(0).toString()); - query.next(); } query.prepare("SELECT name FROM profile_water ORDER BY name"); @@ -84,13 +82,11 @@ ui->mash_pickEdit->addItem(query.value(0).toString()); } - ui->beerstyleEdit->addItem(""); // First add a dummy + ui->beerstyleEdit->addItem(product->st_name); // First add a dummy, the current style query.prepare("SELECT style_guide,style_letter,name FROM profile_styles ORDER BY style_guide,style_letter,name"); query.exec(); - query.first(); - for (int i = 0; i < query.size(); i++) { + while (query.next()) { ui->beerstyleEdit->addItem(query.value(0).toString()+" "+query.value(1).toString()+" "+query.value(2).toString()); - query.next(); } if (id >= 0) { @@ -566,8 +562,8 @@ qDebug() << "mashs" << product->mashs.size(); } else { - /* Set some defaults */ - product->locked = false; + /* New product, set some defaults */ + product->locked = product->log_brew = product->log_fermentation = product->log_ispindel = product->log_co2pressure = false; product->st_name = ""; product->st_letter = ""; product->st_guide = ""; @@ -580,14 +576,56 @@ product->st_color_min = 3; product->st_color_max = 100; product->st_carb_min = 1.0; product->st_carb_max = 4.5; product->st_abv_min = 1; product->st_abv_max = 15; - product->name = ""; + product->eq_name = product->eq_notes = product->name = product->code = ""; + product->eq_tun_specific_heat = 0.11; + product->eq_tun_material = 0; + product->eq_tun_volume = product->eq_tun_height = 20; + product->eq_tun_weight = 2; + product->eq_top_up_water = 0; + product->eq_trub_chiller_loss = 0.5; + product->eq_evap_rate = 1.8; + product->eq_calc_boil_volume = true; + product->eq_top_up_kettle = 0; + product->eq_hop_utilization = 100; + product->eq_lauter_volume = product->eq_lauter_height = product->eq_kettle_volume = product->eq_kettle_height = product->eq_mash_volume = 20; + product->eq_lauter_deadspace = 0.5; + product->eq_mash_max = 6; + product->eq_efficiency = 75; + product->birth = QDate::currentDate(); + product->stage = product->inventory_reduced = PROD_STAGE_PLAN; product->notes = ""; product->efficiency = 75; - product->batch_size = 20; - product->boil_time = 60; - product->boil_size = product->batch_size + (round(product->batch_size * product->boil_time / 60.0) / 10.0); + product->eq_batch_size = product->batch_size = 20; + product->eq_boil_time = product->boil_time = 60; + product->eq_boil_size = product->boil_size = product->batch_size + (round(product->batch_size * product->boil_time / 60.0) / 10.0); product->type = 2; product->est_og = product->est_fg = product->est_color = product->est_ibu = product->est_abv = 0; + product->brew_date_start = product->brew_date_end = QDateTime(); + product->brew_mash_ph = product->brew_mash_sg = product->brew_mash_efficiency = 0; + product->brew_sparge_temperature = product->brew_sparge_volume = product->brew_sparge_est = product->brew_sparge_ph = 0; + product->brew_preboil_volume = product->brew_preboil_sg = product->brew_preboil_ph = product->brew_preboil_efficiency = 0; + product->brew_aboil_volume = product->brew_aboil_sg = product->brew_aboil_ph = product->brew_aboil_efficiency = 0; + product->brew_cooling_method = product->brew_cooling_time = 0; + product->brew_cooling_to = 20; + product->brew_whirlpool9 = product->brew_whirlpool7 = product->brew_whirlpool6 = product->brew_whirlpool2 = 0; + product->brew_fermenter_volume = product->brew_fermenter_extrawater = product->brew_fermenter_tcloss = 0; + product->brew_aeration_time = product->brew_aeration_speed = product->brew_aeration_type = 0; + product->brew_fermenter_sg = product->brew_fermenter_ibu = product->brew_fermenter_color = 0; + product->og = product->fg = 0; + product->primary_start_temp = product->primary_max_temp = product->primary_end_temp = product->primary_end_sg = 0; + product->primary_end_date = product->secondary_end_date = QDate(); + product->secondary_temp = product->secondary_end_sg = product->tertiary_temp = 0; + product->package_date = QDate(); + product->package_volume = product->package_infuse_amount = product->package_infuse_abv = product->package_abv = product->package_ph = 0; + product->package_infuse_notes = ""; + product->bottle_amount = product->bottle_carbonation = product->bottle_priming_amount = product->bottle_carbonation_temp = 0; + product->keg_amount = product->keg_carbonation = product->keg_priming_amount = product->keg_priming_water = 0; + product->keg_carbonation_temp = product->keg_pressure = 0; + product->bottle_priming_water = product->keg_priming_sugar = 0; + product->taste_rate = 0; + product->taste_date = QDate(); + product->taste_notes = product->taste_color = product->taste_transparency = product->taste_head = ""; + product->taste_aroma = product->taste_taste = product->taste_mouthfeel = product->taste_aftertaste = ""; product->sparge_temp = 80; product->sparge_ph = 5.4; product->sparge_volume = 8; @@ -636,6 +674,14 @@ product->wa_acid_name = 0; product->wa_acid_perc = 80; product->wa_base_name = 0; + product->starter_enable = false; + product->starter_type = product->prop1_type = product->prop2_type = product->prop3_type = product->prop4_type = 0; + product->starter_viability = 100; + product->starter_sg = 1.037; + product->yeast_prod_date = QDate(); + product->yeast_pitchrate = product->prop1_volume = product->prop2_volume = product->prop3_volume = product->prop4_volume = 0; + product->divide_type = product->divide_parts = product->divide_part = 0; + product->divide_size = product->divide_factor = 0; } // Tab generic. @@ -647,12 +693,21 @@ ui->st_catnrEdit->setText(QString("%1").arg(product->st_category_number)); ui->st_typeEdit->setText(style_types[product->st_type]); 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); ui->boil_sizeEdit->setValue(product->boil_size); ui->boil_timeEdit->setValue(product->boil_time); ui->efficiencyEdit->setValue(product->efficiency); + if (product->divide_type > 0) + ui->splitatEdit->setText(QString(tr("%1, part %2 of %3").arg(prod_split[product->divide_type]) + .arg(product->divide_part + 1) + .arg(product->divide_parts + 1))); + else + ui->splitatEdit->setText(prod_split[product->divide_type]); ui->est_ogEdit->setValue(product->est_og); ui->est_ogShow->setRange(product->st_og_min, product->st_og_max); ui->est_ogShow->setPrecision(3); @@ -687,6 +742,9 @@ ui->est_carbShow->setRange(product->st_carb_min, product->st_carb_max); ui->est_carbShow->setValue(product->est_carb); + // Tab equipment. + showEquipment(); + // Tab fermentables. ui->est_og2Edit->setValue(product->est_og); ui->est_color2Edit->setValue(product->est_color); @@ -808,6 +866,14 @@ ui->sp_acidpercEdit->setValue(product->sparge_acid_perc); ui->sp_acidvolEdit->setValue(product->sparge_acid_amount); + // Tab brewday. + + // Tab fermentation. + + // Tab packaging. + + // Tab taste. + // All signals from tab "Generic" connect(ui->lockedEdit, &QCheckBox::stateChanged, this, &EditProduct::is_changed); connect(ui->nameEdit, &QLineEdit::textChanged, this, &EditProduct::name_changed);
--- a/src/EditProduct.h Thu Apr 28 22:49:13 2022 +0200 +++ b/src/EditProduct.h Fri Apr 29 17:07:35 2022 +0200 @@ -158,6 +158,7 @@ static bool misc_sort_test(const Miscs &D1, const Miscs &D2); static bool yeast_sort_test(const Yeasts &D1, const Yeasts &D2); void WindowTitle(); + void showEquipment(); void setLocked(bool val); void brewing_salt_sub(QString salt, double val); void set_brewing_salt(QString salt, double val);
--- a/src/EditProductTab2.cpp Thu Apr 28 22:49:13 2022 +0200 +++ b/src/EditProductTab2.cpp Fri Apr 29 17:07:35 2022 +0200 @@ -18,3 +18,34 @@ */ +void EditProduct::showEquipment() +{ + ui->eq_nameEdit->setText(product->eq_name); + ui->eq_notesEdit->setPlainText(product->eq_notes); + + /* Mashing */ + ui->tun_volumeEdit->setValue(product->eq_tun_volume); + ui->tun_materialEdit->setText(tun_materials[product->eq_tun_material]); + ui->mash_volumeEdit->setValue(product->eq_mash_volume); + ui->mash_maxEdit->setValue(product->eq_mash_max); + + /* Lautering */ + ui->lauter_volumeEdit->setValue(product->eq_lauter_volume); + ui->lauter_deadspaceEdit->setValue(product->eq_lauter_deadspace); + + /* Boiling */ + ui->kettle_volumeEdit->setValue(product->eq_kettle_volume); + ui->eqboil_sizeEdit->setValue(product->eq_boil_size); + ui->evap_rateEdit->setValue(product->eq_evap_rate); + ui->eqboil_timeEdit->setValue(product->eq_boil_time); + 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); + + /* Chilling */ + ui->trub_chillerlossEdit->setValue(product->eq_trub_chiller_loss); + ui->topup_waterEdit->setValue(product->eq_top_up_water); +} + +
--- a/src/global.cpp Thu Apr 28 22:49:13 2022 +0200 +++ b/src/global.cpp Fri Apr 29 17:07:35 2022 +0200 @@ -171,3 +171,10 @@ QObject::tr("Decoction") }); +const QStringList tun_materials({ + QObject::tr("Stainless Steel"), + QObject::tr("Aluminium"), + QObject::tr("Plastics"), + QObject::tr("Copper") +}); +
--- a/src/global.h Thu Apr 28 22:49:13 2022 +0200 +++ b/src/global.h Fri Apr 29 17:07:35 2022 +0200 @@ -584,5 +584,6 @@ extern const QStringList yeast_use; extern const QStringList starters; extern const QStringList step_types; +extern const QStringList tun_materials; #endif
--- a/ui/EditProduct.ui Thu Apr 28 22:49:13 2022 +0200 +++ b/ui/EditProduct.ui Fri Apr 29 17:07:35 2022 +0200 @@ -120,7 +120,7 @@ <widget class="QLabel" name="nameLabel"> <property name="geometry"> <rect> - <x>0</x> + <x>370</x> <y>10</y> <width>131</width> <height>20</height> @@ -137,7 +137,7 @@ <property name="geometry"> <rect> <x>0</x> - <y>100</y> + <y>70</y> <width>131</width> <height>20</height> </rect> @@ -152,9 +152,9 @@ <widget class="QLineEdit" name="nameEdit"> <property name="geometry"> <rect> - <x>140</x> + <x>510</x> <y>10</y> - <width>591</width> + <width>551</width> <height>23</height> </rect> </property> @@ -163,17 +163,17 @@ <property name="geometry"> <rect> <x>140</x> - <y>100</y> - <width>881</width> - <height>51</height> + <y>70</y> + <width>921</width> + <height>71</height> </rect> </property> </widget> <widget class="QLabel" name="lockedLabel"> <property name="geometry"> <rect> - <x>740</x> - <y>10</y> + <x>870</x> + <y>180</y> <width>131</width> <height>20</height> </rect> @@ -188,8 +188,8 @@ <widget class="QCheckBox" name="lockedEdit"> <property name="geometry"> <rect> - <x>880</x> - <y>10</y> + <x>1010</x> + <y>180</y> <width>61</width> <height>21</height> </rect> @@ -201,8 +201,8 @@ <widget class="QLabel" name="typeLabel"> <property name="geometry"> <rect> - <x>0</x> - <y>160</y> + <x>740</x> + <y>40</y> <width>131</width> <height>20</height> </rect> @@ -217,8 +217,8 @@ <widget class="QComboBox" name="typeEdit"> <property name="geometry"> <rect> - <x>140</x> - <y>160</y> + <x>880</x> + <y>40</y> <width>181</width> <height>23</height> </rect> @@ -228,7 +228,7 @@ <property name="geometry"> <rect> <x>370</x> - <y>160</y> + <y>180</y> <width>131</width> <height>20</height> </rect> @@ -244,7 +244,7 @@ <property name="geometry"> <rect> <x>370</x> - <y>190</y> + <y>150</y> <width>131</width> <height>20</height> </rect> @@ -260,7 +260,7 @@ <property name="geometry"> <rect> <x>0</x> - <y>190</y> + <y>150</y> <width>131</width> <height>20</height> </rect> @@ -276,7 +276,7 @@ <property name="geometry"> <rect> <x>740</x> - <y>190</y> + <y>150</y> <width>131</width> <height>20</height> </rect> @@ -292,7 +292,7 @@ <property name="geometry"> <rect> <x>510</x> - <y>160</y> + <y>180</y> <width>101</width> <height>24</height> </rect> @@ -317,7 +317,7 @@ <property name="geometry"> <rect> <x>510</x> - <y>190</y> + <y>150</y> <width>101</width> <height>24</height> </rect> @@ -342,7 +342,7 @@ <property name="geometry"> <rect> <x>140</x> - <y>190</y> + <y>150</y> <width>101</width> <height>24</height> </rect> @@ -370,7 +370,7 @@ <property name="geometry"> <rect> <x>880</x> - <y>190</y> + <y>150</y> <width>87</width> <height>24</height> </rect> @@ -385,7 +385,7 @@ <enum>QAbstractSpinBox::NoButtons</enum> </property> <property name="accelerated"> - <bool>true</bool> + <bool>false</bool> </property> <property name="suffix"> <string> L</string> @@ -492,11 +492,14 @@ <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="accelerated"> - <bool>true</bool> + <bool>false</bool> </property> <property name="decimals"> <number>3</number> @@ -890,7 +893,7 @@ <widget class="QComboBox" name="beerstyleEdit"> <property name="geometry"> <rect> - <x>500</x> + <x>130</x> <y>20</y> <width>226</width> <height>23</height> @@ -909,17 +912,7 @@ <property name="dragEnabled"> <bool>true</bool> </property> - </widget> - <widget class="QLineEdit" name="st_nameEdit"> - <property name="geometry"> - <rect> - <x>500</x> - <y>50</y> - <width>226</width> - <height>23</height> - </rect> - </property> - <property name="dragEnabled"> + <property name="readOnly"> <bool>true</bool> </property> </widget> @@ -935,6 +928,9 @@ <property name="dragEnabled"> <bool>true</bool> </property> + <property name="readOnly"> + <bool>true</bool> + </property> </widget> <widget class="QLabel" name="st_guideLabel"> <property name="geometry"> @@ -968,28 +964,12 @@ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> </property> </widget> - <widget class="QLabel" name="st_nameLabel"> - <property name="geometry"> - <rect> - <x>360</x> - <y>50</y> - <width>131</width> - <height>20</height> - </rect> - </property> - <property name="text"> - <string>Style name:</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> <widget class="QLabel" name="beerstyleLabel"> <property name="geometry"> <rect> - <x>360</x> + <x>10</x> <y>20</y> - <width>131</width> + <width>111</width> <height>20</height> </rect> </property> @@ -1028,6 +1008,9 @@ <property name="dragEnabled"> <bool>true</bool> </property> + <property name="readOnly"> + <bool>true</bool> + </property> </widget> <widget class="QLabel" name="st_catLabel"> <property name="geometry"> @@ -1057,6 +1040,9 @@ <property name="dragEnabled"> <bool>true</bool> </property> + <property name="readOnly"> + <bool>true</bool> + </property> </widget> <widget class="QLabel" name="st_catnrLabel"> <property name="geometry"> @@ -1086,13 +1072,48 @@ <property name="dragEnabled"> <bool>true</bool> </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLineEdit" name="st_nameEdit"> + <property name="geometry"> + <rect> + <x>500</x> + <y>50</y> + <width>226</width> + <height>23</height> + </rect> + </property> + <property name="dragEnabled"> + <bool>true</bool> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="st_nameLabel"> + <property name="geometry"> + <rect> + <x>380</x> + <y>50</y> + <width>111</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Style name:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> </widget> </widget> <widget class="QLabel" name="codeLabel"> <property name="geometry"> <rect> <x>0</x> - <y>40</y> + <y>10</y> <width>131</width> <height>20</height> </rect> @@ -1108,7 +1129,7 @@ <property name="geometry"> <rect> <x>0</x> - <y>70</y> + <y>180</y> <width>131</width> <height>20</height> </rect> @@ -1124,46 +1145,23 @@ <property name="geometry"> <rect> <x>140</x> - <y>40</y> + <y>10</y> <width>181</width> <height>23</height> </rect> </property> </widget> - <widget class="QLabel" name="splitpartLabel"> - <property name="geometry"> - <rect> - <x>370</x> - <y>70</y> - <width>131</width> - <height>20</height> - </rect> - </property> - <property name="text"> - <string>Split part:</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> <widget class="QLineEdit" name="splitatEdit"> <property name="geometry"> <rect> <x>140</x> - <y>70</y> - <width>101</width> + <y>180</y> + <width>226</width> <height>23</height> </rect> </property> - </widget> - <widget class="QLineEdit" name="splitpartEdit"> - <property name="geometry"> - <rect> - <x>510</x> - <y>70</y> - <width>101</width> - <height>23</height> - </rect> + <property name="readOnly"> + <bool>true</bool> </property> </widget> <widget class="QLabel" name="birthLabel"> @@ -1176,7 +1174,7 @@ </rect> </property> <property name="text"> - <string>Plan start:</string> + <string>Brew plan start:</string> </property> <property name="alignment"> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> @@ -1191,18 +1189,21 @@ <height>23</height> </rect> </property> + <property name="readOnly"> + <bool>true</bool> + </property> </widget> <widget class="QLabel" name="stageLabel"> <property name="geometry"> <rect> - <x>740</x> + <x>0</x> <y>40</y> <width>131</width> <height>20</height> </rect> </property> <property name="text"> - <string>Plan start:</string> + <string>Brew fase:</string> </property> <property name="alignment"> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> @@ -1211,18 +1212,21 @@ <widget class="QLineEdit" name="stageEdit"> <property name="geometry"> <rect> - <x>880</x> + <x>140</x> <y>40</y> <width>101</width> <height>23</height> </rect> </property> + <property name="readOnly"> + <bool>true</bool> + </property> </widget> <widget class="QLabel" name="completeLabel"> <property name="geometry"> <rect> - <x>740</x> - <y>160</y> + <x>620</x> + <y>180</y> <width>131</width> <height>20</height> </rect> @@ -1243,6 +1247,918 @@ <attribute name="title"> <string>Equipment</string> </attribute> + <widget class="QComboBox" name="eq_selectEdit"> + <property name="geometry"> + <rect> + <x>150</x> + <y>20</y> + <width>181</width> + <height>23</height> + </rect> + </property> + </widget> + <widget class="QLabel" name="eq_selectLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>20</y> + <width>131</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Equipment select:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QLineEdit" name="eq_nameEdit"> + <property name="geometry"> + <rect> + <x>480</x> + <y>20</y> + <width>281</width> + <height>23</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel" name="eq_nameLabel"> + <property name="geometry"> + <rect> + <x>340</x> + <y>20</y> + <width>131</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Equipment name:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QLabel" name="eq_notesLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>50</y> + <width>131</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Remarks:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QPlainTextEdit" name="eq_notesEdit"> + <property name="geometry"> + <rect> + <x>150</x> + <y>50</y> + <width>901</width> + <height>91</height> + </rect> + </property> + </widget> + <widget class="QGroupBox" name="masheqBox"> + <property name="geometry"> + <rect> + <x>10</x> + <y>160</y> + <width>291</width> + <height>151</height> + </rect> + </property> + <property name="title"> + <string>Mashing</string> + </property> + <widget class="QLabel" name="mash_volumeLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>80</y> + <width>121</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Mash water:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="mash_volumeEdit"> + <property name="geometry"> + <rect> + <x>140</x> + <y>80</y> + <width>87</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="accelerated"> + <bool>false</bool> + </property> + <property name="suffix"> + <string> L</string> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + <property name="singleStep"> + <double>0.500000000000000</double> + </property> + </widget> + <widget class="QDoubleSpinBox" name="mash_maxEdit"> + <property name="geometry"> + <rect> + <x>140</x> + <y>110</y> + <width>87</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="accelerated"> + <bool>false</bool> + </property> + <property name="suffix"> + <string> Kg</string> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + <property name="singleStep"> + <double>0.500000000000000</double> + </property> + </widget> + <widget class="QLabel" name="mash_maxLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>110</y> + <width>121</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Max malts:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="tun_volumeEdit"> + <property name="geometry"> + <rect> + <x>140</x> + <y>20</y> + <width>87</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="accelerated"> + <bool>false</bool> + </property> + <property name="suffix"> + <string> L</string> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + <property name="singleStep"> + <double>0.500000000000000</double> + </property> + </widget> + <widget class="QLabel" name="tun_volumeLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>20</y> + <width>121</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Tun volume:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QLabel" name="tun_materialLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>50</y> + <width>121</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Tun material:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QLineEdit" name="tun_materialEdit"> + <property name="geometry"> + <rect> + <x>140</x> + <y>50</y> + <width>141</width> + <height>23</height> + </rect> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + </widget> + <widget class="QGroupBox" name="lauterBox"> + <property name="geometry"> + <rect> + <x>10</x> + <y>320</y> + <width>291</width> + <height>91</height> + </rect> + </property> + <property name="title"> + <string>Lautering</string> + </property> + <widget class="QDoubleSpinBox" name="lauter_deadspaceEdit"> + <property name="geometry"> + <rect> + <x>140</x> + <y>50</y> + <width>87</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="accelerated"> + <bool>false</bool> + </property> + <property name="suffix"> + <string> L</string> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + <property name="singleStep"> + <double>0.500000000000000</double> + </property> + </widget> + <widget class="QLabel" name="lauter_deadspaceLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>50</y> + <width>121</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Lauter deadspace:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QLabel" name="lauter_volumeLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>20</y> + <width>121</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Lauter volume:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="lauter_volumeEdit"> + <property name="geometry"> + <rect> + <x>140</x> + <y>20</y> + <width>87</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="accelerated"> + <bool>false</bool> + </property> + <property name="suffix"> + <string> L</string> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + <property name="singleStep"> + <double>0.500000000000000</double> + </property> + </widget> + </widget> + <widget class="QGroupBox" name="chilleqBox"> + <property name="geometry"> + <rect> + <x>820</x> + <y>160</y> + <width>291</width> + <height>91</height> + </rect> + </property> + <property name="title"> + <string>Chilling</string> + </property> + <widget class="QLabel" name="trub_chillerlossLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>20</y> + <width>121</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Trub chiller loss:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="trub_chillerlossEdit"> + <property name="geometry"> + <rect> + <x>140</x> + <y>20</y> + <width>87</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="accelerated"> + <bool>false</bool> + </property> + <property name="suffix"> + <string> L</string> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + <property name="singleStep"> + <double>0.500000000000000</double> + </property> + </widget> + <widget class="QLabel" name="topup_waterLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>50</y> + <width>121</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Top up water:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="topup_waterEdit"> + <property name="geometry"> + <rect> + <x>140</x> + <y>50</y> + <width>87</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="accelerated"> + <bool>false</bool> + </property> + <property name="suffix"> + <string> L</string> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + <property name="singleStep"> + <double>0.500000000000000</double> + </property> + </widget> + </widget> + <widget class="QGroupBox" name="boilBox"> + <property name="geometry"> + <rect> + <x>420</x> + <y>160</y> + <width>291</width> + <height>271</height> + </rect> + </property> + <property name="title"> + <string>Boiling</string> + </property> + <widget class="QLabel" name="kettle_volumeLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>20</y> + <width>121</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Kettle volume:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="kettle_volumeEdit"> + <property name="geometry"> + <rect> + <x>140</x> + <y>20</y> + <width>87</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="accelerated"> + <bool>false</bool> + </property> + <property name="suffix"> + <string> L</string> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + <property name="singleStep"> + <double>0.500000000000000</double> + </property> + </widget> + <widget class="QLabel" name="eqboil_sizeLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>50</y> + <width>121</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Boil size:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="eqboil_sizeEdit"> + <property name="geometry"> + <rect> + <x>140</x> + <y>50</y> + <width>87</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="accelerated"> + <bool>false</bool> + </property> + <property name="suffix"> + <string> L</string> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + <property name="singleStep"> + <double>0.500000000000000</double> + </property> + </widget> + <widget class="QLabel" name="evap_rateLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>80</y> + <width>121</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Evaporation / hour:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="evap_rateEdit"> + <property name="geometry"> + <rect> + <x>140</x> + <y>80</y> + <width>87</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="accelerated"> + <bool>false</bool> + </property> + <property name="suffix"> + <string> L</string> + </property> + <property name="decimals"> + <number>2</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + <property name="singleStep"> + <double>0.500000000000000</double> + </property> + </widget> + <widget class="QLabel" name="eqboil_timeLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>110</y> + <width>121</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Boil time:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="eqboil_timeEdit"> + <property name="geometry"> + <rect> + <x>140</x> + <y>110</y> + <width>87</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="accelerated"> + <bool>false</bool> + </property> + <property name="suffix"> + <string> min</string> + </property> + <property name="decimals"> + <number>0</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + <property name="singleStep"> + <double>0.500000000000000</double> + </property> + </widget> + <widget class="QLabel" name="topup_kettleLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>140</y> + <width>121</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Top up kettle:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="topup_kettleEdit"> + <property name="geometry"> + <rect> + <x>140</x> + <y>140</y> + <width>87</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="accelerated"> + <bool>false</bool> + </property> + <property name="suffix"> + <string> L</string> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + <property name="singleStep"> + <double>0.500000000000000</double> + </property> + </widget> + <widget class="QLabel" name="hop_utilizationLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>170</y> + <width>121</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Hop utilization:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="hop_utilizationEdit"> + <property name="geometry"> + <rect> + <x>140</x> + <y>170</y> + <width>87</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="accelerated"> + <bool>false</bool> + </property> + <property name="suffix"> + <string> %</string> + </property> + <property name="decimals"> + <number>0</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + <property name="singleStep"> + <double>0.500000000000000</double> + </property> + </widget> + <widget class="QLabel" name="eqbatch_sizeLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>200</y> + <width>121</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Batch size:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="eqbatch_sizeEdit"> + <property name="geometry"> + <rect> + <x>140</x> + <y>200</y> + <width>87</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="accelerated"> + <bool>false</bool> + </property> + <property name="suffix"> + <string> L</string> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + <property name="singleStep"> + <double>0.500000000000000</double> + </property> + </widget> + <widget class="QLabel" name="eq_efficiencyLabel"> + <property name="geometry"> + <rect> + <x>10</x> + <y>230</y> + <width>121</width> + <height>20</height> + </rect> + </property> + <property name="text"> + <string>Efficiency:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + <widget class="QDoubleSpinBox" name="eq_efficiencyEdit"> + <property name="geometry"> + <rect> + <x>140</x> + <y>230</y> + <width>87</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="accelerated"> + <bool>false</bool> + </property> + <property name="suffix"> + <string> %</string> + </property> + <property name="decimals"> + <number>1</number> + </property> + <property name="maximum"> + <double>100000.000000000000000</double> + </property> + <property name="singleStep"> + <double>0.500000000000000</double> + </property> + </widget> + </widget> </widget> <widget class="QWidget" name="fermentables"> <attribute name="icon">