118 } |
118 } |
119 is_changed(); |
119 is_changed(); |
120 } |
120 } |
121 |
121 |
122 |
122 |
|
123 void EditProduct::brew_volume_calc(double volume, double kettle_volume, double kettle_height, double est_volume, bool aboil) |
|
124 { |
|
125 double k_cm; |
|
126 |
|
127 if (volume > 0) |
|
128 k_cm = Utils::kettle_cm(volume, kettle_volume, kettle_height); |
|
129 else |
|
130 k_cm = Utils::kettle_cm(est_volume, kettle_volume, kettle_height); |
|
131 |
|
132 QDialog* dialog = new QDialog(this); |
|
133 dialog->resize(320, 110); |
|
134 QDialogButtonBox *buttonBox = new QDialogButtonBox(dialog); |
|
135 buttonBox->setObjectName(QString::fromUtf8("buttonBox")); |
|
136 buttonBox->setGeometry(QRect(40, 65, 240, 32)); |
|
137 buttonBox->setLayoutDirection(Qt::LeftToRight); |
|
138 buttonBox->setOrientation(Qt::Horizontal); |
|
139 buttonBox->setStandardButtons(QDialogButtonBox::Ok); |
|
140 buttonBox->setCenterButtons(true); |
|
141 |
|
142 QLabel *cmLabel = new QLabel(dialog); |
|
143 cmLabel->setObjectName(QString::fromUtf8("cmLabel")); |
|
144 cmLabel->setText(tr("Distance from top:")); |
|
145 cmLabel->setGeometry(QRect(10, 20, 141, 20)); |
|
146 cmLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); |
|
147 |
|
148 QDoubleSpinBox *cmEdit = new QDoubleSpinBox(dialog); |
|
149 cmEdit->setObjectName(QString::fromUtf8("cmEdit")); |
|
150 cmEdit->setGeometry(QRect(160, 20, 121, 24)); |
|
151 cmEdit->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); |
|
152 cmEdit->setAccelerated(true); |
|
153 cmEdit->setDecimals(1); |
|
154 cmEdit->setSuffix(tr(" cm")); |
|
155 cmEdit->setMaximum(kettle_height * 100); |
|
156 cmEdit->setSingleStep(0.1); |
|
157 cmEdit->setValue(k_cm); |
|
158 |
|
159 if (aboil) |
|
160 connect(cmEdit, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &EditProduct::brew_aboil_cm_changed); |
|
161 else |
|
162 connect(cmEdit, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &EditProduct::brew_preboil_cm_changed); |
|
163 connect(buttonBox, SIGNAL(rejected()), dialog, SLOT(reject())); |
|
164 connect(buttonBox, SIGNAL(accepted()), dialog, SLOT(accept())); |
|
165 |
|
166 dialog->setModal(true); |
|
167 dialog->exec(); |
|
168 disconnect(cmEdit, nullptr, nullptr, nullptr); |
|
169 } |
|
170 |
|
171 |
123 void EditProduct::brew_preboilph_changed(double val) |
172 void EditProduct::brew_preboilph_changed(double val) |
124 { |
173 { |
125 if (product->brew_preboil_ph == 0) { |
174 if (product->brew_preboil_ph == 0) { |
126 product->brew_preboil_ph = 4.8; |
175 product->brew_preboil_ph = 4.8; |
127 const QSignalBlocker blocker1(ui->brew_preboilphEdit); |
176 const QSignalBlocker blocker1(ui->brew_preboilphEdit); |
180 } else { |
229 } else { |
181 product->brew_preboil_volume = val; |
230 product->brew_preboil_volume = val; |
182 } |
231 } |
183 is_changed(); |
232 is_changed(); |
184 calcEfficiencyBeforeBoil(); |
233 calcEfficiencyBeforeBoil(); |
|
234 } |
|
235 |
|
236 |
|
237 void EditProduct::brew_preboil_cm_changed(double val) |
|
238 { |
|
239 double vol = Utils::kettle_vol(val, product->eq_kettle_volume, product->eq_kettle_height); |
|
240 product->brew_preboil_volume = vol; |
|
241 const QSignalBlocker blocker1(ui->brew_preboilvolEdit); |
|
242 ui->brew_preboilvolEdit->setValue(vol); |
|
243 is_changed(); |
|
244 calcEfficiencyBeforeBoil(); |
|
245 } |
|
246 |
|
247 |
|
248 void EditProduct::brew_preboil_button() |
|
249 { |
|
250 brew_volume_calc(product->brew_preboil_volume, product->eq_kettle_volume, product->eq_kettle_height, product->boil_size * 1.04, false); |
185 } |
251 } |
186 |
252 |
187 |
253 |
188 void EditProduct::brew_aboilph_changed(double val) |
254 void EditProduct::brew_aboilph_changed(double val) |
189 { |
255 { |
250 is_changed(); |
316 is_changed(); |
251 calcEfficiencyAfterBoil(); |
317 calcEfficiencyAfterBoil(); |
252 } |
318 } |
253 |
319 |
254 |
320 |
|
321 void EditProduct::brew_aboil_cm_changed(double val) |
|
322 { |
|
323 double vol = Utils::kettle_vol(val, product->eq_kettle_volume, product->eq_kettle_height); |
|
324 product->brew_aboil_volume = vol; |
|
325 const QSignalBlocker blocker1(ui->brew_aboilvolEdit); |
|
326 ui->brew_aboilvolEdit->setValue(vol); |
|
327 is_changed(); |
|
328 calcEfficiencyAfterBoil(); |
|
329 } |
|
330 |
|
331 |
|
332 void EditProduct::brew_aboil_button() |
|
333 { |
|
334 brew_volume_calc(product->brew_aboil_volume, product->eq_kettle_volume, product->eq_kettle_height, product->batch_size * 1.04, true); |
|
335 } |
|
336 |
|
337 |
255 void EditProduct::brew_cooling_method_changed(int val) |
338 void EditProduct::brew_cooling_method_changed(int val) |
256 { |
339 { |
257 product->brew_cooling_method = val; |
340 product->brew_cooling_method = val; |
258 is_changed(); |
341 is_changed(); |
259 } |
342 } |