Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions ideas/parse_database.pl
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,9 @@ sub set_database {
BOIL_SIZE => { column => 'boil_size', type => 'number' },
BATCH_SIZE => { column => 'batch_size', type => 'number' },
TUN_VOLUME => { column => 'tun_volume', type => 'number' },
WHIRLPOOL_TIME => { column => 'whirlpool_time', type => 'number' },
HOP_EST_WHIRLPOOL => { column => 'hop_est_whirlpool',type => 'number' },
TUN_DIAMETER => { column => 'tun_diameter', type => 'number' },
TUN_WEIGHT => { column => 'tun_weight', type => 'number' },
TUN_SPECIFIC_HEAT => { column => 'tun_specific_heat',type => 'number' },
TOP_UP_WATER => { column => 'top_up_water', type => 'number' },
Expand Down
8 changes: 8 additions & 0 deletions src/BtLabel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,9 @@ void BtLabel::initializeMenu()
case DIASTATIC_POWER:
_menu = Brewtarget::setupDiastaticPowerMenu(btParent,unit);
break;
case LENGTH:
_menu = Brewtarget::setupLengthMenu(btParent,unit);;
break;
default:
return;
}
Expand Down Expand Up @@ -241,3 +244,8 @@ BtDiastaticPowerLabel::BtDiastaticPowerLabel(QWidget *parent)
: BtLabel(parent,DIASTATIC_POWER)
{
}

BtLengthLabel::BtLengthLabel(QWidget *parent)
: BtLabel(parent,LENGTH)
{
}
11 changes: 10 additions & 1 deletion src/BtLabel.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ class BtDensityLabel;
class BtMassLabel;
class BtTemperatureLabel;
class BtVolumeLabel;
class BtLengthLabel;
class BtTimeLabel;
class BtMixedLabel;
class BtDateLabel;
Expand Down Expand Up @@ -65,7 +66,8 @@ class BtLabel : public QLabel
TIME,
MIXED,
DATE,
DIASTATIC_POWER
DIASTATIC_POWER,
LENGTH
};

BtLabel(QWidget* parent = 0, LabelType lType = NONE);
Expand Down Expand Up @@ -155,4 +157,11 @@ class BtDiastaticPowerLabel : public BtLabel
BtDiastaticPowerLabel(QWidget* parent = 0);
};

class BtLengthLabel : public BtLabel
{
Q_OBJECT
public:
BtLengthLabel(QWidget* parent = 0);
};

#endif
6 changes: 6 additions & 0 deletions src/BtLineEdit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -409,3 +409,9 @@ BtDiastaticPowerEdit::BtDiastaticPowerEdit(QWidget *parent)
_units = Units::lintner;
}

BtLengthEdit::BtLengthEdit(QWidget *parent)
: BtLineEdit(parent,Unit::Volume)
{
_units = Units::cm;
}

9 changes: 9 additions & 0 deletions src/BtLineEdit.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
class BtGenericEdit;
class BtMassEdit;
class BtVolumeEdit;
class BtLengthEdit;
class BtTemperatureEdit;
class BtTimeEdit;
class BtDensityEdit;
Expand Down Expand Up @@ -199,4 +200,12 @@ class BtDiastaticPowerEdit : public BtLineEdit
BtDiastaticPowerEdit(QWidget* parent);
};

class BtLengthEdit : public BtLineEdit
{
Q_OBJECT

public:
BtLengthEdit(QWidget* parent);
};

#endif
37 changes: 35 additions & 2 deletions src/DatabaseSchemaHelper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
#include <QDebug>
#include <QSqlError>

const int DatabaseSchemaHelper::dbVersion = 7;
const int DatabaseSchemaHelper::dbVersion = 8;

// Commands and keywords
QString DatabaseSchemaHelper::CREATETABLE("CREATE TABLE");
Expand Down Expand Up @@ -100,6 +100,9 @@ QString DatabaseSchemaHelper::colEquipNotes("notes");
QString DatabaseSchemaHelper::colEquipRealEvapRate("real_evap_rate");
QString DatabaseSchemaHelper::colEquipBoilingPoint("boiling_point");
QString DatabaseSchemaHelper::colEquipAbsorption("absorption");
QString DatabaseSchemaHelper::colEquipTunDiameter("tun_diameter");
QString DatabaseSchemaHelper::colEquipWhirlpoolTime("whirlpool_time");
QString DatabaseSchemaHelper::colEquipHopEstWhirlpool("hop_est_whirlpool");

QString DatabaseSchemaHelper::tableFermentable("fermentable");
QString DatabaseSchemaHelper::colFermFtype("ftype");
Expand Down Expand Up @@ -463,6 +466,9 @@ bool DatabaseSchemaHelper::migrateNext(int oldVersion, QSqlDatabase db)
case 6:
ret &= migrate_to_7(q);
break;
case 7:
ret &= migrate_to_8(q);
break;
default:
Brewtarget::logE(QString("Unknown version %1").arg(oldVersion));
return false;
Expand Down Expand Up @@ -787,7 +793,7 @@ bool DatabaseSchemaHelper::create_equipment(QSqlQuery q)
colEquipTrubChillerLoss + SEP + TYPEREAL + SEP + DEFAULT + SEP + "0.0" + COMMA +
colEquipEvapRate + SEP + TYPEREAL + SEP + DEFAULT + SEP + "0.0" + COMMA +
colEquipBoilTime + SEP + TYPEREAL + SEP + DEFAULT + SEP + "0.0" + COMMA +
colEquipCalcBoilVolume + SEP + TYPEBOOLEAN + SEP + DEFAULT + SEP + FALSE + COMMA +
colEquipCalcBoilVolume + SEP + TYPEBOOLEAN + SEP + DEFAULT + SEP + FALSE + COMMA +
colEquipLauterDeadspace + SEP + TYPEREAL + SEP + DEFAULT + SEP + "0.0" + COMMA +
colEquipTopUpKettle + SEP + TYPEREAL + SEP + DEFAULT + SEP + "0.0" + COMMA +
colEquipHopUtilization + SEP + TYPEREAL + SEP + DEFAULT + SEP + "0.0" + COMMA +
Expand All @@ -796,6 +802,9 @@ bool DatabaseSchemaHelper::create_equipment(QSqlQuery q)
colEquipRealEvapRate + SEP + TYPEREAL + SEP + DEFAULT + SEP + "0.0" + COMMA +
colEquipBoilingPoint + SEP + TYPEREAL + SEP + DEFAULT + SEP + "100.0" + COMMA +
colEquipAbsorption + SEP + TYPEREAL + SEP + DEFAULT + SEP + "1.085" + COMMA +
colEquipTunDiameter + SEP + TYPEREAL + SEP + DEFAULT + SEP + "30.0" + COMMA +
colEquipWhirlpoolTime + SEP + TYPEREAL + SEP + DEFAULT + SEP + "20.0" + COMMA +
colEquipHopEstWhirlpool + SEP + TYPEBOOLEAN + SEP + DEFAULT + SEP + FALSE + COMMA +
// Metadata
deleted + COMMA +
display + COMMA +
Expand Down Expand Up @@ -1574,3 +1583,27 @@ bool DatabaseSchemaHelper::migrate_to_7(QSqlQuery q) {

return ret;
}

bool DatabaseSchemaHelper::migrate_to_8(QSqlQuery q) {
bool ret = true;

// Add tun diameter, whirlpool time and hop estimation to equipment table.
// These new variables are useful for calculating IBU after flameout.

ret &= q.exec(
ALTERTABLE + SEP + tableEquipment + SEP +
ADDCOLUMN + SEP + "tun_diameter" + SEP + TYPEREAL + SEP + DEFAULT + SEP + "30.0"
);

ret &= q.exec(
ALTERTABLE + SEP + tableEquipment + SEP +
ADDCOLUMN + SEP + "whirlpool_time" + SEP + TYPEREAL + SEP + DEFAULT + SEP + "20.0"
);

ret &= q.exec(
ALTERTABLE + SEP + tableEquipment + SEP +
ADDCOLUMN + SEP + "hop_est_whirlpool" + SEP + TYPEBOOLEAN + SEP + DEFAULT + SEP + FALSE
);

return ret;
}
4 changes: 4 additions & 0 deletions src/DatabaseSchemaHelper.h
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,9 @@ class DatabaseSchemaHelper
static QString colEquipRealEvapRate;
static QString colEquipBoilingPoint;
static QString colEquipAbsorption;
static QString colEquipTunDiameter;
static QString colEquipWhirlpoolTime;
static QString colEquipHopEstWhirlpool;

// Fermentable table
static QString tableFermentable;
Expand Down Expand Up @@ -430,4 +433,5 @@ class DatabaseSchemaHelper
static bool migrate_to_5(QSqlQuery q);
static bool migrate_to_6(QSqlQuery q);
static bool migrate_to_7(QSqlQuery q);
static bool migrate_to_8(QSqlQuery q);
};
91 changes: 81 additions & 10 deletions src/EquipmentEditor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ EquipmentEditor::EquipmentEditor(QWidget* parent, bool singleEquipEditor)
// Check boxen
connect(checkBox_calcBoilVolume, &QCheckBox::stateChanged, this, &EquipmentEditor::updateCheckboxRecord);
connect(checkBox_defaultEquipment, &QCheckBox::stateChanged, this, &EquipmentEditor::updateDefaultEquipment);
connect(checkBox_hopEstWhirlpool, &QCheckBox::stateChanged, this, &EquipmentEditor::updateHopEstWhirlpool);

// Labels
connect(label_boilSize, &BtLabel::labelChanged, lineEdit_boilSize, &BtLineEdit::lineChanged);
Expand All @@ -101,6 +102,8 @@ EquipmentEditor::EquipmentEditor(QWidget* parent, bool singleEquipEditor)
connect(label_trubChillerLoss, &BtLabel::labelChanged, lineEdit_trubChillerLoss, &BtLineEdit::lineChanged);
connect(label_topUpKettle, &BtLabel::labelChanged, lineEdit_topUpKettle, &BtLineEdit::lineChanged);
connect(label_boilTime, &BtLabel::labelChanged, lineEdit_boilTime, &BtLineEdit::lineChanged);
connect(label_tunDiameter, &BtLabel::labelChanged, lineEdit_tunDiameter, &BtLineEdit::lineChanged);
connect(label_whirlpoolTime, &BtLabel::labelChanged, lineEdit_whirlpoolTime, &BtLineEdit::lineChanged);

QMetaObject::connectSlotsByName(this);

Expand Down Expand Up @@ -316,6 +319,18 @@ void EquipmentEditor::doLayout()
lineEdit_tunVolume->setMinimumSize(QSize(100, 0));
lineEdit_tunVolume->setMaximumSize(QSize(100, 16777215));
lineEdit_tunVolume->setProperty("editField", QVariant(QStringLiteral("tunVolume_l")));
label_tunDiameter = new BtLengthLabel(groupBox_mashTun);
label_tunDiameter->setObjectName(QStringLiteral("label_tunDiameter"));
sizePolicy1.setHeightForWidth(label_tunDiameter->sizePolicy().hasHeightForWidth());
label_tunDiameter->setSizePolicy(sizePolicy1);
label_tunDiameter->setContextMenuPolicy(Qt::CustomContextMenu);
lineEdit_tunDiameter = new BtLengthEdit(groupBox_mashTun);
lineEdit_tunDiameter->setObjectName(QStringLiteral("lineEdit_tunDiameter"));
sizePolicy2.setHeightForWidth(lineEdit_tunDiameter->sizePolicy().hasHeightForWidth());
lineEdit_tunDiameter->setSizePolicy(sizePolicy2);
lineEdit_tunDiameter->setMinimumSize(QSize(100, 0));
lineEdit_tunDiameter->setMaximumSize(QSize(100, 16777215));
lineEdit_tunDiameter->setProperty("editField", QVariant(QStringLiteral("tunDiameter_cm")));
label_tunWeight = new BtMassLabel(groupBox_mashTun);
label_tunWeight->setObjectName(QStringLiteral("label_tunWeight"));
sizePolicy1.setHeightForWidth(label_tunWeight->sizePolicy().hasHeightForWidth());
Expand All @@ -339,12 +354,36 @@ void EquipmentEditor::doLayout()
lineEdit_tunSpecificHeat->setMinimumSize(QSize(100, 0));
lineEdit_tunSpecificHeat->setMaximumSize(QSize(100, 16777215));
lineEdit_tunSpecificHeat->setProperty("editField", QVariant(QStringLiteral("tunSpecificHeat_calGC")));
label_hopEstWhirlpool = new QLabel(groupBox_required);
label_hopEstWhirlpool->setObjectName(QStringLiteral("label_hopEstWhirlpool"));
sizePolicy1.setHeightForWidth(label_hopEstWhirlpool->sizePolicy().hasHeightForWidth());
label_hopEstWhirlpool->setSizePolicy(sizePolicy1);
checkBox_hopEstWhirlpool = new QCheckBox(groupBox_required);
checkBox_hopEstWhirlpool->setObjectName(QStringLiteral("checkBox_hopEstWhirlpool"));
label_whirlpoolTime = new BtTimeLabel(groupBox_mashTun);
label_whirlpoolTime->setObjectName(QStringLiteral("label_whirlpoolTime"));
sizePolicy1.setHeightForWidth(label_whirlpoolTime->sizePolicy().hasHeightForWidth());
label_whirlpoolTime->setSizePolicy(sizePolicy1);
label_whirlpoolTime->setContextMenuPolicy(Qt::CustomContextMenu);
lineEdit_whirlpoolTime = new BtTimeEdit(groupBox_mashTun);
lineEdit_whirlpoolTime->setObjectName(QStringLiteral("lineEdit_whirlpoolTime"));
sizePolicy2.setHeightForWidth(lineEdit_whirlpoolTime->sizePolicy().hasHeightForWidth());
lineEdit_whirlpoolTime->setSizePolicy(sizePolicy2);
lineEdit_whirlpoolTime->setMinimumSize(QSize(100, 0));
lineEdit_whirlpoolTime->setMaximumSize(QSize(100, 16777215));
lineEdit_whirlpoolTime->setProperty("editField", QVariant(QStringLiteral("whirlpoolTime_min")));
formLayout_mashTun->setWidget(0, QFormLayout::LabelRole, label_tunVolume);
formLayout_mashTun->setWidget(0, QFormLayout::FieldRole, lineEdit_tunVolume);
formLayout_mashTun->setWidget(1, QFormLayout::LabelRole, label_tunWeight);
formLayout_mashTun->setWidget(1, QFormLayout::FieldRole, lineEdit_tunWeight);
formLayout_mashTun->setWidget(2, QFormLayout::LabelRole, label_tunSpecificHeat);
formLayout_mashTun->setWidget(2, QFormLayout::FieldRole, lineEdit_tunSpecificHeat);
formLayout_mashTun->setWidget(1, QFormLayout::LabelRole, label_tunDiameter);
formLayout_mashTun->setWidget(1, QFormLayout::FieldRole, lineEdit_tunDiameter);
formLayout_mashTun->setWidget(2, QFormLayout::LabelRole, label_tunWeight);
formLayout_mashTun->setWidget(2, QFormLayout::FieldRole, lineEdit_tunWeight);
formLayout_mashTun->setWidget(3, QFormLayout::LabelRole, label_tunSpecificHeat);
formLayout_mashTun->setWidget(3, QFormLayout::FieldRole, lineEdit_tunSpecificHeat);
formLayout_mashTun->setWidget(4, QFormLayout::LabelRole, label_hopEstWhirlpool);
formLayout_mashTun->setWidget(4, QFormLayout::FieldRole, checkBox_hopEstWhirlpool);
formLayout_mashTun->setWidget(5, QFormLayout::LabelRole, label_whirlpoolTime);
formLayout_mashTun->setWidget(5, QFormLayout::FieldRole, lineEdit_whirlpoolTime);
groupBox_losses = new QGroupBox(this);
groupBox_losses->setProperty("configSection", QVariant(QStringLiteral("equipmentEditor")));
formLayout_losses = new QFormLayout(groupBox_losses);
Expand Down Expand Up @@ -431,10 +470,12 @@ void EquipmentEditor::doLayout()
label_hopUtilization->setBuddy(lineEdit_hopUtilization);
label_boilingPoint->setBuddy(lineEdit_boilingPoint);
label_tunVolume->setBuddy(lineEdit_tunVolume);
label_tunDiameter->setBuddy(lineEdit_tunDiameter);
label_tunWeight->setBuddy(lineEdit_tunWeight);
label_tunSpecificHeat->setBuddy(lineEdit_tunSpecificHeat);
label_trubChillerLoss->setBuddy(lineEdit_trubChillerLoss);
label_lauterDeadspace->setBuddy(lineEdit_lauterDeadspace);
label_whirlpoolTime->setBuddy(lineEdit_whirlpoolTime);
#endif // QT_NO_SHORTCUT

QWidget::setTabOrder(equipmentComboBox, pushButton_remove);
Expand All @@ -452,9 +493,12 @@ void EquipmentEditor::doLayout()
QWidget::setTabOrder(pushButton_absorption, lineEdit_boilingPoint);
QWidget::setTabOrder(lineEdit_boilingPoint, lineEdit_hopUtilization);
QWidget::setTabOrder(lineEdit_hopUtilization, lineEdit_tunVolume);
QWidget::setTabOrder(lineEdit_tunVolume, lineEdit_tunWeight);
QWidget::setTabOrder(lineEdit_tunVolume, lineEdit_tunDiameter);
QWidget::setTabOrder(lineEdit_tunDiameter, lineEdit_tunWeight);
QWidget::setTabOrder(lineEdit_tunWeight, lineEdit_tunSpecificHeat);
QWidget::setTabOrder(lineEdit_tunSpecificHeat, lineEdit_trubChillerLoss);
QWidget::setTabOrder(lineEdit_tunSpecificHeat, checkBox_hopEstWhirlpool);
QWidget::setTabOrder(checkBox_hopEstWhirlpool, lineEdit_whirlpoolTime);
QWidget::setTabOrder(lineEdit_whirlpoolTime, lineEdit_trubChillerLoss);
QWidget::setTabOrder(lineEdit_trubChillerLoss, lineEdit_lauterDeadspace);
QWidget::setTabOrder(lineEdit_lauterDeadspace, textEdit_notes);
QWidget::setTabOrder(textEdit_notes, pushButton_new);
Expand Down Expand Up @@ -487,8 +531,11 @@ void EquipmentEditor::retranslateUi()
label_boilingPoint->setText(tr("Boiling Point of Water"));
groupBox_mashTun->setTitle(tr("Mash Tun"));
label_tunVolume->setText(tr("Volume"));
label_tunDiameter->setText(tr("Diameter"));
label_tunWeight->setText(tr("Mass"));
label_tunSpecificHeat->setText(QApplication::translate("equipmentEditor", "Specific heat (Cal/(g*C))", 0));
label_hopEstWhirlpool->setText(tr("Hop utilization in whirlpool"));
label_whirlpoolTime->setText(tr("Whirlpool time (above 85C)"));
groupBox_losses->setTitle(QApplication::translate("equipmentEditor", "Losses", 0));
groupBox_losses->setProperty("configSection", QVariant(QApplication::translate("equipmentEditor", "equipmentEditor", 0)));
label_trubChillerLoss->setText(QApplication::translate("equipmentEditor", "Kettle to fermenter", 0));
Expand All @@ -508,7 +555,10 @@ void EquipmentEditor::retranslateUi()
lineEdit_topUpKettle->setToolTip(tr("How much water is added to kettle immediately pre-boil"));
lineEdit_topUpWater->setToolTip(tr("Water added to fermenter"));
lineEdit_tunVolume->setToolTip(tr("Volume of mash tun"));
lineEdit_tunDiameter->setToolTip(tr("Diameter of mash tun (only required for whirlpool time)"));
lineEdit_tunWeight->setToolTip(tr("Mass or weight of mash tun"));
checkBox_hopEstWhirlpool->setToolTip(tr("If checked, the whirlpool time will be considered in IBU calculation"));
lineEdit_whirlpoolTime->setToolTip(tr("Whirlpool time to be considered in IBU calculation"));
lineEdit_trubChillerLoss->setToolTip(tr("Wort lost between kettle and fermenter"));
lineEdit_lauterDeadspace->setToolTip(tr("Volume of wort lost to lauter deadspace"));
pushButton_new->setToolTip(tr("New equipment"));
Expand Down Expand Up @@ -551,8 +601,11 @@ void EquipmentEditor::clear()
lineEdit_batchSize->setText(QString(""));

lineEdit_tunVolume->setText(QString(""));
lineEdit_tunDiameter->setText(QString(""));
lineEdit_tunWeight->setText(QString(""));
lineEdit_tunSpecificHeat->setText(QString(""));
checkBox_hopEstWhirlpool->setCheckState( Qt::Unchecked );
lineEdit_whirlpoolTime->setText(QString(""));

lineEdit_boilTime->setText(QString(""));
lineEdit_evaporationRate->setText(QString(""));
Expand Down Expand Up @@ -613,6 +666,11 @@ void EquipmentEditor::save()
inform = inform + QString("<li>%1</li>").arg(tr("mash tun volume (all-grain and BIAB only)"));
}

if ( qFuzzyCompare(lineEdit_tunDiameter->toSI(),0.0) ) {
problems = true;
inform = inform + QString("<li>%1</li>").arg(tr("mash tun diameter"));
}

if ( qFuzzyCompare(lineEdit_batchSize->toSI(), 0.0) ) {
problems = true;
inform = inform + QString("<li>%1</li>").arg(tr("batch size"));
Expand Down Expand Up @@ -640,13 +698,12 @@ void EquipmentEditor::save()
return;
}

obsEquip->blockSignals(true);
obsEquip->setName( lineEdit_name->text() );
obsEquip->setBoilSize_l( lineEdit_boilSize->toSI() );
obsEquip->setBatchSize_l( lineEdit_batchSize->toSI() );
obsEquip->setTunVolume_l( lineEdit_tunVolume->toSI() );

obsEquip->setTunWeight_kg( lineEdit_tunWeight->toSI() );

obsEquip->setWhirlpoolTime_min( lineEdit_whirlpoolTime->toSI() );
obsEquip->setTunSpecificHeat_calGC( lineEdit_tunSpecificHeat->toSI() );
obsEquip->setBoilTime_min( lineEdit_boilTime->toSI());
obsEquip->setEvapRate_lHr( lineEdit_evaporationRate->toSI() );
Expand All @@ -657,9 +714,12 @@ void EquipmentEditor::save()
obsEquip->setGrainAbsorption_LKg( ga_LKg );
obsEquip->setBoilingPoint_c( lineEdit_boilingPoint->toSI() );
obsEquip->setHopUtilization_pct( lineEdit_hopUtilization->toSI() );

obsEquip->setNotes(textEdit_notes->toPlainText());
obsEquip->setCalcBoilVolume(checkBox_calcBoilVolume->checkState() == Qt::Checked);
obsEquip->setTunDiameter_cm( lineEdit_tunDiameter->toSI() );
obsEquip->setTunWeight_kg( lineEdit_tunWeight->toSI() );
obsEquip->blockSignals(false);
obsEquip->setHopEstWhirlpool(checkBox_hopEstWhirlpool->checkState() == Qt::Checked );

setVisible(false);
return;
Expand Down Expand Up @@ -740,8 +800,14 @@ void EquipmentEditor::showChanges()
lineEdit_batchSize->setText(e);

lineEdit_tunVolume->setText(e);
lineEdit_tunDiameter->setText(e);
lineEdit_tunWeight->setText(e);
lineEdit_tunSpecificHeat->setText(e);
checkBox_calcBoilVolume->blockSignals(true);
checkBox_hopEstWhirlpool->setCheckState( (e->hopEstWhirlpool())? Qt::Checked : Qt::Unchecked );
checkBox_calcBoilVolume->blockSignals(false);
lineEdit_whirlpoolTime->setText(e);
updateHopEstWhirlpool();

lineEdit_boilTime->setText(e);
lineEdit_evaporationRate->setText(e);
Expand Down Expand Up @@ -779,6 +845,11 @@ void EquipmentEditor::updateCheckboxRecord()
else lineEdit_boilSize->setEnabled(true);
}

void EquipmentEditor::updateHopEstWhirlpool()
{
lineEdit_whirlpoolTime->setEnabled( checkBox_hopEstWhirlpool->checkState() == Qt::Checked );
}

double EquipmentEditor::calcBatchSize()
{
double size, topUp, trubLoss, time, evapRate;
Expand Down
Loading