src/EditRecipeTab7.cpp

changeset 152
58e4ce7dd217
parent 150
fd568cc1dd0e
child 161
b36d249512cc
equal deleted inserted replaced
151:b5b2483f3a3f 152:58e4ce7dd217
224 chloride += (2 * ui->bs_cacl2Edit->value() * MMCl / MMCaCl2 * 1000 + ui->bs_naclEdit->value() * MMCl / MMNaCl * 1000 + 224 chloride += (2 * ui->bs_cacl2Edit->value() * MMCl / MMCaCl2 * 1000 + ui->bs_naclEdit->value() * MMCl / MMNaCl * 1000 +
225 ui->bs_mgcl2Edit->value() * MMCl / MMMgCl2 * 1000) / liters; 225 ui->bs_mgcl2Edit->value() * MMCl / MMMgCl2 * 1000) / liters;
226 bicarbonate += (ui->bs_nahco3Edit->value() * MMHCO3 / MMNaHCO3 * 1000 + ui->bs_caco3Edit->value() / 3 * MMHCO3 / MMCaCO3 * 1000) / liters; 226 bicarbonate += (ui->bs_nahco3Edit->value() * MMHCO3 / MMNaHCO3 * 1000 + ui->bs_caco3Edit->value() / 3 * MMHCO3 / MMCaCO3 * 1000) / liters;
227 } 227 }
228 228
229 const QSignalBlocker blocker1(ui->mw_acidPick);
230 const QSignalBlocker blocker2(ui->mw_acidpercEdit);
231 const QSignalBlocker blocker3(ui->mw_acidvolEdit);
232 const QSignalBlocker blocker4(ui->wb_phEdit);
233 const QSignalBlocker blocker5(ui->mw_phEdit);
234
229 if (recipe->wa_acid_name < 0 || recipe->wa_acid_name >= my_acids.size()) { 235 if (recipe->wa_acid_name < 0 || recipe->wa_acid_name >= my_acids.size()) {
230 recipe->wa_acid_name = 0; 236 recipe->wa_acid_name = 0;
231 recipe->wa_acid_perc = my_acids.at(0).AcidPrc; 237 recipe->wa_acid_perc = my_acids.at(0).AcidPrc;
232 this->ignoreChanges = true;
233 ui->mw_acidPick->setCurrentIndex(0); 238 ui->mw_acidPick->setCurrentIndex(0);
234 ui->mw_acidpercEdit->setValue(my_acids.at(0).AcidPrc); 239 ui->mw_acidpercEdit->setValue(my_acids.at(0).AcidPrc);
235 this->ignoreChanges = false;
236 } 240 }
237 AT = recipe->wa_acid_name; 241 AT = recipe->wa_acid_name;
238 242
239 /* 243 /*
240 * Note that the next calculations do not correct the pH change by the added salts. 244 * Note that the next calculations do not correct the pH change by the added salts.
256 Acid = round((Acid / (recipe->wa_acid_perc / 100.0)) * 100.0) / 100.0; 260 Acid = round((Acid / (recipe->wa_acid_perc / 100.0)) * 100.0) / 100.0;
257 qDebug() << " Mash auto Acid final ml:" << Acid; 261 qDebug() << " Mash auto Acid final ml:" << Acid;
258 262
259 QString w = my_acids[AT].name_en + ' ' + my_acids[AT].name_nl; 263 QString w = my_acids[AT].name_en + ' ' + my_acids[AT].name_nl;
260 brewing_salt_sub(w, Acid); 264 brewing_salt_sub(w, Acid);
261 this->ignoreChanges = true;
262 ui->mw_acidvolEdit->setValue(Acid); 265 ui->mw_acidvolEdit->setValue(Acid);
263 this->ignoreChanges = false;
264 266
265 bicarbonate = bicarbonate - protonDeficit * frac / liters; 267 bicarbonate = bicarbonate - protonDeficit * frac / liters;
266 total_alkalinity = bicarbonate * 50 / 61; 268 total_alkalinity = bicarbonate * 50 / 61;
267 } 269 }
268 ph = TpH; 270 ph = TpH;
269 this->ignoreChanges = true;
270 ui->wb_phEdit->setValue(ph); 271 ui->wb_phEdit->setValue(ph);
271 this->ignoreChanges = false;
272 recipe->mash_ph = ph; 272 recipe->mash_ph = ph;
273 } else { // Manual 273 } else { // Manual
274 /* 274 /*
275 * Manual adjust acid, calculate resulting pH. 275 * Manual adjust acid, calculate resulting pH.
276 */ 276 */
304 //qDebug() << " n:" << n << "pd:" << pd << "protonDeficit:" << protonDeficit << "frac:" << frac << "pHa:" << pHa; 304 //qDebug() << " n:" << n << "pd:" << pd << "protonDeficit:" << protonDeficit << "frac:" << frac << "pHa:" << pHa;
305 305
306 bicarbonate = wg_bicarbonate - protonDeficit * frac / liters; 306 bicarbonate = wg_bicarbonate - protonDeficit * frac / liters;
307 total_alkalinity = bicarbonate * 50 / 61; 307 total_alkalinity = bicarbonate * 50 / 61;
308 ph = pHa; 308 ph = pHa;
309 this->ignoreChanges = true;
310 ui->wb_phEdit->setValue(ph); 309 ui->wb_phEdit->setValue(ph);
311 ui->mw_phEdit->setValue(ph); 310 ui->mw_phEdit->setValue(ph);
312 this->ignoreChanges = false;
313 recipe->mash_ph = ph; 311 recipe->mash_ph = ph;
314 } 312 }
315 313
316 if ((AT == 3) && (liters > 0)) { // Sulfuctic / Zwavelzuur 314 if ((AT == 3) && (liters > 0)) { // Sulfuctic / Zwavelzuur
317 RA = ui->bs_caso4Edit->value() * MMSO4 / MMCaSO4 + ui->bs_mgso4Edit->value() * MMSO4 / MMMgSO4 + Acidmg / 1000 * MMSO4 / (MMSO4 + 2); 315 RA = ui->bs_caso4Edit->value() * MMSO4 / MMCaSO4 + ui->bs_mgso4Edit->value() * MMSO4 / MMMgSO4 + Acidmg / 1000 * MMSO4 / (MMSO4 + 2);
505 void EditRecipe::w1_name_changed(int val) 503 void EditRecipe::w1_name_changed(int val)
506 { 504 {
507 QSqlQuery query; 505 QSqlQuery query;
508 506
509 qDebug() << "w1_name_changed" << val; 507 qDebug() << "w1_name_changed" << val;
508 const QSignalBlocker blocker1(ui->w1_nameEdit);
510 if (val == 0) { 509 if (val == 0) {
511 /* 510 /*
512 * If no water is selected, take the default water. 511 * If no water is selected, take the default water.
513 */ 512 */
514 this->ignoreChanges = true;
515 val = my_default_water; 513 val = my_default_water;
516 ui->w1_nameEdit->setCurrentIndex(val); 514 ui->w1_nameEdit->setCurrentIndex(val);
517 this->ignoreChanges = false;
518 } 515 }
519 516
520 query.prepare("SELECT * FROM inventory_waters ORDER BY record"); 517 query.prepare("SELECT * FROM inventory_waters ORDER BY record");
521 query.exec(); 518 query.exec();
522 query.first(); 519 query.first();
523 for (int i = 0; i < (val - 1); i++) { 520 for (int i = 0; i < (val - 1); i++) {
524 query.next(); 521 query.next();
525 } 522 }
526 qDebug() << "set water" << query.value(1).toString(); 523 qDebug() << "set water" << query.value(1).toString();
527 524
525 recipe->w1_name = query.value(1).toString();
528 recipe->w1_calcium = query.value(3).toDouble(); 526 recipe->w1_calcium = query.value(3).toDouble();
529 recipe->w1_magnesium = query.value(8).toDouble(); 527 recipe->w1_magnesium = query.value(8).toDouble();
530 recipe->w1_total_alkalinity = query.value(11).toDouble(); 528 recipe->w1_total_alkalinity = query.value(11).toDouble();
531 recipe->w1_sodium = query.value(7).toDouble(); 529 recipe->w1_sodium = query.value(7).toDouble();
532 recipe->w1_chloride = query.value(6).toDouble(); 530 recipe->w1_chloride = query.value(6).toDouble();
552 QSqlQuery query; 550 QSqlQuery query;
553 551
554 qDebug() << "w2_name_changed" << val; 552 qDebug() << "w2_name_changed" << val;
555 553
556 if (val == 0) { // Clear water 2. 554 if (val == 0) { // Clear water 2.
555 recipe->w2_name = "";
557 recipe->w2_calcium = 0; 556 recipe->w2_calcium = 0;
558 recipe->w2_magnesium = 0; 557 recipe->w2_magnesium = 0;
559 recipe->w2_total_alkalinity = 0; 558 recipe->w2_total_alkalinity = 0;
560 recipe->w2_sodium = 0; 559 recipe->w2_sodium = 0;
561 recipe->w2_chloride = 0; 560 recipe->w2_chloride = 0;
570 for (int i = 0; i < (val - 1); i++) { 569 for (int i = 0; i < (val - 1); i++) {
571 query.next(); 570 query.next();
572 } 571 }
573 qDebug() << "set water" << query.value(1).toString(); 572 qDebug() << "set water" << query.value(1).toString();
574 573
574 recipe->w2_name = query.value(1).toString();
575 recipe->w2_calcium = query.value(3).toDouble(); 575 recipe->w2_calcium = query.value(3).toDouble();
576 recipe->w2_magnesium = query.value(8).toDouble(); 576 recipe->w2_magnesium = query.value(8).toDouble();
577 recipe->w2_total_alkalinity = query.value(11).toDouble(); 577 recipe->w2_total_alkalinity = query.value(11).toDouble();
578 recipe->w2_sodium = query.value(7).toDouble(); 578 recipe->w2_sodium = query.value(7).toDouble();
579 recipe->w2_chloride = query.value(6).toDouble(); 579 recipe->w2_chloride = query.value(6).toDouble();
644 mash_infuse += amount; 644 mash_infuse += amount;
645 recipe->mashs[i].step_volume = mash_infuse; 645 recipe->mashs[i].step_volume = mash_infuse;
646 } 646 }
647 } 647 }
648 648
649 this->ignoreChanges = true; 649 const QSignalBlocker blocker1(ui->w1_volEdit);
650 const QSignalBlocker blocker2(ui->w2_volEdit);
651
650 if (recipe->w2_amount == 0) { 652 if (recipe->w2_amount == 0) {
651 recipe->w1_amount = mash_infuse; 653 recipe->w1_amount = mash_infuse;
652 ui->w1_volEdit->setValue(mash_infuse); 654 ui->w1_volEdit->setValue(mash_infuse);
653 } else { 655 } else {
654 double w1 = (recipe->w1_amount / (recipe->w1_amount + recipe->w2_amount)) * mash_infuse; 656 double w1 = (recipe->w1_amount / (recipe->w1_amount + recipe->w2_amount)) * mash_infuse;
658 ui->w1_volEdit->setValue(recipe->w1_amount); 660 ui->w1_volEdit->setValue(recipe->w1_amount);
659 ui->w2_volEdit->setValue(recipe->w2_amount); 661 ui->w2_volEdit->setValue(recipe->w2_amount);
660 } 662 }
661 recipe->wg_amount = mash_infuse; 663 recipe->wg_amount = mash_infuse;
662 ui->wg_volEdit->setValue(mash_infuse); 664 ui->wg_volEdit->setValue(mash_infuse);
663 this->ignoreChanges = false;
664 } 665 }
665 666
666 667
667 void EditRecipe::wb_cacl2_changed(double val) { set_brewing_salt("CaCl2", val); } 668 void EditRecipe::wb_cacl2_changed(double val) { set_brewing_salt("CaCl2", val); }
668 void EditRecipe::wb_caso4_changed(double val) { set_brewing_salt("CaSO4", val); } 669 void EditRecipe::wb_caso4_changed(double val) { set_brewing_salt("CaSO4", val); }

mercurial