# HG changeset patch # User Michiel Broek # Date 1682004224 -7200 # Node ID 9db6080a4783ed4117f00ecf664c008d664a436c # Parent 6aa29aaa3f4d94a53747aa047f8fb10098c2e470 Fixed recipe editor add yeast crash. diff -r 6aa29aaa3f4d -r 9db6080a4783 src/EditRecipeTab5.cpp --- a/src/EditRecipeTab5.cpp Sun Feb 12 15:05:28 2023 +0100 +++ b/src/EditRecipeTab5.cpp Thu Apr 20 17:23:44 2023 +0200 @@ -318,6 +318,7 @@ bool instock = yinstockEdit->isChecked(); QString w; QTableWidgetItem *item; + int oldform = recipe->yeasts.at(recipe->yeasts_row).form; if (val < 1) return; @@ -342,51 +343,61 @@ query.next(); } #ifdef DEBUG_YEAST - qDebug() << "found" << query.value(0).toString() << query.value(2).toString(); + qDebug() << "found" << query.value("name").toString() << query.value("product_id").toString(); #endif /* * Replace the yeast record contents */ - recipe->yeasts[recipe->yeasts_row].name = query.value(0).toString(); - recipe->yeasts[recipe->yeasts_row].laboratory = query.value(1).toString(); - recipe->yeasts[recipe->yeasts_row].product_id = query.value(2).toString(); - recipe->yeasts[recipe->yeasts_row].type = query.value(3).toInt(); - recipe->yeasts[recipe->yeasts_row].form = query.value(4).toInt(); - recipe->yeasts[recipe->yeasts_row].min_temperature = query.value(5).toDouble(); - recipe->yeasts[recipe->yeasts_row].max_temperature = query.value(6).toDouble(); - recipe->yeasts[recipe->yeasts_row].flocculation = query.value(7).toInt(); - recipe->yeasts[recipe->yeasts_row].attenuation = query.value(8).toDouble(); - recipe->yeasts[recipe->yeasts_row].cells = query.value(9).toDouble(); - recipe->yeasts[recipe->yeasts_row].tolerance = query.value(10).toDouble(); - recipe->yeasts[recipe->yeasts_row].sta1 = query.value(11).toInt() ? true:false; - recipe->yeasts[recipe->yeasts_row].bacteria = query.value(12).toInt() ? true:false; - recipe->yeasts[recipe->yeasts_row].harvest_top = query.value(13).toInt() ? true:false; - recipe->yeasts[recipe->yeasts_row].harvest_time = query.value(14).toInt(); - recipe->yeasts[recipe->yeasts_row].pitch_temperature = query.value(15).toDouble(); - recipe->yeasts[recipe->yeasts_row].pofpos = query.value(16).toInt() ? true:false; - recipe->yeasts[recipe->yeasts_row].zymocide = query.value(17).toInt(); - recipe->yeasts[recipe->yeasts_row].gr_hl_lo = query.value(18).toInt(); - recipe->yeasts[recipe->yeasts_row].sg_lo = query.value(19).toDouble(); - recipe->yeasts[recipe->yeasts_row].gr_hl_hi = query.value(20).toInt(); - recipe->yeasts[recipe->yeasts_row].sg_hi = query.value(21).toDouble(); - recipe->yeasts[recipe->yeasts_row].cost = query.value(22).toDouble(); + recipe->yeasts[recipe->yeasts_row].name = query.value("name").toString(); + recipe->yeasts[recipe->yeasts_row].laboratory = query.value("laboratory").toString(); + recipe->yeasts[recipe->yeasts_row].product_id = query.value("product_id").toString(); + recipe->yeasts[recipe->yeasts_row].type = query.value("type").toInt(); + recipe->yeasts[recipe->yeasts_row].form = query.value("form").toInt(); + recipe->yeasts[recipe->yeasts_row].min_temperature = query.value("min_temperature").toDouble(); + recipe->yeasts[recipe->yeasts_row].max_temperature = query.value("max_temperature").toDouble(); + recipe->yeasts[recipe->yeasts_row].flocculation = query.value("flocculation").toInt(); + recipe->yeasts[recipe->yeasts_row].attenuation = query.value("attenuation").toDouble(); + recipe->yeasts[recipe->yeasts_row].cells = query.value("cells").toDouble(); + recipe->yeasts[recipe->yeasts_row].tolerance = query.value("tolerance").toDouble(); + recipe->yeasts[recipe->yeasts_row].sta1 = query.value("sta1").toInt() ? true:false; + recipe->yeasts[recipe->yeasts_row].bacteria = query.value("bacteria").toInt() ? true:false; + recipe->yeasts[recipe->yeasts_row].harvest_top = query.value("harvest_top").toInt() ? true:false; + recipe->yeasts[recipe->yeasts_row].harvest_time = query.value("harvest_time").toInt(); + recipe->yeasts[recipe->yeasts_row].pitch_temperature = query.value("pitch_temperature").toDouble(); + recipe->yeasts[recipe->yeasts_row].pofpos = query.value("pofpos").toInt() ? true:false; + recipe->yeasts[recipe->yeasts_row].zymocide = query.value("zymocide").toInt(); + recipe->yeasts[recipe->yeasts_row].gr_hl_lo = query.value("gr_hl_lo").toInt(); + recipe->yeasts[recipe->yeasts_row].sg_lo = query.value("sg_lo").toDouble(); + recipe->yeasts[recipe->yeasts_row].gr_hl_hi = query.value("gr_hl_hi").toInt(); + recipe->yeasts[recipe->yeasts_row].sg_hi = query.value("sg_hi").toDouble(); + recipe->yeasts[recipe->yeasts_row].cost = query.value("cost").toDouble(); /* * Update the visible fields */ + const QSignalBlocker blocker1(yamountEdit); ynameEdit->setText(recipe->yeasts.at(recipe->yeasts_row).name); ylaboratoryEdit->setText(recipe->yeasts.at(recipe->yeasts_row).laboratory); yproduct_idEdit->setText(recipe->yeasts.at(recipe->yeasts_row).product_id); - if (recipe->yeasts.at(recipe->yeasts_row).form == 0) { + if (recipe->yeasts.at(recipe->yeasts_row).form == YEAST_FORMS_LIQUID) { + if (oldform != YEAST_FORMS_LIQUID) + recipe->yeasts[recipe->yeasts_row].amount = 1; + yamountEdit->setValue(recipe->yeasts[recipe->yeasts_row].amount); yamountEdit->setDecimals(0); yamountEdit->setSingleStep(1.0); yamountLabel->setText(tr("Total packs:")); - } else if (recipe->yeasts.at(recipe->yeasts_row).form == 1) { + } else if ((recipe->yeasts.at(recipe->yeasts_row).form == YEAST_FORMS_DRY) || (recipe->yeasts.at(recipe->yeasts_row).form == YEAST_FORMS_DRIED)) { + if (oldform == YEAST_FORMS_LIQUID) + recipe->yeasts[recipe->yeasts_row].amount = 0.01; + yamountEdit->setValue(recipe->yeasts[recipe->yeasts_row].amount * 1000.0); yamountEdit->setDecimals(1); yamountEdit->setSingleStep(0.5); yamountLabel->setText(tr("Amount in gr:")); } else { + if (oldform == YEAST_FORMS_LIQUID) + recipe->yeasts[recipe->yeasts_row].amount = 0.01; + yamountEdit->setValue(recipe->yeasts[recipe->yeasts_row].amount * 1000.0); yamountEdit->setDecimals(1); yamountEdit->setSingleStep(0.5); yamountLabel->setText(tr("Amount in ml:")); @@ -416,7 +427,7 @@ item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); ui->yeastsTable->setItem(recipe->yeasts_row, 8, item); - if (recipe->yeasts.at(product->yeasts_row).use != YEAST_USE_BOTTLE && recipe->yeasts.at(product->yeasts_row).sta1) { + if (recipe->yeasts.at(recipe->yeasts_row).use != YEAST_USE_BOTTLE && recipe->yeasts.at(recipe->yeasts_row).sta1) { QWidget *pWidget = new QWidget(); QLabel *label = new QLabel; label->setPixmap(QPixmap(":icons/silk/tick.png")); @@ -425,9 +436,9 @@ pLayout->setAlignment(Qt::AlignCenter); pLayout->setContentsMargins(0, 0, 0, 0); pWidget->setLayout(pLayout); - ui->yeastsTable->setCellWidget(product->yeasts_row, 9, pWidget); + ui->yeastsTable->setCellWidget(recipe->yeasts_row, 9, pWidget); } else { - ui->yeastsTable->removeCellWidget(product->yeasts_row, 9); + ui->yeastsTable->removeCellWidget(recipe->yeasts_row, 9); } is_changed(); diff -r 6aa29aaa3f4d -r 9db6080a4783 translations/bmsapp_en.ts --- a/translations/bmsapp_en.ts Sun Feb 12 15:05:28 2023 +0100 +++ b/translations/bmsapp_en.ts Thu Apr 20 17:23:44 2023 +0200 @@ -7024,7 +7024,7 @@ - + Use at: @@ -7038,7 +7038,7 @@ - + In stock: @@ -7066,7 +7066,7 @@ - + Bottle @@ -7179,8 +7179,8 @@ - - + + Amount in gr: @@ -7269,8 +7269,8 @@ - - + + Amount in ml: @@ -7281,13 +7281,13 @@ - + Primary - + Secondary @@ -7342,29 +7342,29 @@ - - + + Total packs: - + Yeast name: - - + + Laboratory: - + Select yeast: - + Tertiary diff -r 6aa29aaa3f4d -r 9db6080a4783 translations/bmsapp_nl.ts --- a/translations/bmsapp_nl.ts Sun Feb 12 15:05:28 2023 +0100 +++ b/translations/bmsapp_nl.ts Thu Apr 20 17:23:44 2023 +0200 @@ -7744,7 +7744,7 @@ - + Use at: Toevoegen bij: @@ -7758,7 +7758,7 @@ - + In stock: In voorraad: @@ -7786,7 +7786,7 @@ - + Bottle Bottelen @@ -7899,8 +7899,8 @@ - - + + Amount in gr: Gewicht in gr: @@ -7987,8 +7987,8 @@ - - + + Amount in ml: Hoeveelheid in ml: @@ -7999,13 +7999,13 @@ - + Primary Hoofdgisting - + Secondary Nagisting/lagering @@ -8066,29 +8066,29 @@ Verwijder gist - - + + Total packs: Aantal pakken: - + Yeast name: Gist naam: - - + + Laboratory: Laboratorium: - + Select yeast: Kies gist: - + Tertiary Lageren