The equipment editor uses named fields for database io. Edit field 'trub chiller loss' is now called 'trub loss', but will be renamed again. Removed editing hop_utilization, lauter_volume and lauter_height. These fields were never used in the application. Not yet removed from the database. Added chiller_type, chiller_to79, chiller_volume, chiller_lpm and chiller_loss fields so that we can tie a chiller to the equipment setup. Renamed some chiller names.

Mon, 24 Oct 2022 15:25:50 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Mon, 24 Oct 2022 15:25:50 +0200
changeset 419
d49f38cc76a0
parent 418
236b62fd484e
child 420
9830d1591872

The equipment editor uses named fields for database io. Edit field 'trub chiller loss' is now called 'trub loss', but will be renamed again. Removed editing hop_utilization, lauter_volume and lauter_height. These fields were never used in the application. Not yet removed from the database. Added chiller_type, chiller_to79, chiller_volume, chiller_lpm and chiller_loss fields so that we can tie a chiller to the equipment setup. Renamed some chiller names.

src/EditEquipment.cpp file | annotate | diff | comparison | revisions
src/EditEquipment.h file | annotate | diff | comparison | revisions
src/PrinterDialog.cpp file | annotate | diff | comparison | revisions
src/global.cpp file | annotate | diff | comparison | revisions
src/global.h file | annotate | diff | comparison | revisions
ui/EditEquipment.ui file | annotate | diff | comparison | revisions
--- a/src/EditEquipment.cpp	Fri Oct 21 17:01:20 2022 +0200
+++ b/src/EditEquipment.cpp	Mon Oct 24 15:25:50 2022 +0200
@@ -14,9 +14,10 @@
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
+#include "MainWindow.h"
 #include "EditEquipment.h"
 #include "../ui/ui_EditEquipment.h"
-#include "MainWindow.h"
+#include "global.h"
 
 
 EditEquipment::EditEquipment(int id, QWidget *parent) : QDialog(parent), ui(new Ui::EditEquipment)
@@ -28,11 +29,12 @@
     this->recno = id;
 
     WindowTitle();
-    
-    ui->tun_materialEdit->addItem(tr("Stainless Steel"));
-    ui->tun_materialEdit->addItem(tr("Aluminium"));
-    ui->tun_materialEdit->addItem(tr("Plastics"));
-    ui->tun_materialEdit->addItem(tr("Copper"));
+
+    for (int i = 0; i < 4; i++)
+	ui->tun_materialEdit->addItem(QCoreApplication::translate("TunMaterial", g_tun_materials[i]));
+
+    for (int i = 0; i < 5; i++)
+        ui->chiller_typeEdit->addItem(QCoreApplication::translate("ChillerType", g_chiller_types[i]));
 
     if (id >= 0) {
 	query.prepare("SELECT * FROM inventory_equipments WHERE record = :recno");
@@ -40,36 +42,38 @@
 	query.exec();
 	query.next();
 
-	ui->nameEdit->setText(query.value(1).toString());
-	ui->boil_sizeEdit->setValue(query.value(2).toDouble());
-	ui->batch_sizeEdit->setValue(query.value(3).toDouble());
-	ui->tun_volumeEdit->setValue(query.value(4).toDouble());
-	ui->tun_weightEdit->setValue(query.value(5).toDouble());
-	ui->tun_specific_heatEdit->setValue(query.value(6).toDouble());
-	ui->tun_materialEdit->setCurrentIndex(query.value(7).toInt());
-	ui->tun_heightEdit->setValue(query.value(8).toDouble() * 100.0);
-	ui->top_up_waterEdit->setValue(query.value(9).toDouble());
-	ui->chiller_lossEdit->setValue(query.value(10).toDouble());
-	ui->evap_rateEdit->setValue(query.value(11).toDouble());
-	ui->boil_timeEdit->setValue(query.value(12).toDouble());
-	ui->calcboilEdit->setChecked(query.value(13).toInt() ? true:false);
-	ui->top_up_kettleEdit->setValue(query.value(14).toDouble());
-	ui->hopfactorEdit->setValue(query.value(15).toDouble());
-	ui->notesEdit->setPlainText(query.value(16).toString());
-	ui->lauter_volumeEdit->setValue(query.value(17).toDouble());
-	ui->lauter_heightEdit->setValue(query.value(18).toDouble() * 100.0);
-	ui->lauter_deadspaceEdit->setValue(query.value(19).toDouble());
-	ui->kettle_volumeEdit->setValue(query.value(20).toDouble());
-	ui->kettle_heightEdit->setValue(query.value(21).toDouble() * 100.0);
-	ui->mash_volumeEdit->setValue(query.value(22).toDouble());
-	ui->mash_maxEdit->setValue(query.value(23).toDouble());
-	ui->efficiencyEdit->setValue(query.value(24).toDouble());
+	ui->nameEdit->setText(query.value("name").toString());
+	ui->boil_sizeEdit->setValue(query.value("boil_size").toDouble());
+	ui->batch_sizeEdit->setValue(query.value("batch_size").toDouble());
+	ui->tun_volumeEdit->setValue(query.value("tun_volume").toDouble());
+	ui->tun_weightEdit->setValue(query.value("tun_weight").toDouble());
+	ui->tun_specific_heatEdit->setValue(query.value("tun_specific_heat").toDouble());
+	ui->tun_materialEdit->setCurrentIndex(query.value("tun_material").toInt());
+	ui->tun_heightEdit->setValue(query.value("tun_height").toDouble() * 100.0);
+	ui->top_up_waterEdit->setValue(query.value("top_up_water").toDouble());
+	ui->trub_lossEdit->setValue(query.value("trub_chiller_loss").toDouble());
+	ui->evap_rateEdit->setValue(query.value("evap_rate").toDouble());
+	ui->boil_timeEdit->setValue(query.value("boil_time").toDouble());
+	ui->calcboilEdit->setChecked(query.value("calc_boil_volume").toInt() ? true:false);
+	ui->top_up_kettleEdit->setValue(query.value("top_up_kettle").toDouble());
+	ui->notesEdit->setPlainText(query.value("notes").toString());
+	ui->lauter_deadspaceEdit->setValue(query.value("lauter_deadspace").toDouble());
+	ui->kettle_volumeEdit->setValue(query.value("kettle_volume").toDouble());
+	ui->kettle_heightEdit->setValue(query.value("kettle_height").toDouble() * 100.0);
+	ui->mash_volumeEdit->setValue(query.value("mash_volume").toDouble());
+	ui->mash_maxEdit->setValue(query.value("mash_max").toDouble());
+	ui->efficiencyEdit->setValue(query.value("efficiency").toDouble());
+	ui->chiller_typeEdit->setCurrentIndex(query.value("chiller_type").toInt());
+	ui->chiller_to79Edit->setValue(query.value("chiller_to79").toDouble());
+	ui->chiller_lossEdit->setValue(query.value("chiller_loss").toDouble());
+        ui->chiller_volumeEdit->setValue(query.value("chiller_volume").toDouble());
+	ui->chiller_lpmEdit->setValue(query.value("chiller_lpm").toDouble());
 	/*
 	 * Now we have loaded this record, check if this equipment is
 	 * being used by a product. If so, make the name field read-only.
 	 */
 	query2.prepare("SELECT eq_name FROM products WHERE eq_name=:name");
-	query2.bindValue(":name", query.value(1).toString());
+	query2.bindValue(":name", query.value("name").toString());
 	query2.exec();
 	inuse = query2.size();
 	ui->nameEdit->setReadOnly(inuse > 0);
@@ -83,22 +87,28 @@
 	ui->tun_materialEdit->setCurrentIndex(0);
 	ui->tun_heightEdit->setValue(20);
 	ui->top_up_waterEdit->setValue(0);
-	ui->chiller_lossEdit->setValue(0.5);
+	ui->trub_lossEdit->setValue(0.5);
 	ui->evap_rateEdit->setValue(1.8);
 	ui->boil_timeEdit->setValue(90);
 	ui->calcboilEdit->setChecked(true);
 	ui->top_up_kettleEdit->setValue(0);
-	ui->hopfactorEdit->setValue(100);
-	ui->lauter_volumeEdit->setValue(20);
-	ui->lauter_heightEdit->setValue(20);
 	ui->lauter_deadspaceEdit->setValue(0.5);
 	ui->kettle_volumeEdit->setValue(20);
 	ui->kettle_heightEdit->setValue(20);
 	ui->mash_volumeEdit->setValue(18);
 	ui->mash_maxEdit->setValue(6);
 	ui->efficiencyEdit->setValue(75);
+	ui->chiller_typeEdit->setCurrentIndex(1);
+	ui->chiller_to79Edit->setValue(10);
+	ui->chiller_lossEdit->setValue(0);
+	ui->chiller_volumeEdit->setValue(0.5);
+	ui->chiller_lpmEdit->setValue(0);
 	inuse = 0;
     }
+    /* Block select no chiller used */
+    qobject_cast<QStandardItemModel*>(ui->chiller_typeEdit->model())->item(CHILLER_TYPE_NONE)->setEnabled(false);
+    chiller_setup(ui->chiller_typeEdit->currentIndex());
+
     connect(ui->nameEdit, &QLineEdit::textChanged, this, &EditEquipment::is_changed);
     connect(ui->boil_sizeEdit, &QDoubleSpinBox::textChanged, this, &EditEquipment::is_changed);
     connect(ui->batch_sizeEdit, &QDoubleSpinBox::textChanged, this, &EditEquipment::is_changed);
@@ -107,21 +117,23 @@
     connect(ui->tun_materialEdit, &QComboBox::currentTextChanged, this, &EditEquipment::material_changed);   
     connect(ui->tun_heightEdit, &QDoubleSpinBox::textChanged, this, &EditEquipment::is_changed);
     connect(ui->top_up_waterEdit, &QDoubleSpinBox::textChanged, this, &EditEquipment::is_changed);
-    connect(ui->chiller_lossEdit, &QDoubleSpinBox::textChanged, this, &EditEquipment::is_changed);
+    connect(ui->trub_lossEdit, &QDoubleSpinBox::textChanged, this, &EditEquipment::is_changed);
     connect(ui->evap_rateEdit, &QDoubleSpinBox::textChanged, this, &EditEquipment::is_changed);
     connect(ui->boil_timeEdit, &QDoubleSpinBox::textChanged, this, &EditEquipment::is_changed);
     connect(ui->calcboilEdit, &QCheckBox::stateChanged, this, &EditEquipment::is_changed);
     connect(ui->top_up_kettleEdit, &QDoubleSpinBox::textChanged, this, &EditEquipment::is_changed);
-    connect(ui->hopfactorEdit, &QDoubleSpinBox::textChanged, this, &EditEquipment::is_changed);
     connect(ui->notesEdit, SIGNAL(textChanged()), this, SLOT(is_changed()));
-    connect(ui->lauter_volumeEdit, &QDoubleSpinBox::textChanged, this, &EditEquipment::is_changed);
-    connect(ui->lauter_heightEdit, &QDoubleSpinBox::textChanged, this, &EditEquipment::is_changed);
     connect(ui->lauter_deadspaceEdit, &QDoubleSpinBox::textChanged, this, &EditEquipment::is_changed);
     connect(ui->kettle_volumeEdit, &QDoubleSpinBox::textChanged, this, &EditEquipment::is_changed);
     connect(ui->kettle_heightEdit, &QDoubleSpinBox::textChanged, this, &EditEquipment::is_changed);
     connect(ui->mash_volumeEdit, &QDoubleSpinBox::textChanged, this, &EditEquipment::is_changed);
     connect(ui->mash_maxEdit, &QDoubleSpinBox::textChanged, this, &EditEquipment::is_changed);
     connect(ui->efficiencyEdit, &QDoubleSpinBox::textChanged, this, &EditEquipment::is_changed);
+    connect(ui->chiller_typeEdit, &QComboBox::currentTextChanged, this, &EditEquipment::chiller_changed);
+    connect(ui->chiller_to79Edit, &QDoubleSpinBox::textChanged, this, &EditEquipment::is_changed);
+    connect(ui->chiller_volumeEdit, &QDoubleSpinBox::textChanged, this, &EditEquipment::is_changed);
+    connect(ui->chiller_lpmEdit, &QDoubleSpinBox::textChanged, this, &EditEquipment::is_changed);
+    connect(ui->chiller_lossEdit, &QDoubleSpinBox::textChanged, this, &EditEquipment::is_changed);
 
     calcBatchVolume();
     ui->saveButton->setEnabled(false);
@@ -159,6 +171,7 @@
 void EditEquipment::on_saveButton_clicked()
 {
     QSqlQuery query;
+    QString sql = "";
 
     /* If there are errors in the form, show a message and do "return;" */
     if (ui->nameEdit->text().length() < 2) {
@@ -167,27 +180,26 @@
     }
 
     if (this->textIsChanged) {
-    	if (this->recno == -1) {
-    	    query.prepare("INSERT INTO inventory_equipments SET name=:name, boil_size=:boil_size, "
+	if (this->recno == -1) {
+	    sql = "INSERT INTO";
+	} else {
+	    sql = "UPDATE";
+	}
+	sql.append(" inventory_equipments SET name=:name, boil_size=:boil_size, "
 		"batch_size=:batch_size, tun_volume=:tun_volume, tun_weight=:tun_weight, "
 		"tun_specific_heat=:tun_specific_heat, tun_material=:tun_material, tun_height=:tun_height, "
-		"top_up_water=:top_up_water, trub_chiller_loss=:chiller_loss, evap_rate=:evap_rate, "
+		"top_up_water=:top_up_water, trub_chiller_loss=:trub_loss, evap_rate=:evap_rate, "
 		"boil_time=:boil_time, calc_boil_volume=:calcboil, top_up_kettle=:top_up_kettle, "
-		"hop_utilization=:hopfactor, notes=:notes, lauter_volume=:lauter_volume, "
-		"lauter_height=:lauter_height, lauter_deadspace=:lauter_deadspace, kettle_volume=:kettle_volume, "
+		"notes=:notes, lauter_deadspace=:lauter_deadspace, kettle_volume=:kettle_volume, "
 		"kettle_height=:kettle_height, mash_volume=:mash_volume, mash_max=:mash_max, "
-		"efficiency=:efficiency, uuid=:uuid");
-    	} else {
-	    query.prepare("UPDATE inventory_equipments SET name=:name, boil_size=:boil_size, "
-		"batch_size=:batch_size, tun_volume=:tun_volume, tun_weight=:tun_weight, "
-                "tun_specific_heat=:tun_specific_heat, tun_material=:tun_material, tun_height=:tun_height, "
-                "top_up_water=:top_up_water, trub_chiller_loss=:chiller_loss, evap_rate=:evap_rate, "
-                "boil_time=:boil_time, calc_boil_volume=:calcboil, top_up_kettle=:top_up_kettle, "
-                "hop_utilization=:hopfactor, notes=:notes, lauter_volume=:lauter_volume, "
-                "lauter_height=:lauter_height, lauter_deadspace=:lauter_deadspace, kettle_volume=:kettle_volume, "
-		"kettle_height=:kettle_height, mash_volume=:mash_volume, mash_max=:mash_max, "
-                "efficiency=:efficiency WHERE record=:recno");
-    	}
+		"efficiency=:efficiency, chiller_type=:chiller_type, chiller_to79=:chiller_to79, "
+		"chiller_volume=:chiller_volume, chiller_lpm=:chiller_lpm, chiller_loss=:chiller_loss");
+	if (this->recno == -1) {
+	    sql.append(", uuid=:uuid");
+	} else {
+	    sql.append(" WHERE record = :recno");
+	}
+	query.prepare(sql);
 	query.bindValue(":name", ui->nameEdit->text());
 	query.bindValue(":boil_size", QString("%1").arg(ui->boil_sizeEdit->value(), 2, 'f', 1, '0'));
 	query.bindValue(":batch_size", QString("%1").arg(ui->batch_sizeEdit->value(), 3, 'f', 2, '0'));
@@ -197,21 +209,24 @@
 	query.bindValue(":tun_material", ui->tun_materialEdit->currentIndex());
 	query.bindValue(":tun_height", QString("%1").arg(ui->tun_heightEdit->value() / 100, 4, 'f', 3, '0'));
 	query.bindValue(":top_up_water", QString("%1").arg(ui->top_up_waterEdit->value(), 2, 'f', 1, '0'));
-	query.bindValue(":chiller_loss", QString("%1").arg(ui->chiller_lossEdit->value(), 2, 'f', 1, '0'));
+	query.bindValue(":trub_loss", QString("%1").arg(ui->trub_lossEdit->value(), 2, 'f', 1, '0'));
 	query.bindValue(":evap_rate", QString("%1").arg(ui->evap_rateEdit->value(), 3, 'f', 2, '0'));
 	query.bindValue(":boil_time", QString("%1").arg(ui->boil_timeEdit->value(), 1, 'f', 0, '0'));
 	query.bindValue(":calcboil", ui->calcboilEdit->isChecked() ? 1:0);
 	query.bindValue(":top_up_kettle", QString("%1").arg(ui->top_up_kettleEdit->value(), 2, 'f', 1, '0'));
-	query.bindValue(":hopfactor", QString("%1").arg(ui->hopfactorEdit->value(), 1, 'f', 0, '0'));
 	query.bindValue(":notes", ui->notesEdit->toPlainText());
-	query.bindValue(":lauter_volume", QString("%1").arg(ui->lauter_volumeEdit->value(), 2, 'f', 1, '0'));
-	query.bindValue(":lauter_height", QString("%1").arg(ui->lauter_heightEdit->value() / 100, 4, 'f', 3, '0'));
 	query.bindValue(":lauter_deadspace", QString("%1").arg(ui->lauter_deadspaceEdit->value(), 2, 'f', 1, '0'));
 	query.bindValue(":kettle_volume", QString("%1").arg(ui->kettle_volumeEdit->value(), 2, 'f', 1, '0'));
 	query.bindValue(":kettle_height", QString("%1").arg(ui->kettle_heightEdit->value() / 100, 4, 'f', 3, '0'));
 	query.bindValue(":mash_volume", QString("%1").arg(ui->mash_volumeEdit->value(), 2, 'f', 1, '0'));
 	query.bindValue(":mash_max", QString("%1").arg(ui->mash_maxEdit->value(), 2, 'f', 1, '0'));
 	query.bindValue(":efficiency", QString("%1").arg(ui->efficiencyEdit->value(), 2, 'f', 1, '0'));
+	query.bindValue(":chiller_type", ui->chiller_typeEdit->currentIndex());
+	query.bindValue(":chiller_to79", QString("%1").arg(ui->chiller_to79Edit->value(), 1, 'f', 0, '0'));
+	query.bindValue(":chiller_volume", QString("%1").arg(ui->chiller_volumeEdit->value(), 3, 'f', 2, '0'));
+	query.bindValue(":chiller_lpm", QString("%1").arg(ui->chiller_lpmEdit->value(), 3, 'f', 2, '0'));
+	query.bindValue(":chiller_loss", QString("%1").arg(ui->chiller_lossEdit->value(), 3, 'f', 2, '0'));
+
 	if (this->recno == -1) {
             query.bindValue(":uuid", QUuid::createUuid().toString().mid(1, 36));
         } else {
@@ -243,12 +258,12 @@
     query.prepare("INSERT INTO inventory_equipments SET name=:name, boil_size=:boil_size, "
                 "batch_size=:batch_size, tun_volume=:tun_volume, tun_weight=:tun_weight, "
                 "tun_specific_heat=:tun_specific_heat, tun_material=:tun_material, tun_height=:tun_height, "
-                "top_up_water=:top_up_water, trub_chiller_loss=:chiller_loss, evap_rate=:evap_rate, "
+                "top_up_water=:top_up_water, trub_chiller_loss=:trub_loss, evap_rate=:evap_rate, "
                 "boil_time=:boil_time, calc_boil_volume=:calcboil, top_up_kettle=:top_up_kettle, "
-                "hop_utilization=:hopfactor, notes=:notes, lauter_volume=:lauter_volume, "
-                "lauter_height=:lauter_height, lauter_deadspace=:lauter_deadspace, kettle_volume=:kettle_volume, "
+                "notes=:notes, lauter_deadspace=:lauter_deadspace, kettle_volume=:kettle_volume, "
                 "kettle_height=:kettle_height, mash_volume=:mash_volume, mash_max=:mash_max, "
-                "efficiency=:efficiency, uuid=:uuid");
+                "efficiency=:efficiency, chiller_type=:chiller_type, chiller_to79=:chiller_to79, "
+                "chiller_volume=:chiller_volume, chiller_lpm=:chiller_lpm, chiller_loss=:chiller_loss, uuid=:uuid");
 
     query.bindValue(":name", ui->nameEdit->text() + " [copy]");
     query.bindValue(":boil_size", QString("%1").arg(ui->boil_sizeEdit->value(), 2, 'f', 1, '0'));
@@ -259,15 +274,12 @@
     query.bindValue(":tun_material", ui->tun_materialEdit->currentIndex());
     query.bindValue(":tun_height", QString("%1").arg(ui->tun_heightEdit->value() / 100, 4, 'f', 3, '0'));
     query.bindValue(":top_up_water", QString("%1").arg(ui->top_up_waterEdit->value(), 2, 'f', 1, '0'));
-    query.bindValue(":chiller_loss", QString("%1").arg(ui->chiller_lossEdit->value(), 2, 'f', 1, '0'));
+    query.bindValue(":trub_loss", QString("%1").arg(ui->trub_lossEdit->value(), 2, 'f', 1, '0'));
     query.bindValue(":evap_rate", QString("%1").arg(ui->evap_rateEdit->value(), 3, 'f', 2, '0'));
     query.bindValue(":boil_time", QString("%1").arg(ui->boil_timeEdit->value(), 1, 'f', 0, '0'));
     query.bindValue(":calcboil", ui->calcboilEdit->isChecked() ? 1:0);
     query.bindValue(":top_up_kettle", QString("%1").arg(ui->top_up_kettleEdit->value(), 2, 'f', 1, '0'));
-    query.bindValue(":hopfactor", QString("%1").arg(ui->hopfactorEdit->value(), 1, 'f', 0, '0'));
     query.bindValue(":notes", ui->notesEdit->toPlainText());
-    query.bindValue(":lauter_volume", QString("%1").arg(ui->lauter_volumeEdit->value(), 2, 'f', 1, '0'));
-    query.bindValue(":lauter_height", QString("%1").arg(ui->lauter_heightEdit->value() / 100, 4, 'f', 3, '0'));
     query.bindValue(":lauter_deadspace", QString("%1").arg(ui->lauter_deadspaceEdit->value(), 2, 'f', 1, '0'));
     query.bindValue(":kettle_volume", QString("%1").arg(ui->kettle_volumeEdit->value(), 2, 'f', 1, '0'));
     query.bindValue(":kettle_height", QString("%1").arg(ui->kettle_heightEdit->value() / 100, 4, 'f', 3, '0'));
@@ -275,6 +287,11 @@
     query.bindValue(":mash_max", QString("%1").arg(ui->mash_maxEdit->value(), 2, 'f', 1, '0'));
     query.bindValue(":efficiency", QString("%1").arg(ui->efficiencyEdit->value(), 2, 'f', 1, '0'));
     query.bindValue(":uuid", QUuid::createUuid().toString().mid(1, 36));
+    query.bindValue(":chiller_type", ui->chiller_typeEdit->currentIndex());
+    query.bindValue(":chiller_to79", QString("%1").arg(ui->chiller_to79Edit->value(), 1, 'f', 0, '0'));
+    query.bindValue(":chiller_volume", QString("%1").arg(ui->chiller_volumeEdit->value(), 3, 'f', 2, '0'));
+    query.bindValue(":chiller_lpm", QString("%1").arg(ui->chiller_lpmEdit->value(), 3, 'f', 2, '0'));
+    query.bindValue(":chiller_loss", QString("%1").arg(ui->chiller_lossEdit->value(), 3, 'f', 2, '0'));
     query.exec();
     if (query.lastError().isValid()) {
 	qWarning() << "EditEquipment" << query.lastError();
@@ -320,8 +337,10 @@
 void EditEquipment::calcBatchVolume()
 {
     double batch = ui->boil_sizeEdit->value() - (ui->evap_rateEdit->value() * ui->boil_timeEdit->value() / 60) + ui->top_up_kettleEdit->value();
-    double fermenter = round(((batch / 1.04) + ui->top_up_waterEdit->value() - ui->chiller_lossEdit->value()) * 100) / 100.0;
+    double fermenter = round(((batch / 1.04) + ui->top_up_waterEdit->value() - ui->trub_lossEdit->value() - ui->chiller_lossEdit->value()) * 100) / 100.0;
     batch = round(batch * 100) / 100.0;
+    if (ui->batch_sizeEdit->value() != batch)
+    	qDebug() << "Batch volue updated to" << batch;
     ui->batch_sizeEdit->setValue(batch);
     ui->vol_fermenterEdit->setValue(fermenter);
 }
@@ -349,6 +368,76 @@
 }
 
 
+void EditEquipment::chiller_setup(int val)
+{
+    if (val == CHILLER_TYPE_IMMERSION) {
+	ui->chiller_volumeEdit->setReadOnly(false);
+	ui->chiller_volumeEdit->setButtonSymbols(QAbstractSpinBox::UpDownArrows);
+	ui->chiller_volumeEdit->setFixedSize(101, 24);
+	if (ui->chiller_volumeEdit->value() == 0)
+	    ui->chiller_volumeEdit->setValue(0.5);
+    } else {
+	ui->chiller_volumeEdit->setReadOnly(true);
+	ui->chiller_volumeEdit->setButtonSymbols(QAbstractSpinBox::NoButtons);
+	ui->chiller_volumeEdit->setFixedSize(86, 24);
+	ui->chiller_volumeEdit->setValue(0);
+    }
+
+    if (val == CHILLER_TYPE_COUNTERFLOW) {
+	ui->chiller_to79Edit->setReadOnly(true);
+	ui->chiller_to79Edit->setButtonSymbols(QAbstractSpinBox::NoButtons);
+        ui->chiller_to79Edit->setFixedSize(86, 24);
+	ui->chiller_to79Edit->setValue(0);
+
+	ui->chiller_lpmEdit->setReadOnly(false);
+        ui->chiller_lpmEdit->setButtonSymbols(QAbstractSpinBox::UpDownArrows);
+        ui->chiller_lpmEdit->setFixedSize(101, 24);
+        if (ui->chiller_lpmEdit->value() == 0)
+             ui->chiller_lpmEdit->setValue(2.5);
+
+        ui->chiller_lossEdit->setReadOnly(false);
+        ui->chiller_lossEdit->setButtonSymbols(QAbstractSpinBox::UpDownArrows);
+        ui->chiller_lossEdit->setFixedSize(101, 24);
+        if (ui->chiller_lossEdit->value() == 0)
+             ui->chiller_lossEdit->setValue(3);
+
+    } else {
+	ui->chiller_to79Edit->setReadOnly(false);
+	ui->chiller_to79Edit->setButtonSymbols(QAbstractSpinBox::UpDownArrows);
+        ui->chiller_to79Edit->setFixedSize(101, 24);
+	int time = 5;
+	if (val == CHILLER_TYPE_AUBAINMARIE)
+	    time = 20;
+	if (val == CHILLER_TYPE_NOCHILL)
+	    time = 240;
+	if (ui->chiller_to79Edit->value() == 0)
+	    ui->chiller_to79Edit->setValue(time);
+
+	ui->chiller_lpmEdit->setReadOnly(true);
+        ui->chiller_lpmEdit->setButtonSymbols(QAbstractSpinBox::NoButtons);
+        ui->chiller_lpmEdit->setFixedSize(86, 24);
+        ui->chiller_lpmEdit->setValue(0);
+
+        ui->chiller_lossEdit->setReadOnly(true);
+        ui->chiller_lossEdit->setButtonSymbols(QAbstractSpinBox::NoButtons);
+        ui->chiller_lossEdit->setFixedSize(86, 24);
+        ui->chiller_lossEdit->setValue(0);
+    }
+}
+
+
+void EditEquipment::chiller_changed()
+{
+    const QSignalBlocker blocker1(ui->chiller_to79Edit);
+    const QSignalBlocker blocker2(ui->chiller_volumeEdit);
+    const QSignalBlocker blocker3(ui->chiller_lpmEdit);
+    const QSignalBlocker blocker4(ui->chiller_lossEdit);
+
+    chiller_setup(ui->chiller_typeEdit->currentIndex());
+    is_changed();
+}
+
+
 void EditEquipment::on_quitButton_clicked()
 {
     if (this->textIsChanged) {
--- a/src/EditEquipment.h	Fri Oct 21 17:01:20 2022 +0200
+++ b/src/EditEquipment.h	Mon Oct 24 15:25:50 2022 +0200
@@ -26,6 +26,8 @@
     void on_deleteButton_clicked();
     void is_changed();
     void material_changed();
+    void chiller_setup(int val);
+    void chiller_changed();
 
 private:
     Ui::EditEquipment *ui;
--- a/src/PrinterDialog.cpp	Fri Oct 21 17:01:20 2022 +0200
+++ b/src/PrinterDialog.cpp	Mon Oct 24 15:25:50 2022 +0200
@@ -1798,7 +1798,7 @@
 	   lines = 3;
 	} else {
 	   lines = 5;
-	   if (product->brew_cooling_method == CHILLER_TYPE_EMERSION)
+	   if (product->brew_cooling_method == CHILLER_TYPE_IMMERSION)
 		lines++;
 	   for (int i = 0; i < product->fermentables.size(); i++) {
 		if (product->fermentables.at(i).added == FERMENTABLE_ADDED_BOIL)
@@ -1832,8 +1832,8 @@
 				.arg(product->fermentables.at(j).amount * factor, 1, 'f', 3)
 				.arg(product->fermentables.at(j).name));
 		    }
-		    if (product->brew_cooling_method == CHILLER_TYPE_EMERSION)
-			checkLine(&painter, &y, QString(tr("Place emersion chiller at 10 minutes before end of boil")));
+		    if (product->brew_cooling_method == CHILLER_TYPE_IMMERSION)
+			checkLine(&painter, &y, QString(tr("Place immersion chiller at 10 minutes before end of boil")));
 		}
 		for (int j = 0; j < product->hops.size(); j++) {
 		    if ((product->hops.at(j).useat == HOP_USEAT_BOIL || product->hops.at(j).useat == HOP_USEAT_AROMA) && product->hops.at(j).time == i) {
--- a/src/global.cpp	Fri Oct 21 17:01:20 2022 +0200
+++ b/src/global.cpp	Mon Oct 24 15:25:50 2022 +0200
@@ -75,10 +75,10 @@
 
 const char * const g_chiller_types[5] = {
     QT_TRANSLATE_NOOP("ChillerType", "-"),
-    QT_TRANSLATE_NOOP("ChillerType", "Emersion chiller"),
-    QT_TRANSLATE_NOOP("ChillerType", "Counterflow chiller"),
+    QT_TRANSLATE_NOOP("ChillerType", "Immersion"),
+    QT_TRANSLATE_NOOP("ChillerType", "Counterflow"),
     QT_TRANSLATE_NOOP("ChillerType", "Au bain marie"),
-    QT_TRANSLATE_NOOP("ChillerType", "Natural")
+    QT_TRANSLATE_NOOP("ChillerType", "No-chill")
 };
 
 const char * const g_fermentable_types[5] = {
--- a/src/global.h	Fri Oct 21 17:01:20 2022 +0200
+++ b/src/global.h	Mon Oct 24 15:25:50 2022 +0200
@@ -721,10 +721,10 @@
 
 enum ChillerTypes {
 	CHILLER_TYPE_NONE,
-	CHILLER_TYPE_EMERSION,
+	CHILLER_TYPE_IMMERSION,
 	CHILLER_TYPE_COUNTERFLOW,
 	CHILLER_TYPE_AUBAINMARIE,
-	CHILLER_TYPE_NATURAL
+	CHILLER_TYPE_NOCHILL
 };
 
 extern const char * g_ibu_method[3];
--- a/ui/EditEquipment.ui	Fri Oct 21 17:01:20 2022 +0200
+++ b/ui/EditEquipment.ui	Mon Oct 24 15:25:50 2022 +0200
@@ -172,10 +172,10 @@
      <widget class="QGroupBox" name="mashGroup">
       <property name="geometry">
        <rect>
-        <x>70</x>
+        <x>10</x>
         <y>110</y>
-        <width>401</width>
-        <height>251</height>
+        <width>321</width>
+        <height>241</height>
        </rect>
       </property>
       <property name="title">
@@ -190,9 +190,9 @@
       <widget class="QDoubleSpinBox" name="tun_volumeEdit">
        <property name="geometry">
         <rect>
-         <x>200</x>
-         <y>30</y>
-         <width>121</width>
+         <x>190</x>
+         <y>20</y>
+         <width>101</width>
          <height>24</height>
         </rect>
        </property>
@@ -219,8 +219,8 @@
        <property name="geometry">
         <rect>
          <x>10</x>
-         <y>30</y>
-         <width>181</width>
+         <y>20</y>
+         <width>171</width>
          <height>20</height>
         </rect>
        </property>
@@ -235,8 +235,8 @@
        <property name="geometry">
         <rect>
          <x>10</x>
-         <y>60</y>
-         <width>181</width>
+         <y>50</y>
+         <width>171</width>
          <height>20</height>
         </rect>
        </property>
@@ -251,8 +251,8 @@
        <property name="geometry">
         <rect>
          <x>10</x>
-         <y>90</y>
-         <width>181</width>
+         <y>80</y>
+         <width>171</width>
          <height>20</height>
         </rect>
        </property>
@@ -267,8 +267,8 @@
        <property name="geometry">
         <rect>
          <x>10</x>
-         <y>120</y>
-         <width>181</width>
+         <y>110</y>
+         <width>171</width>
          <height>20</height>
         </rect>
        </property>
@@ -283,8 +283,8 @@
        <property name="geometry">
         <rect>
          <x>10</x>
-         <y>150</y>
-         <width>181</width>
+         <y>140</y>
+         <width>171</width>
          <height>20</height>
         </rect>
        </property>
@@ -299,8 +299,8 @@
        <property name="geometry">
         <rect>
          <x>10</x>
-         <y>180</y>
-         <width>181</width>
+         <y>170</y>
+         <width>171</width>
          <height>20</height>
         </rect>
        </property>
@@ -315,8 +315,8 @@
        <property name="geometry">
         <rect>
          <x>10</x>
-         <y>210</y>
-         <width>181</width>
+         <y>200</y>
+         <width>171</width>
          <height>20</height>
         </rect>
        </property>
@@ -330,9 +330,9 @@
       <widget class="QDoubleSpinBox" name="tun_heightEdit">
        <property name="geometry">
         <rect>
-         <x>200</x>
-         <y>60</y>
-         <width>121</width>
+         <x>190</x>
+         <y>50</y>
+         <width>101</width>
          <height>24</height>
         </rect>
        </property>
@@ -358,9 +358,9 @@
       <widget class="QDoubleSpinBox" name="tun_weightEdit">
        <property name="geometry">
         <rect>
-         <x>200</x>
-         <y>90</y>
-         <width>121</width>
+         <x>190</x>
+         <y>80</y>
+         <width>101</width>
          <height>24</height>
         </rect>
        </property>
@@ -386,8 +386,8 @@
       <widget class="QDoubleSpinBox" name="tun_specific_heatEdit">
        <property name="geometry">
         <rect>
-         <x>200</x>
-         <y>150</y>
+         <x>190</x>
+         <y>140</y>
          <width>71</width>
          <height>24</height>
         </rect>
@@ -423,9 +423,9 @@
       <widget class="QDoubleSpinBox" name="mash_volumeEdit">
        <property name="geometry">
         <rect>
-         <x>200</x>
-         <y>180</y>
-         <width>121</width>
+         <x>190</x>
+         <y>170</y>
+         <width>101</width>
          <height>24</height>
         </rect>
        </property>
@@ -451,9 +451,9 @@
       <widget class="QDoubleSpinBox" name="mash_maxEdit">
        <property name="geometry">
         <rect>
-         <x>200</x>
-         <y>210</y>
-         <width>121</width>
+         <x>190</x>
+         <y>200</y>
+         <width>101</width>
          <height>24</height>
         </rect>
        </property>
@@ -479,8 +479,8 @@
       <widget class="QComboBox" name="tun_materialEdit">
        <property name="geometry">
         <rect>
-         <x>200</x>
-         <y>120</y>
+         <x>190</x>
+         <y>110</y>
          <width>121</width>
          <height>23</height>
         </rect>
@@ -490,10 +490,10 @@
      <widget class="QGroupBox" name="lauterGroup">
       <property name="geometry">
        <rect>
-        <x>70</x>
-        <y>370</y>
-        <width>401</width>
-        <height>161</height>
+        <x>10</x>
+        <y>380</y>
+        <width>321</width>
+        <height>91</height>
        </rect>
       </property>
       <property name="title">
@@ -502,44 +502,12 @@
       <property name="alignment">
        <set>Qt::AlignCenter</set>
       </property>
-      <widget class="QLabel" name="lauter_volumeLabel">
-       <property name="geometry">
-        <rect>
-         <x>10</x>
-         <y>30</y>
-         <width>181</width>
-         <height>20</height>
-        </rect>
-       </property>
-       <property name="text">
-        <string>Lauter volume L:</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
-      <widget class="QLabel" name="lauter_heightLabel">
-       <property name="geometry">
-        <rect>
-         <x>10</x>
-         <y>60</y>
-         <width>181</width>
-         <height>20</height>
-        </rect>
-       </property>
-       <property name="text">
-        <string>Lauter height cm:</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
       <widget class="QLabel" name="lauter_deadspaceLabel">
        <property name="geometry">
         <rect>
          <x>10</x>
-         <y>90</y>
-         <width>181</width>
+         <y>20</y>
+         <width>171</width>
          <height>20</height>
         </rect>
        </property>
@@ -554,8 +522,8 @@
        <property name="geometry">
         <rect>
          <x>10</x>
-         <y>120</y>
-         <width>181</width>
+         <y>50</y>
+         <width>171</width>
          <height>20</height>
         </rect>
        </property>
@@ -566,68 +534,12 @@
         <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
        </property>
       </widget>
-      <widget class="QDoubleSpinBox" name="lauter_volumeEdit">
-       <property name="geometry">
-        <rect>
-         <x>200</x>
-         <y>30</y>
-         <width>121</width>
-         <height>24</height>
-        </rect>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-       <property name="accelerated">
-        <bool>true</bool>
-       </property>
-       <property name="decimals">
-        <number>1</number>
-       </property>
-       <property name="maximum">
-        <double>100000.000000000000000</double>
-       </property>
-       <property name="singleStep">
-        <double>0.500000000000000</double>
-       </property>
-       <property name="stepType">
-        <enum>QAbstractSpinBox::DefaultStepType</enum>
-       </property>
-      </widget>
-      <widget class="QDoubleSpinBox" name="lauter_heightEdit">
-       <property name="geometry">
-        <rect>
-         <x>200</x>
-         <y>60</y>
-         <width>121</width>
-         <height>24</height>
-        </rect>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-       <property name="accelerated">
-        <bool>true</bool>
-       </property>
-       <property name="decimals">
-        <number>1</number>
-       </property>
-       <property name="maximum">
-        <double>100000.000000000000000</double>
-       </property>
-       <property name="singleStep">
-        <double>0.500000000000000</double>
-       </property>
-       <property name="stepType">
-        <enum>QAbstractSpinBox::DefaultStepType</enum>
-       </property>
-      </widget>
       <widget class="QDoubleSpinBox" name="lauter_deadspaceEdit">
        <property name="geometry">
         <rect>
-         <x>200</x>
-         <y>90</y>
-         <width>121</width>
+         <x>190</x>
+         <y>20</y>
+         <width>101</width>
          <height>24</height>
         </rect>
        </property>
@@ -653,9 +565,9 @@
       <widget class="QDoubleSpinBox" name="efficiencyEdit">
        <property name="geometry">
         <rect>
-         <x>200</x>
-         <y>120</y>
-         <width>121</width>
+         <x>190</x>
+         <y>50</y>
+         <width>101</width>
          <height>24</height>
         </rect>
        </property>
@@ -682,10 +594,10 @@
      <widget class="QGroupBox" name="boilGroup">
       <property name="geometry">
        <rect>
-        <x>530</x>
+        <x>340</x>
         <y>110</y>
-        <width>401</width>
-        <height>281</height>
+        <width>321</width>
+        <height>271</height>
        </rect>
       </property>
       <property name="title">
@@ -695,8 +607,8 @@
        <property name="geometry">
         <rect>
          <x>10</x>
-         <y>30</y>
-         <width>181</width>
+         <y>20</y>
+         <width>171</width>
          <height>20</height>
         </rect>
        </property>
@@ -710,9 +622,9 @@
       <widget class="QDoubleSpinBox" name="kettle_volumeEdit">
        <property name="geometry">
         <rect>
-         <x>200</x>
-         <y>30</y>
-         <width>121</width>
+         <x>190</x>
+         <y>20</y>
+         <width>101</width>
          <height>24</height>
         </rect>
        </property>
@@ -739,13 +651,13 @@
        <property name="geometry">
         <rect>
          <x>10</x>
-         <y>60</y>
-         <width>181</width>
+         <y>50</y>
+         <width>171</width>
          <height>20</height>
         </rect>
        </property>
        <property name="text">
-        <string>Kettle heigh cmt:</string>
+        <string>Kettle height cm:</string>
        </property>
        <property name="alignment">
         <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
@@ -754,9 +666,9 @@
       <widget class="QDoubleSpinBox" name="kettle_heightEdit">
        <property name="geometry">
         <rect>
-         <x>200</x>
-         <y>60</y>
-         <width>121</width>
+         <x>190</x>
+         <y>50</y>
+         <width>101</width>
          <height>24</height>
         </rect>
        </property>
@@ -783,8 +695,8 @@
        <property name="geometry">
         <rect>
          <x>10</x>
-         <y>90</y>
-         <width>181</width>
+         <y>110</y>
+         <width>171</width>
          <height>20</height>
         </rect>
        </property>
@@ -798,9 +710,9 @@
       <widget class="QDoubleSpinBox" name="boil_sizeEdit">
        <property name="geometry">
         <rect>
-         <x>200</x>
-         <y>90</y>
-         <width>121</width>
+         <x>190</x>
+         <y>110</y>
+         <width>101</width>
          <height>24</height>
         </rect>
        </property>
@@ -827,8 +739,8 @@
        <property name="geometry">
         <rect>
          <x>10</x>
-         <y>120</y>
-         <width>181</width>
+         <y>140</y>
+         <width>171</width>
          <height>20</height>
         </rect>
        </property>
@@ -843,8 +755,8 @@
        <property name="geometry">
         <rect>
          <x>10</x>
-         <y>150</y>
-         <width>181</width>
+         <y>170</y>
+         <width>171</width>
          <height>20</height>
         </rect>
        </property>
@@ -859,8 +771,8 @@
        <property name="geometry">
         <rect>
          <x>10</x>
-         <y>180</y>
-         <width>181</width>
+         <y>200</y>
+         <width>171</width>
          <height>20</height>
         </rect>
        </property>
@@ -871,28 +783,12 @@
         <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
        </property>
       </widget>
-      <widget class="QLabel" name="hopfactorLabel">
-       <property name="geometry">
-        <rect>
-         <x>10</x>
-         <y>210</y>
-         <width>181</width>
-         <height>20</height>
-        </rect>
-       </property>
-       <property name="text">
-        <string>Hop utilization %:</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
       <widget class="QLabel" name="batch_sizeLabel">
        <property name="geometry">
         <rect>
          <x>10</x>
-         <y>240</y>
-         <width>181</width>
+         <y>230</y>
+         <width>171</width>
          <height>20</height>
         </rect>
        </property>
@@ -906,9 +802,9 @@
       <widget class="QDoubleSpinBox" name="evap_rateEdit">
        <property name="geometry">
         <rect>
-         <x>200</x>
-         <y>120</y>
-         <width>121</width>
+         <x>190</x>
+         <y>140</y>
+         <width>101</width>
          <height>24</height>
         </rect>
        </property>
@@ -934,9 +830,9 @@
       <widget class="QDoubleSpinBox" name="boil_timeEdit">
        <property name="geometry">
         <rect>
-         <x>200</x>
-         <y>150</y>
-         <width>121</width>
+         <x>190</x>
+         <y>170</y>
+         <width>101</width>
          <height>24</height>
         </rect>
        </property>
@@ -962,9 +858,9 @@
       <widget class="QDoubleSpinBox" name="top_up_kettleEdit">
        <property name="geometry">
         <rect>
-         <x>200</x>
-         <y>180</y>
-         <width>121</width>
+         <x>190</x>
+         <y>200</y>
+         <width>101</width>
          <height>24</height>
         </rect>
        </property>
@@ -987,43 +883,12 @@
         <enum>QAbstractSpinBox::DefaultStepType</enum>
        </property>
       </widget>
-      <widget class="QDoubleSpinBox" name="hopfactorEdit">
-       <property name="geometry">
-        <rect>
-         <x>200</x>
-         <y>210</y>
-         <width>121</width>
-         <height>24</height>
-        </rect>
-       </property>
-       <property name="toolTip">
-        <string>100% for small breweries, higher for large breweries.</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-       <property name="accelerated">
-        <bool>true</bool>
-       </property>
-       <property name="decimals">
-        <number>0</number>
-       </property>
-       <property name="maximum">
-        <double>200.000000000000000</double>
-       </property>
-       <property name="singleStep">
-        <double>1.000000000000000</double>
-       </property>
-       <property name="stepType">
-        <enum>QAbstractSpinBox::DefaultStepType</enum>
-       </property>
-      </widget>
       <widget class="QDoubleSpinBox" name="batch_sizeEdit">
        <property name="geometry">
         <rect>
-         <x>200</x>
-         <y>240</y>
-         <width>107</width>
+         <x>190</x>
+         <y>230</y>
+         <width>86</width>
          <height>24</height>
         </rect>
        </property>
@@ -1052,44 +917,28 @@
         <enum>QAbstractSpinBox::DefaultStepType</enum>
        </property>
       </widget>
-     </widget>
-     <widget class="QGroupBox" name="chillGroup">
-      <property name="geometry">
-       <rect>
-        <x>530</x>
-        <y>400</y>
-        <width>401</width>
-        <height>131</height>
-       </rect>
-      </property>
-      <property name="title">
-       <string>Chilling</string>
-      </property>
-      <property name="alignment">
-       <set>Qt::AlignCenter</set>
-      </property>
-      <widget class="QLabel" name="chiller_lossLabel">
+      <widget class="QLabel" name="trub_lossLabel">
        <property name="geometry">
         <rect>
          <x>10</x>
-         <y>30</y>
-         <width>181</width>
+         <y>80</y>
+         <width>171</width>
          <height>20</height>
         </rect>
        </property>
        <property name="text">
-        <string>Trub chiller loss L:</string>
+        <string>Kettle trub loss L:</string>
        </property>
        <property name="alignment">
         <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
        </property>
       </widget>
-      <widget class="QDoubleSpinBox" name="chiller_lossEdit">
+      <widget class="QDoubleSpinBox" name="trub_lossEdit">
        <property name="geometry">
         <rect>
-         <x>200</x>
-         <y>30</y>
-         <width>121</width>
+         <x>190</x>
+         <y>80</y>
+         <width>101</width>
          <height>24</height>
         </rect>
        </property>
@@ -1112,12 +961,28 @@
         <enum>QAbstractSpinBox::DefaultStepType</enum>
        </property>
       </widget>
+     </widget>
+     <widget class="QGroupBox" name="transferGroup">
+      <property name="geometry">
+       <rect>
+        <x>670</x>
+        <y>380</y>
+        <width>321</width>
+        <height>91</height>
+       </rect>
+      </property>
+      <property name="title">
+       <string>Transfer</string>
+      </property>
+      <property name="alignment">
+       <set>Qt::AlignCenter</set>
+      </property>
       <widget class="QLabel" name="top_up_waterLabel">
        <property name="geometry">
         <rect>
          <x>10</x>
-         <y>60</y>
-         <width>181</width>
+         <y>20</y>
+         <width>171</width>
          <height>20</height>
         </rect>
        </property>
@@ -1132,8 +997,8 @@
        <property name="geometry">
         <rect>
          <x>10</x>
-         <y>90</y>
-         <width>181</width>
+         <y>50</y>
+         <width>171</width>
          <height>20</height>
         </rect>
        </property>
@@ -1147,9 +1012,9 @@
       <widget class="QDoubleSpinBox" name="top_up_waterEdit">
        <property name="geometry">
         <rect>
-         <x>200</x>
-         <y>60</y>
-         <width>121</width>
+         <x>190</x>
+         <y>20</y>
+         <width>101</width>
          <height>24</height>
         </rect>
        </property>
@@ -1175,9 +1040,9 @@
       <widget class="QDoubleSpinBox" name="vol_fermenterEdit">
        <property name="geometry">
         <rect>
-         <x>200</x>
-         <y>90</y>
-         <width>107</width>
+         <x>190</x>
+         <y>50</y>
+         <width>86</width>
          <height>24</height>
         </rect>
        </property>
@@ -1224,6 +1089,244 @@
         <normaloff>:/icons/silk/disk_multiple.png</normaloff>:/icons/silk/disk_multiple.png</iconset>
       </property>
      </widget>
+     <widget class="QGroupBox" name="chillerGroup">
+      <property name="geometry">
+       <rect>
+        <x>670</x>
+        <y>110</y>
+        <width>321</width>
+        <height>181</height>
+       </rect>
+      </property>
+      <property name="title">
+       <string>Chilling</string>
+      </property>
+      <widget class="QLabel" name="chiller_typeLabel">
+       <property name="geometry">
+        <rect>
+         <x>10</x>
+         <y>20</y>
+         <width>171</width>
+         <height>20</height>
+        </rect>
+       </property>
+       <property name="text">
+        <string>Wort chiller type:</string>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+       </property>
+      </widget>
+      <widget class="QComboBox" name="chiller_typeEdit">
+       <property name="geometry">
+        <rect>
+         <x>190</x>
+         <y>20</y>
+         <width>121</width>
+         <height>23</height>
+        </rect>
+       </property>
+      </widget>
+      <widget class="QDoubleSpinBox" name="chiller_to79Edit">
+       <property name="geometry">
+        <rect>
+         <x>190</x>
+         <y>50</y>
+         <width>101</width>
+         <height>24</height>
+        </rect>
+       </property>
+       <property name="toolTip">
+        <string>Minutes elapsed to cool to 79 °C</string>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+       </property>
+       <property name="accelerated">
+        <bool>true</bool>
+       </property>
+       <property name="decimals">
+        <number>0</number>
+       </property>
+       <property name="maximum">
+        <double>100000.000000000000000</double>
+       </property>
+       <property name="singleStep">
+        <double>1.000000000000000</double>
+       </property>
+       <property name="stepType">
+        <enum>QAbstractSpinBox::DefaultStepType</enum>
+       </property>
+      </widget>
+      <widget class="QLabel" name="chiller_to79Label">
+       <property name="geometry">
+        <rect>
+         <x>10</x>
+         <y>50</y>
+         <width>171</width>
+         <height>20</height>
+        </rect>
+       </property>
+       <property name="text">
+        <string>Minutes to cool to 79 °C:</string>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+       </property>
+      </widget>
+      <widget class="QDoubleSpinBox" name="chiller_lossEdit">
+       <property name="geometry">
+        <rect>
+         <x>190</x>
+         <y>110</y>
+         <width>101</width>
+         <height>24</height>
+        </rect>
+       </property>
+       <property name="toolTip">
+        <string>Volume lost in hoses, pump ...</string>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+       </property>
+       <property name="accelerated">
+        <bool>true</bool>
+       </property>
+       <property name="decimals">
+        <number>2</number>
+       </property>
+       <property name="maximum">
+        <double>100.000000000000000</double>
+       </property>
+       <property name="singleStep">
+        <double>0.050000000000000</double>
+       </property>
+       <property name="stepType">
+        <enum>QAbstractSpinBox::DefaultStepType</enum>
+       </property>
+      </widget>
+      <widget class="QLabel" name="chiller_lossLabel">
+       <property name="geometry">
+        <rect>
+         <x>10</x>
+         <y>110</y>
+         <width>171</width>
+         <height>20</height>
+        </rect>
+       </property>
+       <property name="font">
+        <font>
+         <weight>50</weight>
+         <bold>false</bold>
+         <underline>false</underline>
+         <strikeout>false</strikeout>
+         <kerning>true</kerning>
+        </font>
+       </property>
+       <property name="text">
+        <string>Transfer loss L:</string>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+       </property>
+      </widget>
+      <widget class="QLabel" name="chiller_volumeLabel">
+       <property name="geometry">
+        <rect>
+         <x>10</x>
+         <y>80</y>
+         <width>171</width>
+         <height>20</height>
+        </rect>
+       </property>
+       <property name="text">
+        <string>Immersion chiller L:</string>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+       </property>
+      </widget>
+      <widget class="QDoubleSpinBox" name="chiller_volumeEdit">
+       <property name="geometry">
+        <rect>
+         <x>190</x>
+         <y>80</y>
+         <width>101</width>
+         <height>24</height>
+        </rect>
+       </property>
+       <property name="toolTip">
+        <string>Temporary extra volume of the immersion chiller in the kettle.
+Used to correct the after boil volume.</string>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+       </property>
+       <property name="accelerated">
+        <bool>true</bool>
+       </property>
+       <property name="decimals">
+        <number>2</number>
+       </property>
+       <property name="maximum">
+        <double>100.000000000000000</double>
+       </property>
+       <property name="singleStep">
+        <double>0.050000000000000</double>
+       </property>
+       <property name="stepType">
+        <enum>QAbstractSpinBox::DefaultStepType</enum>
+       </property>
+      </widget>
+      <widget class="QDoubleSpinBox" name="chiller_lpmEdit">
+       <property name="geometry">
+        <rect>
+         <x>190</x>
+         <y>140</y>
+         <width>101</width>
+         <height>24</height>
+        </rect>
+       </property>
+       <property name="toolTip">
+        <string>Liters per minute to pump trough the chiller. 
+Used to calculate the time needed to transfer the wort.</string>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+       </property>
+       <property name="accelerated">
+        <bool>true</bool>
+       </property>
+       <property name="decimals">
+        <number>2</number>
+       </property>
+       <property name="maximum">
+        <double>100.000000000000000</double>
+       </property>
+       <property name="singleStep">
+        <double>0.050000000000000</double>
+       </property>
+       <property name="stepType">
+        <enum>QAbstractSpinBox::DefaultStepType</enum>
+       </property>
+      </widget>
+      <widget class="QLabel" name="chiller_lpmLabel">
+       <property name="geometry">
+        <rect>
+         <x>10</x>
+         <y>140</y>
+         <width>171</width>
+         <height>20</height>
+        </rect>
+       </property>
+       <property name="text">
+        <string>Transfer liters/minute:</string>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+       </property>
+      </widget>
+     </widget>
     </widget>
    </item>
   </layout>

mercurial