521 { |
521 { |
522 return (D1.f_added <= D2.f_added) && (D1.f_amount >= D2.f_amount) && (D1.f_color < D2.f_color); |
522 return (D1.f_added <= D2.f_added) && (D1.f_amount >= D2.f_amount) && (D1.f_color < D2.f_color); |
523 } |
523 } |
524 |
524 |
525 |
525 |
|
526 void EditRecipe::to100Fermentables(int row) |
|
527 { |
|
528 if (recipe->fermentables.at(row).f_adjust_to_total_100) { |
|
529 QWidget *pWidget = new QWidget(); |
|
530 QLabel *label = new QLabel; |
|
531 label->setPixmap(QPixmap(":icons/silk/tick.png")); |
|
532 QHBoxLayout *pLayout = new QHBoxLayout(pWidget); |
|
533 pLayout->addWidget(label); |
|
534 pLayout->setAlignment(Qt::AlignCenter); |
|
535 pLayout->setContentsMargins(0, 0, 0, 0); |
|
536 pWidget->setLayout(pLayout); |
|
537 ui->fermentablesTable->setCellWidget(row, 9, pWidget); |
|
538 } else { |
|
539 ui->fermentablesTable->removeCellWidget(row, 9); |
|
540 } |
|
541 } |
|
542 |
|
543 |
526 void EditRecipe::refreshFermentables() |
544 void EditRecipe::refreshFermentables() |
527 { |
545 { |
528 QString w; |
546 QString w; |
529 QWidget* pWidget; |
547 QWidget* pWidget; |
530 QHBoxLayout* pLayout; |
548 QHBoxLayout* pLayout; |
531 QTableWidgetItem *item; |
549 QTableWidgetItem *item; |
532 QLabel *label; |
|
533 |
550 |
534 qDebug() << "refreshFermentables" << recipe->fermentables.size(); |
551 qDebug() << "refreshFermentables" << recipe->fermentables.size(); |
535 std::sort(recipe->fermentables.begin(), recipe->fermentables.end(), ferment_sort_test); |
552 std::sort(recipe->fermentables.begin(), recipe->fermentables.end(), ferment_sort_test); |
536 |
553 |
537 /* |
554 /* |
587 |
604 |
588 item = new QTableWidgetItem(QString("%1 Kg").arg(recipe->fermentables.at(i).f_amount, 4, 'f', 3, '0')); |
605 item = new QTableWidgetItem(QString("%1 Kg").arg(recipe->fermentables.at(i).f_amount, 4, 'f', 3, '0')); |
589 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
606 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
590 ui->fermentablesTable->setItem(i, 7, item); |
607 ui->fermentablesTable->setItem(i, 7, item); |
591 |
608 |
592 item = new QTableWidgetItem(QString("%1%").arg(recipe->fermentables.at(i).f_percentage, 2, 'f', 1, '0')); |
609 if (recipe->fermentables.at(i).f_added < 4) { |
|
610 item = new QTableWidgetItem(QString("%1%").arg(recipe->fermentables.at(i).f_percentage, 2, 'f', 1, '0')); |
|
611 } else { |
|
612 item = new QTableWidgetItem(QString("")); // Blank for bottling and kegging. |
|
613 } |
593 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
614 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
594 ui->fermentablesTable->setItem(i, 8, item); |
615 ui->fermentablesTable->setItem(i, 8, item); |
595 |
616 |
596 if (recipe->fermentables.at(i).f_adjust_to_total_100) { |
617 to100Fermentables(i); |
597 pWidget = new QWidget(); |
|
598 label = new QLabel; |
|
599 label->setPixmap(QPixmap(":icons/silk/tick.png")); |
|
600 pLayout = new QHBoxLayout(pWidget); |
|
601 pLayout->addWidget(label); |
|
602 pLayout->setAlignment(Qt::AlignCenter); |
|
603 pLayout->setContentsMargins(0, 0, 0, 0); |
|
604 pWidget->setLayout(pLayout); |
|
605 ui->fermentablesTable->setCellWidget(i, 9, pWidget); |
|
606 } else { |
|
607 ui->fermentablesTable->removeCellWidget(i, 9); |
|
608 } |
|
609 |
618 |
610 /* Add the Delete row button */ |
619 /* Add the Delete row button */ |
611 pWidget = new QWidget(); |
620 pWidget = new QWidget(); |
612 QPushButton* btn_dele = new QPushButton(); |
621 QPushButton* btn_dele = new QPushButton(); |
613 btn_dele->setObjectName(QString("%1").arg(i)); /* Send row with the button */ |
622 btn_dele->setObjectName(QString("%1").arg(i)); /* Send row with the button */ |
1098 obj.insert("f_protein", round(recipe->fermentables.at(i).f_protein * 10) / 10); |
1107 obj.insert("f_protein", round(recipe->fermentables.at(i).f_protein * 10) / 10); |
1099 obj.insert("f_recommend_mash", recipe->fermentables.at(i).f_recommend_mash); |
1108 obj.insert("f_recommend_mash", recipe->fermentables.at(i).f_recommend_mash); |
1100 obj.insert("f_supplier", recipe->fermentables.at(i).f_supplier); |
1109 obj.insert("f_supplier", recipe->fermentables.at(i).f_supplier); |
1101 obj.insert("f_type", recipe->fermentables.at(i).f_type); |
1110 obj.insert("f_type", recipe->fermentables.at(i).f_type); |
1102 obj.insert("f_yield", round(recipe->fermentables.at(i).f_yield * 10) / 10); |
1111 obj.insert("f_yield", round(recipe->fermentables.at(i).f_yield * 10) / 10); |
1103 // qDebug() << "fermentable_Json" << i << obj; |
|
1104 array.append(obj); /* Append this object */ |
1112 array.append(obj); /* Append this object */ |
1105 } |
1113 } |
1106 QJsonDocument doc; |
1114 QJsonDocument doc; |
1107 doc.setArray(array); |
1115 doc.setArray(array); |
1108 // qDebug() << doc.toJson(QJsonDocument::Compact); |
1116 // qDebug() << doc.toJson(QJsonDocument::Compact); |
1558 return; |
1562 return; |
1559 } |
1563 } |
1560 |
1564 |
1561 this->ignoreChanges = true; |
1565 this->ignoreChanges = true; |
1562 for (int i = 0; i < recipe->fermentables.size(); i++) { |
1566 for (int i = 0; i < recipe->fermentables.size(); i++) { |
1563 if (recipe->fermentables.at(i).f_adjust_to_total_100) { |
1567 to100Fermentables(i); |
1564 pWidget = new QWidget(); |
|
1565 label = new QLabel; |
|
1566 label->setPixmap(QPixmap(":icons/silk/tick.png")); |
|
1567 pLayout = new QHBoxLayout(pWidget); |
|
1568 pLayout->addWidget(label); |
|
1569 pLayout->setAlignment(Qt::AlignCenter); |
|
1570 pLayout->setContentsMargins(0, 0, 0, 0); |
|
1571 pWidget->setLayout(pLayout); |
|
1572 ui->fermentablesTable->setCellWidget(i, 9, pWidget); |
|
1573 } else { |
|
1574 ui->fermentablesTable->removeCellWidget(i, 9); |
|
1575 } |
|
1576 } |
1568 } |
1577 this->ignoreChanges = false; |
1569 this->ignoreChanges = false; |
1578 is_changed(); |
1570 is_changed(); |
1579 } |
1571 } |
1580 |
1572 |
1685 } |
1677 } |
1686 |
1678 |
1687 void EditRecipe::ferment_added_changed(int val) |
1679 void EditRecipe::ferment_added_changed(int val) |
1688 { |
1680 { |
1689 qDebug() << "ferment_added_changed()" << recipe->fermentables_row << val; |
1681 qDebug() << "ferment_added_changed()" << recipe->fermentables_row << val; |
|
1682 |
|
1683 this->ignoreChanges = true; |
|
1684 recipe->fermentables[recipe->fermentables_row].f_added = val; |
|
1685 QTableWidgetItem *item = new QTableWidgetItem(f_added[val]); |
|
1686 item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); |
|
1687 ui->fermentablesTable->setItem(recipe->fermentables_row, 5, item); |
|
1688 |
|
1689 double total = 0; |
|
1690 for (int i = 0; i < recipe->fermentables.size(); i++) |
|
1691 if (recipe->fermentables.at(i).f_added < 4) // Only before bottle/kegging |
|
1692 total += recipe->fermentables.at(i).f_amount; |
|
1693 for (int i = 0; i < recipe->fermentables.size(); i++) |
|
1694 if (recipe->fermentables.at(i).f_added < 4) |
|
1695 recipe->fermentables[i].f_percentage = recipe->fermentables.at(i).f_amount / total * 100; |
|
1696 |
|
1697 this->ignoreChanges = false; |
|
1698 is_changed(); |
|
1699 emit refreshAll(); |
1690 } |
1700 } |
1691 |
1701 |
1692 |
1702 |
1693 void EditRecipe::on_editFermentRow_clicked() |
1703 void EditRecipe::on_editFermentRow_clicked() |
1694 { |
1704 { |