src/EditProductTab9.cpp

changeset 212
8b84dd3579ef
parent 210
b45bd6da5220
child 213
a167ee979cac
equal deleted inserted replaced
211:bec0386b1df1 212:8b84dd3579ef
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 }

mercurial