src/EditRecipeTab7.cpp

changeset 149
d73719fa2ebb
parent 139
f947c6988e91
child 150
fd568cc1dd0e
--- a/src/EditRecipeTab7.cpp	Wed Apr 20 12:19:36 2022 +0200
+++ b/src/EditRecipeTab7.cpp	Wed Apr 20 14:30:06 2022 +0200
@@ -479,6 +479,120 @@
 void EditRecipe::w2_volume_changed(double val)
 {
     qDebug() << "w2_vol_changed" << val;
+
+    if (recipe->w2_total_alkalinity && recipe->w2_sulfate) {
+	/*
+	 * Seems a valid water, but don't go over the total.
+	 */
+	if (val < (recipe->w1_amount + recipe->w2_amount)) {
+	    recipe->w1_amount -= val - recipe->w2_amount;
+	    recipe->w2_amount = val;
+	    ui->w1_volEdit->setValue(recipe->w1_amount);
+	}
+    } else {
+	/*
+	 * Invalid water, block changes.
+	 */
+	recipe->w2_amount = 0;
+    }
+    ui->w2_volEdit->setValue(recipe->w2_amount);
+
+    calcWater();
+    is_changed();
+}
+
+
+void EditRecipe::w1_name_changed(int val)
+{
+    QSqlQuery query;
+
+    qDebug() << "w1_name_changed" << val;
+    if (val == 0) {
+	/*
+	 * If no water is selected, take the default water.
+	 */
+	this->ignoreChanges = true;
+	val = my_default_water;
+	ui->w1_nameEdit->setCurrentIndex(val);
+	this->ignoreChanges = false;
+    }
+
+    query.prepare("SELECT * FROM inventory_waters ORDER BY record");
+    query.exec();
+    query.first();
+    for (int i = 0; i < (val - 1); i++) {
+	query.next();
+    }
+    qDebug() << "set water" << query.value(1).toString();
+
+    recipe->w1_calcium = query.value(3).toDouble();
+    recipe->w1_magnesium = query.value(8).toDouble();
+    recipe->w1_total_alkalinity = query.value(11).toDouble();
+    recipe->w1_sodium = query.value(7).toDouble();
+    recipe->w1_chloride = query.value(6).toDouble();
+    recipe->w1_sulfate = query.value(5).toDouble();
+    recipe->w1_ph = query.value(9).toDouble();
+
+    ui->w1_caEdit->setValue(recipe->w1_calcium);
+    ui->w1_mgEdit->setValue(recipe->w1_magnesium);
+    ui->w1_hco3Edit->setValue(recipe->w1_total_alkalinity * 1.22);
+    ui->w1_caco3Edit->setValue(recipe->w1_total_alkalinity);
+    ui->w1_naEdit->setValue(recipe->w1_sodium);
+    ui->w1_clEdit->setValue(recipe->w1_chloride);
+    ui->w1_so4Edit->setValue(recipe->w1_sulfate);
+    ui->w1_phEdit->setValue(recipe->w1_ph);
+
+    is_changed();
+    calcWater();
+}
+
+
+void EditRecipe::w2_name_changed(int val)
+{
+    QSqlQuery query;
+
+    qDebug() << "w2_name_changed" << val;
+
+    if (val == 0) {	// Clear water 2.
+	recipe->w2_calcium = 0;
+	recipe->w2_magnesium = 0;
+	recipe->w2_total_alkalinity = 0;
+	recipe->w2_sodium = 0;
+	recipe->w2_chloride = 0;
+	recipe->w2_sulfate = 0;
+	recipe->w2_ph = 0;
+	recipe->w1_amount += recipe->w2_amount;
+	recipe->w2_amount = 0;
+    } else {
+        query.prepare("SELECT * FROM inventory_waters ORDER BY record");
+        query.exec();
+        query.first();
+        for (int i = 0; i < (val - 1); i++) {
+            query.next();
+        }
+	qDebug() << "set water" << query.value(1).toString();
+
+	recipe->w2_calcium = query.value(3).toDouble();
+        recipe->w2_magnesium = query.value(8).toDouble();
+        recipe->w2_total_alkalinity = query.value(11).toDouble();
+        recipe->w2_sodium = query.value(7).toDouble();
+        recipe->w2_chloride = query.value(6).toDouble();
+        recipe->w2_sulfate = query.value(5).toDouble();
+        recipe->w2_ph = query.value(9).toDouble();
+    }
+    ui->w1_volEdit->setValue(recipe->w1_amount);
+    ui->w2_volEdit->setValue(recipe->w2_amount);
+    ui->w2_caEdit->setValue(recipe->w2_calcium);
+    ui->w2_mgEdit->setValue(recipe->w2_magnesium);
+    ui->w2_hco3Edit->setValue(recipe->w2_total_alkalinity * 1.22);
+    ui->w2_caco3Edit->setValue(recipe->w2_total_alkalinity);
+    ui->w2_naEdit->setValue(recipe->w2_sodium);
+    ui->w2_clEdit->setValue(recipe->w2_chloride);
+    ui->w2_so4Edit->setValue(recipe->w2_sulfate);
+    ui->w2_phEdit->setValue(recipe->w2_ph);
+
+    is_changed();
+    calcWater();
 }
 
 

mercurial