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 */ |
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; |
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; |
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 |
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 /* |