--- a/src/EditProductTab3.cpp Tue Jun 21 16:16:43 2022 +0200 +++ b/src/EditProductTab3.cpp Thu Jun 23 16:50:23 2022 +0200 @@ -47,6 +47,20 @@ } +bool EditProduct::block_fermentable(int stage, int added) +{ + if (stage > PROD_STAGE_PACKAGE) + return true; + if (stage > PROD_STAGE_TERTIARY && added < FERMENTABLE_ADDED_BOTTLE) + return true; + if (stage > PROD_STAGE_PRIMARY && added < FERMENTABLE_ADDED_LAGERING) + return true; + if (stage > PROD_STAGE_BREW && added < FERMENTABLE_ADDED_FERMENTATION) + return true; + return false; +} + + void EditProduct::refreshFermentables() { QString w; @@ -107,10 +121,14 @@ item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); ui->fermentablesTable->setItem(i, 7, item); - item = new QTableWidgetItem(QString("%1 Kg").arg(product->fermentables.at(i).inventory, 4, 'f', 3, '0')); - item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); - if (product->fermentables.at(i).inventory < product->fermentables.at(i).amount) - item->setForeground(QBrush(QColor(Qt::red))); + if (block_fermentable(product->stage, product->fermentables.at(i).added)) { + item = new QTableWidgetItem(QString("")); + } else { + item = new QTableWidgetItem(QString("%1 Kg").arg(product->fermentables.at(i).inventory, 4, 'f', 3, '0')); + item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); + if (product->fermentables.at(i).inventory < product->fermentables.at(i).amount) + item->setForeground(QBrush(QColor(Qt::red))); + } ui->fermentablesTable->setItem(i, 8, item); if (product->fermentables.at(i).added < FERMENTABLE_ADDED_BOTTLE) { @@ -123,8 +141,22 @@ to100Fermentables(i); - /* Add the Delete row button */ - if (product->fermentables.at(i).added < FERMENTABLE_ADDED_BOTTLE) { + /* Add the Delete and Edit row buttons if allowed. */ + if (product->fermentables.at(i).added >= FERMENTABLE_ADDED_BOTTLE) { + item = new QTableWidgetItem(""); + item->setToolTip(tr("Edit this from the package tab")); + ui->fermentablesTable->setItem(i, 11, item); + item = new QTableWidgetItem(""); + item->setToolTip(tr("Edit this from the package tab")); + ui->fermentablesTable->setItem(i, 12, item); + } else if (block_fermentable(product->stage, product->fermentables.at(i).added)) { + item = new QTableWidgetItem(""); + item->setToolTip(tr("Fermentable already used")); + ui->fermentablesTable->setItem(i, 11, item); + item = new QTableWidgetItem(""); + item->setToolTip(tr("Fermentable already used")); + ui->fermentablesTable->setItem(i, 12, item); + } else { pWidget = new QWidget(); QPushButton* btn_dele = new QPushButton(); btn_dele->setObjectName(QString("%1").arg(i)); /* Send row with the button */ @@ -146,13 +178,6 @@ pLayout->setContentsMargins(5, 0, 5, 0); pWidget->setLayout(pLayout); ui->fermentablesTable->setCellWidget(i, 12, pWidget); - } else { - item = new QTableWidgetItem(""); - item->setToolTip(tr("Edit this from the package tab")); - ui->fermentablesTable->setItem(i, 11, item); - item = new QTableWidgetItem(""); - item->setToolTip(tr("Edit this from the package tab")); - ui->fermentablesTable->setItem(i, 12, item); } } }