src/EditRecipeTab4.cpp

changeset 152
58e4ce7dd217
parent 150
fd568cc1dd0e
child 154
1af9f7b7f317
equal deleted inserted replaced
151:b5b2483f3a3f 152:58e4ce7dd217
40 QTableWidgetItem *item; 40 QTableWidgetItem *item;
41 41
42 qDebug() << "refreshMiscs" << recipe->miscs.size(); 42 qDebug() << "refreshMiscs" << recipe->miscs.size();
43 std::sort(recipe->miscs.begin(), recipe->miscs.end(), misc_sort_test); 43 std::sort(recipe->miscs.begin(), recipe->miscs.end(), misc_sort_test);
44 44
45 /* 45 const QSignalBlocker blocker1(ui->bs_cacl2Edit);
46 * During filling the table turn off the cellChanged signal because every cell that is filled 46 const QSignalBlocker blocker2(ui->bs_caso4Edit);
47 * triggers the cellChanged signal. The QTableWidget has no better signal to use. 47 const QSignalBlocker blocker3(ui->bs_mgso4Edit);
48 */ 48 const QSignalBlocker blocker4(ui->bs_naclEdit);
49 this->ignoreChanges = true; 49 const QSignalBlocker blocker5(ui->bs_mgcl2Edit);
50 const QSignalBlocker blocker6(ui->bs_nahco3Edit);
51 const QSignalBlocker blocker7(ui->bs_caco3Edit);
52 const QSignalBlocker blocker8(ui->mw_acidPick);
53 const QSignalBlocker blocker9(ui->mw_acidvolEdit);
50 54
51 const QStringList labels({tr("Ingredient"), tr("Type"), tr("Use at"), tr("Time"), tr("Amount"), tr("Delete"), tr("Edit") }); 55 const QStringList labels({tr("Ingredient"), tr("Type"), tr("Use at"), tr("Time"), tr("Amount"), tr("Delete"), tr("Edit") });
52 56
53 ui->miscsTable->setColumnCount(7); 57 ui->miscsTable->setColumnCount(7);
54 ui->miscsTable->setColumnWidth(0, 300); /* Ingredient */ 58 ui->miscsTable->setColumnWidth(0, 300); /* Ingredient */
165 ui->mw_acidpercEdit->setValue(my_acids.at(3).AcidPrc); 169 ui->mw_acidpercEdit->setValue(my_acids.at(3).AcidPrc);
166 ui->mw_acidvolEdit->setValue(recipe->miscs.at(i).m_amount * 1000.0); 170 ui->mw_acidvolEdit->setValue(recipe->miscs.at(i).m_amount * 1000.0);
167 } 171 }
168 } 172 }
169 } 173 }
170 this->ignoreChanges = false;
171 } 174 }
172 175
173 176
174 /* 177 /*
175 * Manipulate the memory array and update the miscs table. 178 * Manipulate the memory array and update the miscs table.
243 /* 246 /*
244 * Edit brewing salt and recalculate. 247 * Edit brewing salt and recalculate.
245 */ 248 */
246 void EditRecipe::set_brewing_salt(QString salt, double val) 249 void EditRecipe::set_brewing_salt(QString salt, double val)
247 { 250 {
248 if (this->ignoreChanges)
249 return;
250
251 val = round(val * 100.0) / 100.0; 251 val = round(val * 100.0) / 100.0;
252 qDebug() << "set_brewing_salt" << salt << val; 252 qDebug() << "set_brewing_salt" << salt << val;
253 brewing_salt_sub(salt, val); 253 brewing_salt_sub(salt, val);
254 calcWater(); 254 calcWater();
255 is_changed(); 255 is_changed();
290 int rc = QMessageBox::warning(this, tr("Delete misc"), tr("Delete %1").arg(recipe->miscs.at(row).m_name), 290 int rc = QMessageBox::warning(this, tr("Delete misc"), tr("Delete %1").arg(recipe->miscs.at(row).m_name),
291 QMessageBox::Yes | QMessageBox::No, QMessageBox::No); 291 QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
292 if (rc == QMessageBox::No) 292 if (rc == QMessageBox::No)
293 return; 293 return;
294 294
295 this->ignoreChanges = true;
296 recipe->miscs.removeAt(row); 295 recipe->miscs.removeAt(row);
297 this->ignoreChanges = false;
298 is_changed(); 296 is_changed();
299 emit refreshAll(); 297 emit refreshAll();
300 } 298 }
301 299
302 300
303 void EditRecipe::misc_amount_changed(double val) 301 void EditRecipe::misc_amount_changed(double val)
304 { 302 {
305 QTableWidgetItem *item; 303 QTableWidgetItem *item;
306 304
307 qDebug() << "misc_amount_changed()" << recipe->miscs_row << val; 305 qDebug() << "misc_amount_changed()" << recipe->miscs_row << val;
308 this->ignoreChanges = true;
309 306
310 recipe->miscs[recipe->miscs_row].m_amount = val / 1000.0; 307 recipe->miscs[recipe->miscs_row].m_amount = val / 1000.0;
311 if (recipe->miscs.at(recipe->miscs_row).m_amount_is_weight) { 308 if (recipe->miscs.at(recipe->miscs_row).m_amount_is_weight) {
312 item = new QTableWidgetItem(QString("%1 gr").arg(recipe->miscs.at(recipe->miscs_row).m_amount * 1000.0, 3, 'f', 2, '0')); 309 item = new QTableWidgetItem(QString("%1 gr").arg(recipe->miscs.at(recipe->miscs_row).m_amount * 1000.0, 3, 'f', 2, '0'));
313 } else { 310 } else {
314 item = new QTableWidgetItem(QString("%1 ml").arg(recipe->miscs.at(recipe->miscs_row).m_amount * 1000.0, 3, 'f', 2, '0')); 311 item = new QTableWidgetItem(QString("%1 ml").arg(recipe->miscs.at(recipe->miscs_row).m_amount * 1000.0, 3, 'f', 2, '0'));
315 } 312 }
316 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); 313 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
317 ui->miscsTable->setItem(recipe->miscs_row, 4, item); 314 ui->miscsTable->setItem(recipe->miscs_row, 4, item);
318 315
319 this->ignoreChanges = false;
320 is_changed(); 316 is_changed();
321 } 317 }
322 318
323 319
324 void EditRecipe::misc_time_changed(int val) 320 void EditRecipe::misc_time_changed(int val)
325 { 321 {
326 QTableWidgetItem *item; 322 QTableWidgetItem *item;
327 323
328 qDebug() << "misc_time_changed()" << recipe->miscs_row << val; 324 qDebug() << "misc_time_changed()" << recipe->miscs_row << val;
329 325
330 this->ignoreChanges = true;
331 if (recipe->miscs.at(recipe->miscs_row).m_use_use == 2) { // Boil 326 if (recipe->miscs.at(recipe->miscs_row).m_use_use == 2) { // Boil
332 recipe->miscs[recipe->miscs_row].m_time = val; 327 recipe->miscs[recipe->miscs_row].m_time = val;
333 item = new QTableWidgetItem(QString("%1 min.").arg(val, 1, 'f', 0, '0')); 328 item = new QTableWidgetItem(QString("%1 min.").arg(val, 1, 'f', 0, '0'));
334 } else if (recipe->miscs.at(recipe->miscs_row).m_use_use == 3 || recipe->miscs.at(recipe->miscs_row).m_use_use == 4) { // Primary or secondary 329 } else if (recipe->miscs.at(recipe->miscs_row).m_use_use == 3 || recipe->miscs.at(recipe->miscs_row).m_use_use == 4) { // Primary or secondary
335 recipe->miscs[recipe->miscs_row].m_time = val * 1440; 330 recipe->miscs[recipe->miscs_row].m_time = val * 1440;
338 item = new QTableWidgetItem(QString("")); 333 item = new QTableWidgetItem(QString(""));
339 } 334 }
340 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); 335 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
341 ui->miscsTable->setItem(recipe->miscs_row, 3, item); 336 ui->miscsTable->setItem(recipe->miscs_row, 3, item);
342 337
343 this->ignoreChanges = false;
344 is_changed(); 338 is_changed();
345 } 339 }
346 340
347 341
348 void EditRecipe::misc_select_changed(int val) 342 void EditRecipe::misc_select_changed(int val)
374 qDebug() << "found" << query.value(0).toString(); 368 qDebug() << "found" << query.value(0).toString();
375 369
376 /* 370 /*
377 * Replace the misc record contents 371 * Replace the misc record contents
378 */ 372 */
379 this->ignoreChanges = true;
380 recipe->miscs[recipe->miscs_row].m_name = query.value(0).toString(); 373 recipe->miscs[recipe->miscs_row].m_name = query.value(0).toString();
381 recipe->miscs[recipe->miscs_row].m_type = query.value(1).toInt(); 374 recipe->miscs[recipe->miscs_row].m_type = query.value(1).toInt();
382 recipe->miscs[recipe->miscs_row].m_use_use = query.value(2).toInt(); 375 recipe->miscs[recipe->miscs_row].m_use_use = query.value(2).toInt();
383 recipe->miscs[recipe->miscs_row].m_time = query.value(3).toDouble(); 376 recipe->miscs[recipe->miscs_row].m_time = query.value(3).toDouble();
384 recipe->miscs[recipe->miscs_row].m_amount_is_weight = query.value(4).toInt() ? true:false; 377 recipe->miscs[recipe->miscs_row].m_amount_is_weight = query.value(4).toInt() ? true:false;
425 item = new QTableWidgetItem(QString("%1 ml").arg(recipe->miscs.at(recipe->miscs_row).m_amount * 1000.0, 3, 'f', 2, '0')); 418 item = new QTableWidgetItem(QString("%1 ml").arg(recipe->miscs.at(recipe->miscs_row).m_amount * 1000.0, 3, 'f', 2, '0'));
426 } 419 }
427 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); 420 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
428 ui->miscsTable->setItem(recipe->miscs_row, 4, item); 421 ui->miscsTable->setItem(recipe->miscs_row, 4, item);
429 422
430 this->ignoreChanges = false;
431 is_changed(); 423 is_changed();
432 emit refreshAll(); 424 emit refreshAll();
433 } 425 }
434 426
435 427
460 void EditRecipe::misc_useat_changed(int val) 452 void EditRecipe::misc_useat_changed(int val)
461 { 453 {
462 QTableWidgetItem *item; 454 QTableWidgetItem *item;
463 455
464 qDebug() << "misc_useat_changed" << val; 456 qDebug() << "misc_useat_changed" << val;
465 this->ignoreChanges = true;
466 recipe->miscs[recipe->miscs_row].m_use_use = val; 457 recipe->miscs[recipe->miscs_row].m_use_use = val;
467 item = new QTableWidgetItem(m_uses[val]); 458 item = new QTableWidgetItem(m_uses[val]);
468 item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); 459 item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter);
469 ui->miscsTable->setItem(recipe->miscs_row, 2, item); 460 ui->miscsTable->setItem(recipe->miscs_row, 2, item);
470 461
486 item = new QTableWidgetItem(QString("")); 477 item = new QTableWidgetItem(QString(""));
487 } 478 }
488 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); 479 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
489 ui->miscsTable->setItem(recipe->miscs_row, 3, item); 480 ui->miscsTable->setItem(recipe->miscs_row, 3, item);
490 481
491 this->ignoreChanges = false;
492 is_changed(); 482 is_changed();
493 } 483 }
494 484
495 485
496 void EditRecipe::editMiscRow_clicked() 486 void EditRecipe::editMiscRow_clicked()
644 double amount; 634 double amount;
645 635
646 if (recipe->miscs.size() == 0) 636 if (recipe->miscs.size() == 0)
647 return; 637 return;
648 638
649 this->ignoreChanges = true; 639 const QSignalBlocker blocker1(ui->bs_cacl2Edit);
640 const QSignalBlocker blocker2(ui->bs_caso4Edit);
641 const QSignalBlocker blocker3(ui->bs_mgso4Edit);
642 const QSignalBlocker blocker4(ui->bs_naclEdit);
643 const QSignalBlocker blocker5(ui->bs_mgcl2Edit);
644 const QSignalBlocker blocker6(ui->bs_nahco3Edit);
645 const QSignalBlocker blocker7(ui->bs_caco3Edit);
646 const QSignalBlocker blocker9(ui->mw_acidvolEdit);
647
650 for (int i = 0; i < recipe->miscs.size(); i++) { 648 for (int i = 0; i < recipe->miscs.size(); i++) {
651 amount = recipe->miscs.at(i).m_amount * factor; 649 amount = recipe->miscs.at(i).m_amount * factor;
652 recipe->miscs[i].m_amount = amount; 650 recipe->miscs[i].m_amount = amount;
653 651
654 /* 652 /*
678 } else if (recipe->miscs.at(i).m_name == "Zwavelzuur" || recipe->miscs.at(i).m_name == "Sulfuric") { 676 } else if (recipe->miscs.at(i).m_name == "Zwavelzuur" || recipe->miscs.at(i).m_name == "Sulfuric") {
679 ui->mw_acidvolEdit->setValue(recipe->miscs.at(i).m_amount * 1000.0); 677 ui->mw_acidvolEdit->setValue(recipe->miscs.at(i).m_amount * 1000.0);
680 } 678 }
681 } 679 }
682 } 680 }
683 this->ignoreChanges = false; 681 }
684 } 682
685 683
686

mercurial