diff -r f1ed3a2a94e9 -r 69a033e099a2 src/EditProduct.cpp --- 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);