src/EditRecipe.cpp

changeset 123
41563800aa92
parent 122
a614932fd908
child 124
ba26b19572ab
equal deleted inserted replaced
122:a614932fd908 123:41563800aa92
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);
1521 is_changed(); 1529 is_changed();
1522 } 1530 }
1523 1531
1524 void EditRecipe::ferment_to100_changed(bool val) 1532 void EditRecipe::ferment_to100_changed(bool val)
1525 { 1533 {
1526 QWidget* pWidget;
1527 QHBoxLayout* pLayout;
1528 QLabel *label;
1529
1530 qDebug() << "ferment_to100_changed()" << recipe->fermentables_row << val << recipe->fermentables_use100; 1534 qDebug() << "ferment_to100_changed()" << recipe->fermentables_row << val << recipe->fermentables_use100;
1531 1535
1532 /* 1536 /*
1533 * Three scenario's. 1537 * Three scenario's.
1534 * 1. There is no fermentable selected yet, just mark it. 1538 * 1. There is no fermentable selected yet, just mark it.
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 {

mercurial