On the brewday tab, show the afterboil volume inclusive the volume of the immersion chiller in the wort. Added refractometer buttons on the brewday tab. The brew volume cm edit popup shows a message if a immersion chiller is in the wort.

Sun, 15 Jan 2023 12:35:04 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Sun, 15 Jan 2023 12:35:04 +0100
changeset 461
add4dbef0c81
parent 460
adaf43213d10
child 462
1654ff5446c7

On the brewday tab, show the afterboil volume inclusive the volume of the immersion chiller in the wort. Added refractometer buttons on the brewday tab. The brew volume cm edit popup shows a message if a immersion chiller is in the wort.

src/EditProduct.cpp file | annotate | diff | comparison | revisions
src/EditProduct.h file | annotate | diff | comparison | revisions
src/EditProductTab2.cpp file | annotate | diff | comparison | revisions
src/EditProductTab9.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/EditProduct.cpp	Sat Jan 14 15:38:28 2023 +0100
+++ b/src/EditProduct.cpp	Sun Jan 15 12:35:04 2023 +0100
@@ -492,8 +492,8 @@
     ui->brew_preboileffShow->setValue(product->brew_preboil_efficiency);
     ui->brew_aboilphEdit->setValue(product->brew_aboil_ph);
     ui->brew_aboilsgEdit->setValue(product->brew_aboil_sg);
-    ui->brew_aboilvolEdit->setValue(product->brew_aboil_volume);
-    ui->brew_aboilvolShow->setValue(product->batch_size * 1.04);
+    ui->brew_aboilvolEdit->setValue(product->brew_aboil_volume + product->eq_chiller_volume);
+    ui->brew_aboilvolShow->setValue(product->batch_size * 1.04 + product->eq_chiller_volume);
     ui->brew_aboileffShow->setValue(product->brew_aboil_efficiency);
     ui->brew_whirlpool9Edit->setValue(product->brew_whirlpool9);
     ui->brew_whirlpool7Edit->setValue(product->brew_whirlpool7);
@@ -668,10 +668,12 @@
     connect(ui->brew_preboilphEdit, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &EditProduct::brew_preboilph_changed);
     connect(ui->brew_preboilsgEdit, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &EditProduct::brew_preboilsg_changed);
     connect(ui->brew_preboilvolEdit, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &EditProduct::brew_preboilvol_changed);
+    connect(ui->brew_prerefractoButton, SIGNAL(clicked()), this, SLOT(brew_preboil_brix_button()));
     connect(ui->brew_preboilButton, SIGNAL(clicked()), this, SLOT(brew_preboil_button()));
     connect(ui->brew_aboilphEdit, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &EditProduct::brew_aboilph_changed);
     connect(ui->brew_aboilsgEdit, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &EditProduct::brew_aboilsg_changed);
     connect(ui->brew_aboilvolEdit, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &EditProduct::brew_aboilvol_changed);
+    connect(ui->brew_arefractoButton, SIGNAL(clicked()), this, SLOT(brew_aboil_brix_button()));
     connect(ui->brew_aboilButton, SIGNAL(clicked()), this, SLOT(brew_aboil_button()));
     connect(ui->brew_cooltoEdit, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &EditProduct::brew_cooling_to_changed);
     connect(ui->brew_cooltimeEdit, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &EditProduct::brew_cooling_time_changed);
--- a/src/EditProduct.h	Sat Jan 14 15:38:28 2023 +0100
+++ b/src/EditProduct.h	Sun Jan 15 12:35:04 2023 +0100
@@ -181,11 +181,13 @@
     void brew_preboilsg_changed(double val);
     void brew_preboilvol_changed(double val);
     void brew_preboil_cm_changed(double val);
+    void brew_preboil_brix_button();
     void brew_preboil_button();
     void brew_aboilph_changed(double val);
     void brew_aboilsg_changed(double val);
     void brew_aboilvol_changed(double val);
     void brew_aboil_cm_changed(double val);
+    void brew_aboil_brix_button();
     void brew_aboil_button();
     void brew_cooling_to_changed(double val);
     void brew_cooling_time_changed(double val);
@@ -198,6 +200,7 @@
     void brew_aertime_changed(double val);
     void brew_trubloss_changed(double val);
     void brew_topupwater_changed(double val);
+    void brew_brix_changed(double val);
     void brew_log_button();
     void savePNG();
     void brix_changed(double val);
@@ -269,7 +272,7 @@
     QString bar_20 = "QProgressBar::chunk {background: #004D00;}";
     int recno;
     bool textIsChanged = false;
-    double ret_fg;
+    double ret_fg, sg_return;
     /*
      * Variables for popup ingredients editing.
      */
@@ -332,7 +335,25 @@
     void updateBrewday();
     void calcEfficiencyBeforeBoil();
     void calcEfficiencyAfterBoil();
-    void brew_volume_calc(double volume, double kettle_volume, double kettle_height, double est_volume, bool aboil);
+
+    /**
+     * @brief Popup to enter a brix value to get SG before fermentation.
+     * @param sg The SG is known, else 0.
+     * @param sg_default Use this if sg is 0.
+     * @return The sg calculated from the brix value.
+     */
+    double brew_brix_edit(double sg, double sg_default);
+
+    /**
+     * @brief Calculate height in cm and ask for measured cm from the kettle top.
+     * @param volume The known volume, or zero if initial value is to be used.
+     * @param kettle_volume The volume of the kettle.
+     * @param kettle_height The internal height of the kettle.
+     * @param est_volume The default estimated volume.
+     * @param aboil True if after boil volume is asked, else preboil. Selects destination of result.
+     * @param chiller True if an immersion chiller is in the kettle, give a extra remark.
+     */
+    void brew_volume_calc(double volume, double kettle_volume, double kettle_height, double est_volume, bool aboil, bool chiller);
     double get_fg(double gravity);
     double GetPressure(double CO2, double T);
     double CarbCO2ToPressure(double CO2, double T);
--- a/src/EditProductTab2.cpp	Sat Jan 14 15:38:28 2023 +0100
+++ b/src/EditProductTab2.cpp	Sun Jan 15 12:35:04 2023 +0100
@@ -102,11 +102,7 @@
     product->eq_trub_loss = query.value("trub_loss").toDouble();
     product->eq_evap_rate = query.value("evap_rate").toDouble();
     product->eq_boil_time = query.value("boil_time").toDouble();
-    //product->eq_calc_boil_volume = query.value("calc_boil_volume").toInt() ? true:false;
     product->eq_top_up_kettle = query.value("top_up_kettle").toDouble();
-    //product->eq_hop_utilization = query.value("hop_utilization").toDouble();
-    //product->eq_lauter_volume = query.value("lauter_volume").toDouble();
-    //product->eq_lauter_height = query.value("lauter_height").toDouble();
     product->eq_lauter_deadspace = query.value("lauter_deadspace").toDouble();
     product->eq_kettle_volume = query.value("kettle_volume").toDouble();
     product->eq_kettle_height = query.value("kettle_height").toDouble();
@@ -140,7 +136,7 @@
     ui->boil_timeEdit->setValue(product->boil_time);
     ui->efficiencyEdit->setValue(product->efficiency);
     ui->brew_preboilvolShow->setValue(product->boil_size * 1.04);
-    ui->brew_aboilvolShow->setValue(product->batch_size * 1.04);
+    ui->brew_aboilvolShow->setValue(product->batch_size * 1.04 + product->eq_chiller_volume);
 
     calcFermentablesFromOG(estog);
     adjustWaters(factor);
--- a/src/EditProductTab9.cpp	Sat Jan 14 15:38:28 2023 +0100
+++ b/src/EditProductTab9.cpp	Sun Jan 15 12:35:04 2023 +0100
@@ -153,20 +153,87 @@
 }
 
 
-void EditProduct::brew_volume_calc(double volume, double kettle_volume, double kettle_height, double est_volume, bool aboil)
+void EditProduct::brew_brix_changed(double val)
+{
+    sg_return = Utils::brix_to_sg(val);
+}
+
+
+double EditProduct::brew_brix_edit(double sg, double sg_default)
+{
+    double brix = 0.0;
+
+    QDialog* dialog = new QDialog(this);
+    dialog->resize(360, 110);
+    QDialogButtonBox *buttonBox = new QDialogButtonBox(dialog);
+    buttonBox->setObjectName(QString::fromUtf8("buttonBox"));
+    buttonBox->setGeometry(QRect(30, 60, 300, 32));
+    buttonBox->setLayoutDirection(Qt::LeftToRight);
+    buttonBox->setOrientation(Qt::Horizontal);
+    buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok);
+    buttonBox->setCenterButtons(true);
+
+    QLabel *brixLabel = new QLabel(dialog);
+    brixLabel->setObjectName(QString::fromUtf8("brixLabel"));
+    brixLabel->setText(tr("Refractometer Brix:"));
+    brixLabel->setGeometry(QRect(10, 20, 161, 24));
+    brixLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
+
+    QDoubleSpinBox *brixEdit = new QDoubleSpinBox(dialog);
+    brixEdit->setObjectName(QString::fromUtf8("brixEdit"));
+    brixEdit->setGeometry(QRect(180, 20, 101, 24));
+    brixEdit->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
+    brixEdit->setAccelerated(true);
+    brixEdit->setDecimals(1);
+    brixEdit->setMaximum(32.0);
+    brixEdit->setSingleStep(0.1);
+
+    if (sg > 1.001)
+	brix = Utils::sg_to_brix(sg);
+    else
+	brix = Utils::sg_to_brix(sg_default);
+    brixEdit->setValue(brix);
+
+    connect(brixEdit, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &EditProduct::brew_brix_changed);
+    connect(buttonBox, SIGNAL(rejected()), dialog, SLOT(reject()));
+    connect(buttonBox, SIGNAL(accepted()), dialog, SLOT(accept()));
+
+    dialog->setModal(true);
+    dialog->exec();
+    if (dialog->result() == QDialog::Rejected) {
+        sg_return = sg;
+    }
+
+    disconnect(brixEdit, nullptr, nullptr, nullptr);
+    disconnect(buttonBox, nullptr, nullptr, nullptr);
+
+    qDebug() << "brew_brix_edit(" << sg << sg_default << ") return" << sg_return;
+    return sg_return;
+}
+
+
+void EditProduct::brew_volume_calc(double volume, double kettle_volume, double kettle_height, double est_volume, bool aboil, bool chiller)
 {
     double k_cm;
 
-    if (volume > 0)
+    if ((chiller && volume > product->eq_chiller_volume) || (! chiller && volume > 0))
         k_cm = Utils::kettle_cm(volume, kettle_volume, kettle_height);
     else
         k_cm = Utils::kettle_cm(est_volume, kettle_volume, kettle_height);
 
+    qDebug() << "brew_volume_calc(" << volume << kettle_volume << kettle_height << est_volume << aboil << chiller << ") cm:" << k_cm;
+
     QDialog* dialog = new QDialog(this);
-    dialog->resize(320, 110);
+    if (chiller)
+	dialog->resize(320, 140);
+    else
+    	dialog->resize(320, 110);
     QDialogButtonBox *buttonBox = new QDialogButtonBox(dialog);
     buttonBox->setObjectName(QString::fromUtf8("buttonBox"));
-    buttonBox->setGeometry(QRect(40, 65, 240, 32));
+    if (chiller)
+	buttonBox->setGeometry(QRect(40, 95, 240, 32));
+    else
+    	buttonBox->setGeometry(QRect(40, 65, 240, 32));
     buttonBox->setLayoutDirection(Qt::LeftToRight);
     buttonBox->setOrientation(Qt::Horizontal);
     buttonBox->setStandardButtons(QDialogButtonBox::Ok);
@@ -189,6 +256,14 @@
     cmEdit->setSingleStep(0.1);
     cmEdit->setValue(k_cm);
 
+    if (chiller) {
+	QLabel *opmLabel = new QLabel(dialog);
+	opmLabel->setObjectName(QString::fromUtf8("opmLabel"));
+	opmLabel->setText(tr("Measure with placed immersion chiller."));
+	opmLabel->setGeometry(QRect(10, 60, 300, 24));
+	opmLabel->setAlignment(Qt::AlignCenter);
+    }
+
     if (aboil)
 	connect(cmEdit, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &EditProduct::brew_aboil_cm_changed);
     else
@@ -278,9 +353,16 @@
 }
 
 
+void EditProduct::brew_preboil_brix_button()
+{
+    product->brew_preboil_sg = brew_brix_edit(product->brew_preboil_sg, product->preboil_sg);
+    ui->brew_preboilsgEdit->setValue(product->brew_preboil_sg);
+}
+
+
 void EditProduct::brew_preboil_button()
 {
-    brew_volume_calc(product->brew_preboil_volume, product->eq_kettle_volume, product->eq_kettle_height, product->boil_size * 1.04, false);
+    brew_volume_calc(product->brew_preboil_volume, product->eq_kettle_volume, product->eq_kettle_height, product->boil_size * 1.04, false, false);
 }
 
 
@@ -342,9 +424,9 @@
     if (product->brew_aboil_volume == 0) {
         product->brew_aboil_volume = product->batch_size * 1.04;
         const QSignalBlocker blocker1(ui->brew_aboilvolEdit);
-        ui->brew_aboilvolEdit->setValue(product->batch_size * 1.04);
+        ui->brew_aboilvolEdit->setValue(product->brew_aboil_volume + product->eq_chiller_volume);
     } else {
-        product->brew_aboil_volume = val;
+        product->brew_aboil_volume = val - product->eq_chiller_volume;
     }
     is_changed();
     calcEfficiencyAfterBoil();
@@ -354,7 +436,7 @@
 void EditProduct::brew_aboil_cm_changed(double val)
 {
     double vol = Utils::kettle_vol(val, product->eq_kettle_volume, product->eq_kettle_height);
-    product->brew_aboil_volume = vol;
+    product->brew_aboil_volume = vol - product->eq_chiller_volume;
     const QSignalBlocker blocker1(ui->brew_aboilvolEdit);
     ui->brew_aboilvolEdit->setValue(vol);
     is_changed();
@@ -362,9 +444,19 @@
 }
 
 
+void EditProduct::brew_aboil_brix_button()
+{
+    product->brew_aboil_sg = brew_brix_edit(product->brew_aboil_sg, product->est_og3);
+    ui->brew_aboilsgEdit->setValue(product->brew_aboil_sg);
+}
+
+
 void EditProduct::brew_aboil_button()
 {
-    brew_volume_calc(product->brew_aboil_volume, product->eq_kettle_volume, product->eq_kettle_height, product->batch_size * 1.04, true);
+    brew_volume_calc(product->brew_aboil_volume + product->eq_chiller_volume,
+		     product->eq_kettle_volume, product->eq_kettle_height,
+		     (product->batch_size * 1.04) + product->eq_chiller_volume,
+		     true, (product->eq_chiller_volume > 0));
 }
 
 
--- a/translations/bmsapp_en.ts	Sat Jan 14 15:38:28 2023 +0100
+++ b/translations/bmsapp_en.ts	Sun Jan 15 12:35:04 2023 +0100
@@ -2282,7 +2282,7 @@
     </message>
     <message>
         <location filename="../ui/EditProduct.ui" line="55"/>
-        <location filename="../src/EditProductTab9.cpp" line="460"/>
+        <location filename="../src/EditProductTab9.cpp" line="552"/>
         <source>Save</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4078,43 +4078,43 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProduct.cpp" line="809"/>
+        <location filename="../src/EditProduct.cpp" line="811"/>
         <source>BMSapp - Add new product</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProduct.cpp" line="811"/>
+        <location filename="../src/EditProduct.cpp" line="813"/>
         <source>BMSapp - Edit %1 - %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProduct.cpp" line="827"/>
-        <location filename="../src/EditProduct.cpp" line="831"/>
+        <location filename="../src/EditProduct.cpp" line="829"/>
+        <location filename="../src/EditProduct.cpp" line="833"/>
         <source>Edit Product</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProduct.cpp" line="827"/>
+        <location filename="../src/EditProduct.cpp" line="829"/>
         <source>Name empty or too short.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProduct.cpp" line="831"/>
+        <location filename="../src/EditProduct.cpp" line="833"/>
         <source>No beerstyle selected.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProduct.cpp" line="869"/>
+        <location filename="../src/EditProduct.cpp" line="871"/>
         <source>Delete product</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProduct.cpp" line="893"/>
+        <location filename="../src/EditProduct.cpp" line="895"/>
         <source>Product changed</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProduct.cpp" line="893"/>
+        <location filename="../src/EditProduct.cpp" line="895"/>
         <source>The product has been modified. Save changes?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4239,7 +4239,7 @@
         <location filename="../src/EditProductTab5.cpp" line="399"/>
         <location filename="../src/EditProductTab6.cpp" line="880"/>
         <location filename="../src/EditProductTab7.cpp" line="306"/>
-        <location filename="../src/EditProduct.cpp" line="869"/>
+        <location filename="../src/EditProduct.cpp" line="871"/>
         <source>Delete %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4340,7 +4340,7 @@
     <message>
         <location filename="../src/EditProductTab4.cpp" line="55"/>
         <location filename="../src/EditProductTab5.cpp" line="75"/>
-        <location filename="../src/EditProductTab9.cpp" line="512"/>
+        <location filename="../src/EditProductTab9.cpp" line="604"/>
         <source>Time</source>
         <translation type="unfinished"></translation>
     </message>
@@ -4850,32 +4850,37 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductTab9.cpp" line="177"/>
+        <location filename="../src/EditProductTab9.cpp" line="244"/>
         <source>Distance from top:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductTab9.cpp" line="187"/>
+        <location filename="../src/EditProductTab9.cpp" line="254"/>
         <source> cm</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductTab9.cpp" line="523"/>
+        <location filename="../src/EditProductTab9.cpp" line="262"/>
+        <source>Measure with placed immersion chiller.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/EditProductTab9.cpp" line="615"/>
         <source>Temperature °C or Power %</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductTab9.cpp" line="551"/>
+        <location filename="../src/EditProductTab9.cpp" line="643"/>
         <source>Save Image</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductTab9.cpp" line="551"/>
+        <location filename="../src/EditProductTab9.cpp" line="643"/>
         <source>Image (*.png)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductTab9.cpp" line="553"/>
+        <location filename="../src/EditProductTab9.cpp" line="645"/>
         <location filename="../src/EditProductExport.cpp" line="37"/>
         <location filename="../src/EditProductExport.cpp" line="40"/>
         <location filename="../src/EditProductExport.cpp" line="264"/>
@@ -4883,11 +4888,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/EditProductTab9.cpp" line="553"/>
+        <location filename="../src/EditProductTab9.cpp" line="645"/>
         <source>No image file selected.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="../src/EditProductTab9.cpp" line="178"/>
         <location filename="../src/EditProductTab10.cpp" line="42"/>
         <source>Refractometer Brix:</source>
         <translation type="unfinished"></translation>
--- a/translations/bmsapp_nl.ts	Sat Jan 14 15:38:28 2023 +0100
+++ b/translations/bmsapp_nl.ts	Sun Jan 15 12:35:04 2023 +0100
@@ -2498,7 +2498,7 @@
     </message>
     <message>
         <location filename="../ui/EditProduct.ui" line="55"/>
-        <location filename="../src/EditProductTab9.cpp" line="460"/>
+        <location filename="../src/EditProductTab9.cpp" line="552"/>
         <source>Save</source>
         <translation>Bewaar</translation>
     </message>
@@ -4414,7 +4414,7 @@
         <translation>Mout</translation>
     </message>
     <message>
-        <location filename="../src/EditProduct.cpp" line="811"/>
+        <location filename="../src/EditProduct.cpp" line="813"/>
         <source>BMSapp - Edit %1 - %2</source>
         <translation>BMSapp - Wijzig %1 - %2</translation>
     </message>
@@ -4479,7 +4479,7 @@
         <translation type="vanished">Koken %1 minuten</translation>
     </message>
     <message>
-        <location filename="../src/EditProduct.cpp" line="809"/>
+        <location filename="../src/EditProduct.cpp" line="811"/>
         <source>BMSapp - Add new product</source>
         <translation>BMSapp - Nieuw product</translation>
     </message>
@@ -4488,18 +4488,18 @@
         <translation type="vanished">BMSapp - Wijzig product %1</translation>
     </message>
     <message>
-        <location filename="../src/EditProduct.cpp" line="827"/>
-        <location filename="../src/EditProduct.cpp" line="831"/>
+        <location filename="../src/EditProduct.cpp" line="829"/>
+        <location filename="../src/EditProduct.cpp" line="833"/>
         <source>Edit Product</source>
         <translation>Wijzig Product</translation>
     </message>
     <message>
-        <location filename="../src/EditProduct.cpp" line="827"/>
+        <location filename="../src/EditProduct.cpp" line="829"/>
         <source>Name empty or too short.</source>
         <translation>De naam is leeg of te kort.</translation>
     </message>
     <message>
-        <location filename="../src/EditProduct.cpp" line="831"/>
+        <location filename="../src/EditProduct.cpp" line="833"/>
         <source>No beerstyle selected.</source>
         <translation>Geen bierstijl gekozen.</translation>
     </message>
@@ -4512,17 +4512,17 @@
 %3</translation>
     </message>
     <message>
-        <location filename="../src/EditProduct.cpp" line="869"/>
+        <location filename="../src/EditProduct.cpp" line="871"/>
         <source>Delete product</source>
         <translation>Verwijder product</translation>
     </message>
     <message>
-        <location filename="../src/EditProduct.cpp" line="893"/>
+        <location filename="../src/EditProduct.cpp" line="895"/>
         <source>Product changed</source>
         <translation>Product gewijzigd</translation>
     </message>
     <message>
-        <location filename="../src/EditProduct.cpp" line="893"/>
+        <location filename="../src/EditProduct.cpp" line="895"/>
         <source>The product has been modified. Save changes?</source>
         <translation>Het product is gewijzigd. Wijzigingen opslaan?</translation>
     </message>
@@ -4659,7 +4659,7 @@
         <location filename="../src/EditProductTab5.cpp" line="399"/>
         <location filename="../src/EditProductTab6.cpp" line="880"/>
         <location filename="../src/EditProductTab7.cpp" line="306"/>
-        <location filename="../src/EditProduct.cpp" line="869"/>
+        <location filename="../src/EditProduct.cpp" line="871"/>
         <source>Delete %1</source>
         <translation>Verwijder %1</translation>
     </message>
@@ -4760,7 +4760,7 @@
     <message>
         <location filename="../src/EditProductTab4.cpp" line="55"/>
         <location filename="../src/EditProductTab5.cpp" line="75"/>
-        <location filename="../src/EditProductTab9.cpp" line="512"/>
+        <location filename="../src/EditProductTab9.cpp" line="604"/>
         <source>Time</source>
         <translation>Tijd</translation>
     </message>
@@ -5293,7 +5293,7 @@
         <translation>Veel te bitter</translation>
     </message>
     <message>
-        <location filename="../src/EditProductTab9.cpp" line="553"/>
+        <location filename="../src/EditProductTab9.cpp" line="645"/>
         <location filename="../src/EditProductExport.cpp" line="37"/>
         <location filename="../src/EditProductExport.cpp" line="40"/>
         <location filename="../src/EditProductExport.cpp" line="264"/>
@@ -5526,36 +5526,42 @@
         <translation>Bevestig dat de brouw datums en tijden kloppen</translation>
     </message>
     <message>
-        <location filename="../src/EditProductTab9.cpp" line="177"/>
+        <location filename="../src/EditProductTab9.cpp" line="244"/>
         <source>Distance from top:</source>
         <translation>Afstand tot bovenrand:</translation>
     </message>
     <message>
-        <location filename="../src/EditProductTab9.cpp" line="187"/>
+        <location filename="../src/EditProductTab9.cpp" line="254"/>
         <source> cm</source>
         <translation> cm</translation>
     </message>
     <message>
-        <location filename="../src/EditProductTab9.cpp" line="523"/>
+        <location filename="../src/EditProductTab9.cpp" line="262"/>
+        <source>Measure with placed immersion chiller.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/EditProductTab9.cpp" line="615"/>
         <source>Temperature °C or Power %</source>
         <translation>Temperatuur °C of Power %</translation>
     </message>
     <message>
-        <location filename="../src/EditProductTab9.cpp" line="551"/>
+        <location filename="../src/EditProductTab9.cpp" line="643"/>
         <source>Save Image</source>
         <translation>Opslaan plaatje</translation>
     </message>
     <message>
-        <location filename="../src/EditProductTab9.cpp" line="551"/>
+        <location filename="../src/EditProductTab9.cpp" line="643"/>
         <source>Image (*.png)</source>
         <translation>Plaatje (*.png)</translation>
     </message>
     <message>
-        <location filename="../src/EditProductTab9.cpp" line="553"/>
+        <location filename="../src/EditProductTab9.cpp" line="645"/>
         <source>No image file selected.</source>
         <translation>Geen plaatjes bestand gekozen.</translation>
     </message>
     <message>
+        <location filename="../src/EditProductTab9.cpp" line="178"/>
         <location filename="../src/EditProductTab10.cpp" line="42"/>
         <source>Refractometer Brix:</source>
         <translation>Refractometer Brix:</translation>

mercurial