93 item = new QTableWidgetItem(QString("")); |
93 item = new QTableWidgetItem(QString("")); |
94 } |
94 } |
95 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
95 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
96 ui->hopsTable->setItem(i, 6, item); |
96 ui->hopsTable->setItem(i, 6, item); |
97 |
97 |
98 double ibu = Utils::toIBU(recipe->hops.at(i).useat, recipe->hops.at(i).form, recipe->preboil_sg, recipe->batch_size, recipe->hops.at(i).amount, |
98 double ibu = Utils::toIBU(recipe->hops.at(i).useat, recipe->hops.at(i).form, recipe->preboil_sg, recipe->est_og, |
|
99 recipe->batch_size, recipe->hops.at(i).amount, |
99 recipe->hops.at(i).time, recipe->hops.at(i).alpha, recipe->ibu_method, 0, recipe->hops.at(i).time, |
100 recipe->hops.at(i).time, recipe->hops.at(i).alpha, recipe->ibu_method, 0, recipe->hops.at(i).time, |
100 0, recipe->boil_time, 0, 0, 0); |
101 0, recipe->boil_time, 0, 0, 0, recipe->hops.at(i).utilisation, recipe->hops.at(i).bu_factor); |
101 item = new QTableWidgetItem(QString("%1").arg(ibu, 2, 'f', 1, '0')); |
102 item = new QTableWidgetItem(QString("%1").arg(ibu, 2, 'f', 1, '0')); |
102 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
103 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
103 ui->hopsTable->setItem(i, 7, item); |
104 ui->hopsTable->setItem(i, 7, item); |
104 |
105 |
105 if (recipe->hops.at(i).amount < 1.0) { |
106 if (recipe->hops.at(i).amount < 1.0) { |
220 { |
221 { |
221 double hop_flavour = 0, hop_aroma = 0, ibus = 0; |
222 double hop_flavour = 0, hop_aroma = 0, ibus = 0; |
222 |
223 |
223 for (int i = 0; i < recipe->hops.size(); i++) { |
224 for (int i = 0; i < recipe->hops.size(); i++) { |
224 |
225 |
225 ibus += Utils::toIBU(recipe->hops.at(i).useat, recipe->hops.at(i).form, recipe->preboil_sg, recipe->batch_size, recipe->hops.at(i).amount, |
226 ibus += Utils::toIBU(recipe->hops.at(i).useat, recipe->hops.at(i).form, recipe->preboil_sg, recipe->est_og, recipe->batch_size, |
|
227 recipe->hops.at(i).amount, |
226 recipe->hops.at(i).time, recipe->hops.at(i).alpha, recipe->ibu_method, 0, recipe->hops.at(i).time, |
228 recipe->hops.at(i).time, recipe->hops.at(i).alpha, recipe->ibu_method, 0, recipe->hops.at(i).time, |
227 0, recipe->boil_time, 0, 0, 0); |
229 0, recipe->boil_time, 0, 0, 0, recipe->hops.at(i).utilisation, recipe->hops.at(i).bu_factor); |
228 hop_flavour += Utils::hopFlavourContribution(recipe->hops.at(i).time, recipe->batch_size, recipe->hops.at(i).useat, recipe->hops.at(i).amount); |
230 hop_flavour += Utils::hopFlavourContribution(recipe->hops.at(i).time, recipe->batch_size, recipe->hops.at(i).useat, |
229 hop_aroma += Utils::hopAromaContribution(recipe->hops.at(i).time, recipe->batch_size, recipe->hops.at(i).useat, recipe->hops.at(i).amount); |
231 recipe->hops.at(i).amount, recipe->hops.at(i).form); |
|
232 hop_aroma += Utils::hopAromaContribution(recipe->hops.at(i).time, recipe->batch_size, recipe->hops.at(i).useat, |
|
233 recipe->hops.at(i).amount, recipe->hops.at(i).form); |
230 } |
234 } |
231 |
235 |
232 hop_flavour = round(hop_flavour * 1000.0 / 5.0) / 10; |
236 hop_flavour = round(hop_flavour * 1000.0 / 5.0) / 10; |
233 hop_aroma = round(hop_aroma * 1000.0 / 6.0) / 10; |
237 hop_aroma = round(hop_aroma * 1000.0 / 6.0) / 10; |
234 if (hop_flavour > 100) |
238 if (hop_flavour > 100) |
306 recipe->hops[recipe->hops_row].amount = val / 1000.0; |
310 recipe->hops[recipe->hops_row].amount = val / 1000.0; |
307 item = new QTableWidgetItem(QString("%1 gr").arg(val, 2, 'f', 1, '0')); |
311 item = new QTableWidgetItem(QString("%1 gr").arg(val, 2, 'f', 1, '0')); |
308 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
312 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
309 ui->hopsTable->setItem(recipe->hops_row, 8, item); |
313 ui->hopsTable->setItem(recipe->hops_row, 8, item); |
310 |
314 |
311 double ibu = Utils::toIBU(recipe->hops.at(recipe->hops_row).useat, recipe->hops.at(recipe->hops_row).form, recipe->preboil_sg, |
315 double ibu = Utils::toIBU(recipe->hops.at(recipe->hops_row).useat, recipe->hops.at(recipe->hops_row).form, recipe->preboil_sg, recipe->est_og, |
312 recipe->batch_size, recipe->hops.at(recipe->hops_row).amount, recipe->hops.at(recipe->hops_row).time, |
316 recipe->batch_size, recipe->hops.at(recipe->hops_row).amount, recipe->hops.at(recipe->hops_row).time, |
313 recipe->hops.at(recipe->hops_row).alpha, recipe->ibu_method, 0, recipe->hops.at(recipe->hops_row).time, |
317 recipe->hops.at(recipe->hops_row).alpha, recipe->ibu_method, 0, recipe->hops.at(recipe->hops_row).time, |
314 0, recipe->boil_time, 0, 0, 0); |
318 0, recipe->boil_time, 0, 0, 0, recipe->hops.at(recipe->hops_row).utilisation, recipe->hops.at(recipe->hops_row).bu_factor); |
315 |
319 |
316 ibuEdit->setValue(ibu); |
320 ibuEdit->setValue(ibu); |
317 item = new QTableWidgetItem(QString("%1").arg(ibu, 2, 'f', 1, '0')); |
321 item = new QTableWidgetItem(QString("%1").arg(ibu, 2, 'f', 1, '0')); |
318 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
322 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
319 ui->hopsTable->setItem(recipe->hops_row, 7, item); |
323 ui->hopsTable->setItem(recipe->hops_row, 7, item); |
330 recipe->hops[recipe->hops_row].alpha = val; |
334 recipe->hops[recipe->hops_row].alpha = val; |
331 item = new QTableWidgetItem(QString("%1%").arg(val, 2, 'f', 1, '0')); |
335 item = new QTableWidgetItem(QString("%1%").arg(val, 2, 'f', 1, '0')); |
332 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
336 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
333 ui->hopsTable->setItem(recipe->hops_row, 4, item); |
337 ui->hopsTable->setItem(recipe->hops_row, 4, item); |
334 |
338 |
335 double ibu = Utils::toIBU(recipe->hops.at(recipe->hops_row).useat, recipe->hops.at(recipe->hops_row).form, recipe->preboil_sg, |
339 double ibu = Utils::toIBU(recipe->hops.at(recipe->hops_row).useat, recipe->hops.at(recipe->hops_row).form, recipe->preboil_sg, recipe->est_og, |
336 recipe->batch_size, recipe->hops.at(recipe->hops_row).amount, recipe->hops.at(recipe->hops_row).time, |
340 recipe->batch_size, recipe->hops.at(recipe->hops_row).amount, recipe->hops.at(recipe->hops_row).time, |
337 recipe->hops.at(recipe->hops_row).alpha, recipe->ibu_method, 0, recipe->hops.at(recipe->hops_row).time, |
341 recipe->hops.at(recipe->hops_row).alpha, recipe->ibu_method, 0, recipe->hops.at(recipe->hops_row).time, |
338 0, recipe->boil_time, 0, 0, 0); |
342 0, recipe->boil_time, 0, 0, 0, recipe->hops.at(recipe->hops_row).utilisation, recipe->hops.at(recipe->hops_row).bu_factor); |
339 |
343 |
340 ibuEdit->setValue(ibu); |
344 ibuEdit->setValue(ibu); |
341 item = new QTableWidgetItem(QString("%1").arg(ibu, 2, 'f', 1, '0')); |
345 item = new QTableWidgetItem(QString("%1").arg(ibu, 2, 'f', 1, '0')); |
342 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
346 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
343 ui->hopsTable->setItem(recipe->hops_row, 7, item); |
347 ui->hopsTable->setItem(recipe->hops_row, 7, item); |
362 recipe->hops[recipe->hops_row].time = val; |
366 recipe->hops[recipe->hops_row].time = val; |
363 } |
367 } |
364 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
368 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
365 ui->hopsTable->setItem(recipe->hops_row, 6, item); |
369 ui->hopsTable->setItem(recipe->hops_row, 6, item); |
366 |
370 |
367 double ibu = Utils::toIBU(recipe->hops.at(recipe->hops_row).useat, recipe->hops.at(recipe->hops_row).form, recipe->preboil_sg, |
371 double ibu = Utils::toIBU(recipe->hops.at(recipe->hops_row).useat, recipe->hops.at(recipe->hops_row).form, recipe->preboil_sg, recipe->est_og, |
368 recipe->batch_size, recipe->hops.at(recipe->hops_row).amount, recipe->hops.at(recipe->hops_row).time, |
372 recipe->batch_size, recipe->hops.at(recipe->hops_row).amount, recipe->hops.at(recipe->hops_row).time, |
369 recipe->hops.at(recipe->hops_row).alpha, recipe->ibu_method, 0, recipe->hops.at(recipe->hops_row).time, |
373 recipe->hops.at(recipe->hops_row).alpha, recipe->ibu_method, 0, recipe->hops.at(recipe->hops_row).time, |
370 0, recipe->boil_time, 0, 0, 0); |
374 0, recipe->boil_time, 0, 0, 0, recipe->hops.at(recipe->hops_row).utilisation, recipe->hops.at(recipe->hops_row).bu_factor); |
371 |
375 |
372 ibuEdit->setValue(ibu); |
376 ibuEdit->setValue(ibu); |
373 item = new QTableWidgetItem(QString("%1").arg(ibu, 2, 'f', 1, '0')); |
377 item = new QTableWidgetItem(QString("%1").arg(ibu, 2, 'f', 1, '0')); |
374 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
378 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
375 ui->hopsTable->setItem(recipe->hops_row, 7, item); |
379 ui->hopsTable->setItem(recipe->hops_row, 7, item); |
424 * Update the visible fields |
428 * Update the visible fields |
425 */ |
429 */ |
426 hnameEdit->setText(recipe->hops.at(recipe->hops_row).name); |
430 hnameEdit->setText(recipe->hops.at(recipe->hops_row).name); |
427 horiginEdit->setText(recipe->hops.at(recipe->hops_row).origin); |
431 horiginEdit->setText(recipe->hops.at(recipe->hops_row).origin); |
428 |
432 |
429 double ibu = Utils::toIBU(recipe->hops.at(recipe->hops_row).useat, recipe->hops.at(recipe->hops_row).form, recipe->preboil_sg, |
433 double ibu = Utils::toIBU(recipe->hops.at(recipe->hops_row).useat, recipe->hops.at(recipe->hops_row).form, recipe->preboil_sg, recipe->est_og, |
430 recipe->batch_size, recipe->hops.at(recipe->hops_row).amount, recipe->hops.at(recipe->hops_row).time, |
434 recipe->batch_size, recipe->hops.at(recipe->hops_row).amount, recipe->hops.at(recipe->hops_row).time, |
431 recipe->hops.at(recipe->hops_row).alpha, recipe->ibu_method, 0, recipe->hops.at(recipe->hops_row).time, |
435 recipe->hops.at(recipe->hops_row).alpha, recipe->ibu_method, 0, recipe->hops.at(recipe->hops_row).time, |
432 0, recipe->boil_time, 0, 0, 0); |
436 0, recipe->boil_time, 0, 0, 0, recipe->hops.at(recipe->hops_row).utilisation, recipe->hops.at(recipe->hops_row).bu_factor); |
433 ibuEdit->setValue(ibu); |
437 ibuEdit->setValue(ibu); |
434 |
438 |
435 ui->hopsTable->setItem(recipe->hops_row, 0, new QTableWidgetItem(recipe->hops.at(recipe->hops_row).origin)); |
439 ui->hopsTable->setItem(recipe->hops_row, 0, new QTableWidgetItem(recipe->hops.at(recipe->hops_row).origin)); |
436 ui->hopsTable->setItem(recipe->hops_row, 1, new QTableWidgetItem(recipe->hops.at(recipe->hops_row).name)); |
440 ui->hopsTable->setItem(recipe->hops_row, 1, new QTableWidgetItem(recipe->hops.at(recipe->hops_row).name)); |
437 |
441 |
511 recipe->hops[recipe->hops_row].form = val; |
515 recipe->hops[recipe->hops_row].form = val; |
512 QTableWidgetItem *item = new QTableWidgetItem(QCoreApplication::translate("HopForm", g_hop_forms[val])); |
516 QTableWidgetItem *item = new QTableWidgetItem(QCoreApplication::translate("HopForm", g_hop_forms[val])); |
513 item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); |
517 item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); |
514 ui->hopsTable->setItem(recipe->hops_row, 3, item); |
518 ui->hopsTable->setItem(recipe->hops_row, 3, item); |
515 |
519 |
516 double ibu = Utils::toIBU(recipe->hops.at(recipe->hops_row).useat, recipe->hops.at(recipe->hops_row).form, recipe->preboil_sg, |
520 double ibu = Utils::toIBU(recipe->hops.at(recipe->hops_row).useat, recipe->hops.at(recipe->hops_row).form, recipe->preboil_sg, recipe->est_og, |
517 recipe->batch_size, recipe->hops.at(recipe->hops_row).amount, recipe->hops.at(recipe->hops_row).time, |
521 recipe->batch_size, recipe->hops.at(recipe->hops_row).amount, recipe->hops.at(recipe->hops_row).time, |
518 recipe->hops.at(recipe->hops_row).alpha, recipe->ibu_method, 0, recipe->hops.at(recipe->hops_row).time, |
522 recipe->hops.at(recipe->hops_row).alpha, recipe->ibu_method, 0, recipe->hops.at(recipe->hops_row).time, |
519 0, recipe->boil_time, 0, 0, 0); |
523 0, recipe->boil_time, 0, 0, 0, recipe->hops.at(recipe->hops_row).utilisation, recipe->hops.at(recipe->hops_row).bu_factor); |
520 |
524 |
521 ibuEdit->setValue(ibu); |
525 ibuEdit->setValue(ibu); |
522 item = new QTableWidgetItem(QString("%1").arg(ibu, 2, 'f', 1, '0')); |
526 item = new QTableWidgetItem(QString("%1").arg(ibu, 2, 'f', 1, '0')); |
523 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
527 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
524 ui->hopsTable->setItem(recipe->hops_row, 7, item); |
528 ui->hopsTable->setItem(recipe->hops_row, 7, item); |
686 ibuEdit->setGeometry(QRect(550, 130, 121, 24)); |
690 ibuEdit->setGeometry(QRect(550, 130, 121, 24)); |
687 ibuEdit->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); |
691 ibuEdit->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); |
688 ibuEdit->setReadOnly(true); |
692 ibuEdit->setReadOnly(true); |
689 ibuEdit->setButtonSymbols(QAbstractSpinBox::NoButtons); |
693 ibuEdit->setButtonSymbols(QAbstractSpinBox::NoButtons); |
690 ibuEdit->setDecimals(1); |
694 ibuEdit->setDecimals(1); |
691 double ibu = Utils::toIBU(recipe->hops.at(recipe->hops_row).useat, recipe->hops.at(recipe->hops_row).form, recipe->preboil_sg, |
695 double ibu = Utils::toIBU(recipe->hops.at(recipe->hops_row).useat, recipe->hops.at(recipe->hops_row).form, recipe->preboil_sg, recipe->est_og, |
692 recipe->batch_size, recipe->hops.at(recipe->hops_row).amount, recipe->hops.at(recipe->hops_row).time, |
696 recipe->batch_size, recipe->hops.at(recipe->hops_row).amount, recipe->hops.at(recipe->hops_row).time, |
693 recipe->hops.at(recipe->hops_row).alpha, recipe->ibu_method, 0, recipe->hops.at(recipe->hops_row).time, |
697 recipe->hops.at(recipe->hops_row).alpha, recipe->ibu_method, 0, recipe->hops.at(recipe->hops_row).time, |
694 0, recipe->boil_time, 0, 0, 0); |
698 0, recipe->boil_time, 0, 0, 0, recipe->hops.at(recipe->hops_row).utilisation, recipe->hops.at(recipe->hops_row).bu_factor); |
695 ibuEdit->setValue(ibu); |
699 ibuEdit->setValue(ibu); |
696 |
700 |
697 hop_instock_changed(true); |
701 hop_instock_changed(true); |
698 |
702 |
699 connect(hselectEdit, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &EditRecipe::hop_select_changed); |
703 connect(hselectEdit, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &EditRecipe::hop_select_changed); |