Implemented choose main and dillution waters. Implement change dillution water volume.

Wed, 20 Apr 2022 14:30:06 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Wed, 20 Apr 2022 14:30:06 +0200
changeset 149
d73719fa2ebb
parent 148
ba25a566b100
child 150
fd568cc1dd0e

Implemented choose main and dillution waters. Implement change dillution water volume.

src/EditRecipe.cpp file | annotate | diff | comparison | revisions
src/EditRecipe.h file | annotate | diff | comparison | revisions
src/EditRecipeTab7.cpp file | annotate | diff | comparison | revisions
--- a/src/EditRecipe.cpp	Wed Apr 20 12:19:36 2022 +0200
+++ b/src/EditRecipe.cpp	Wed Apr 20 14:30:06 2022 +0200
@@ -700,6 +700,8 @@
     connect(ui->mw_acidvolEdit, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &EditRecipe::mw_acid_changed);
     connect(ui->mw_acidPick, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &EditRecipe::mw_type_changed);
     connect(ui->wt_sourceEdit, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &EditRecipe::wt_target_changed);
+    connect(ui->w1_nameEdit, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &EditRecipe::w1_name_changed);
+    connect(ui->w2_nameEdit, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &EditRecipe::w2_name_changed);
     connect(ui->w2_volEdit, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &EditRecipe::w2_volume_changed);
 
     ui->saveButton->setEnabled(false);
--- a/src/EditRecipe.h	Wed Apr 20 12:19:36 2022 +0200
+++ b/src/EditRecipe.h	Wed Apr 20 14:30:06 2022 +0200
@@ -309,6 +309,8 @@
     void upMashRow_clicked();
     void downMashRow_clicked();
 
+    void w1_name_changed(int val);
+    void w2_name_changed(int val);
     void w2_volume_changed(double val);
     void wb_cacl2_changed(double val);
     void wb_caso4_changed(double val);
--- 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