Fixed recipe editor add yeast crash.

Thu, 20 Apr 2023 17:23:44 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Thu, 20 Apr 2023 17:23:44 +0200
changeset 496
9db6080a4783
parent 495
6aa29aaa3f4d
child 497
cbd7644d99ca

Fixed recipe editor add yeast crash.

src/EditRecipeTab5.cpp file | annotate | diff | comparison | revisions
translations/bmsapp_en.ts file | annotate | diff | comparison | revisions
translations/bmsapp_nl.ts file | annotate | diff | comparison | revisions
--- 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();
--- 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 @@
     <message>
         <location filename="../src/EditRecipeTab2.cpp" line="861"/>
         <location filename="../src/EditRecipeTab3.cpp" line="592"/>
-        <location filename="../src/EditRecipeTab5.cpp" line="538"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="549"/>
         <source>Use at:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -7038,7 +7038,7 @@
         <location filename="../src/EditRecipeTab2.cpp" line="871"/>
         <location filename="../src/EditRecipeTab3.cpp" line="607"/>
         <location filename="../src/EditRecipeTab4.cpp" line="608"/>
-        <location filename="../src/EditRecipeTab5.cpp" line="523"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="534"/>
         <source>In stock:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -7066,7 +7066,7 @@
     </message>
     <message>
         <location filename="../src/EditRecipeTab2.cpp" line="930"/>
-        <location filename="../src/EditRecipeTab5.cpp" line="589"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="600"/>
         <source>Bottle</source>
         <translation type="unfinished"></translation>
     </message>
@@ -7179,8 +7179,8 @@
         <location filename="../src/EditRecipeTab3.cpp" line="571"/>
         <location filename="../src/EditRecipeTab4.cpp" line="468"/>
         <location filename="../src/EditRecipeTab4.cpp" line="584"/>
-        <location filename="../src/EditRecipeTab5.cpp" line="388"/>
-        <location filename="../src/EditRecipeTab5.cpp" line="531"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="396"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="542"/>
         <source>Amount in gr:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -7269,8 +7269,8 @@
     <message>
         <location filename="../src/EditRecipeTab4.cpp" line="471"/>
         <location filename="../src/EditRecipeTab4.cpp" line="586"/>
-        <location filename="../src/EditRecipeTab5.cpp" line="392"/>
-        <location filename="../src/EditRecipeTab5.cpp" line="533"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="403"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="544"/>
         <source>Amount in ml:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -7281,13 +7281,13 @@
     </message>
     <message>
         <location filename="../src/EditRecipeTab4.cpp" line="654"/>
-        <location filename="../src/EditRecipeTab5.cpp" line="586"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="597"/>
         <source>Primary</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="../src/EditRecipeTab4.cpp" line="655"/>
-        <location filename="../src/EditRecipeTab5.cpp" line="587"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="598"/>
         <source>Secondary</source>
         <translation type="unfinished"></translation>
     </message>
@@ -7342,29 +7342,29 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeTab5.cpp" line="384"/>
-        <location filename="../src/EditRecipeTab5.cpp" line="529"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="389"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="540"/>
         <source>Total packs:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeTab5.cpp" line="503"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="514"/>
         <source>Yeast name:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeTab5.cpp" line="508"/>
-        <location filename="../src/EditRecipeTab5.cpp" line="513"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="519"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="524"/>
         <source>Laboratory:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeTab5.cpp" line="518"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="529"/>
         <source>Select yeast:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeTab5.cpp" line="588"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="599"/>
         <source>Tertiary</source>
         <translation type="unfinished"></translation>
     </message>
--- 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 @@
     <message>
         <location filename="../src/EditRecipeTab2.cpp" line="861"/>
         <location filename="../src/EditRecipeTab3.cpp" line="592"/>
-        <location filename="../src/EditRecipeTab5.cpp" line="538"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="549"/>
         <source>Use at:</source>
         <translation>Toevoegen bij:</translation>
     </message>
@@ -7758,7 +7758,7 @@
         <location filename="../src/EditRecipeTab2.cpp" line="871"/>
         <location filename="../src/EditRecipeTab3.cpp" line="607"/>
         <location filename="../src/EditRecipeTab4.cpp" line="608"/>
-        <location filename="../src/EditRecipeTab5.cpp" line="523"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="534"/>
         <source>In stock:</source>
         <translation>In voorraad:</translation>
     </message>
@@ -7786,7 +7786,7 @@
     </message>
     <message>
         <location filename="../src/EditRecipeTab2.cpp" line="930"/>
-        <location filename="../src/EditRecipeTab5.cpp" line="589"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="600"/>
         <source>Bottle</source>
         <translation>Bottelen</translation>
     </message>
@@ -7899,8 +7899,8 @@
         <location filename="../src/EditRecipeTab3.cpp" line="571"/>
         <location filename="../src/EditRecipeTab4.cpp" line="468"/>
         <location filename="../src/EditRecipeTab4.cpp" line="584"/>
-        <location filename="../src/EditRecipeTab5.cpp" line="388"/>
-        <location filename="../src/EditRecipeTab5.cpp" line="531"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="396"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="542"/>
         <source>Amount in gr:</source>
         <translation>Gewicht in gr:</translation>
     </message>
@@ -7987,8 +7987,8 @@
     <message>
         <location filename="../src/EditRecipeTab4.cpp" line="471"/>
         <location filename="../src/EditRecipeTab4.cpp" line="586"/>
-        <location filename="../src/EditRecipeTab5.cpp" line="392"/>
-        <location filename="../src/EditRecipeTab5.cpp" line="533"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="403"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="544"/>
         <source>Amount in ml:</source>
         <translation>Hoeveelheid in ml:</translation>
     </message>
@@ -7999,13 +7999,13 @@
     </message>
     <message>
         <location filename="../src/EditRecipeTab4.cpp" line="654"/>
-        <location filename="../src/EditRecipeTab5.cpp" line="586"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="597"/>
         <source>Primary</source>
         <translation>Hoofdgisting</translation>
     </message>
     <message>
         <location filename="../src/EditRecipeTab4.cpp" line="655"/>
-        <location filename="../src/EditRecipeTab5.cpp" line="587"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="598"/>
         <source>Secondary</source>
         <translation>Nagisting/lagering</translation>
     </message>
@@ -8066,29 +8066,29 @@
         <translation>Verwijder gist</translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeTab5.cpp" line="384"/>
-        <location filename="../src/EditRecipeTab5.cpp" line="529"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="389"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="540"/>
         <source>Total packs:</source>
         <translation>Aantal pakken:</translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeTab5.cpp" line="503"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="514"/>
         <source>Yeast name:</source>
         <translation>Gist naam:</translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeTab5.cpp" line="508"/>
-        <location filename="../src/EditRecipeTab5.cpp" line="513"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="519"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="524"/>
         <source>Laboratory:</source>
         <translation>Laboratorium:</translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeTab5.cpp" line="518"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="529"/>
         <source>Select yeast:</source>
         <translation>Kies gist:</translation>
     </message>
     <message>
-        <location filename="../src/EditRecipeTab5.cpp" line="588"/>
+        <location filename="../src/EditRecipeTab5.cpp" line="599"/>
         <source>Tertiary</source>
         <translation>Lageren</translation>
     </message>

mercurial