--- a/src/EditProductTab6.cpp Tue Jun 21 16:16:43 2022 +0200 +++ b/src/EditProductTab6.cpp Thu Jun 23 16:50:23 2022 +0200 @@ -28,6 +28,20 @@ } +bool EditProduct::block_yeast(int stage, int use) +{ + if (stage > PROD_STAGE_PRIMARY && use < YEAST_USE_SECONDARY) + return true; + if (stage > PROD_STAGE_SECONDARY && use < YEAST_USE_TERTIARY) + return true; + if (stage > PROD_STAGE_TERTIARY && use < YEAST_USE_BOTTLE) + return true; + if (stage > PROD_STAGE_PACKAGE) + return true; + return false; +} + + void EditProduct::refreshYeasts() { QString w; @@ -98,38 +112,53 @@ item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); ui->yeastsTable->setItem(i, 9, item); - if (product->yeasts.at(i).form == YEAST_FORMS_LIQUID) - item = new QTableWidgetItem(QString("%1 pack").arg(product->yeasts.at(i).inventory, 1, 'f', 0, '0')); - else if (product->yeasts.at(i).form == YEAST_FORMS_DRY || product->yeasts.at(i).form == YEAST_FORMS_DRIED) - item = new QTableWidgetItem(QString("%1 gr").arg(product->yeasts.at(i).inventory * 1000.0, 3, 'f', 2, '0')); - else - item = new QTableWidgetItem(QString("%1 ml").arg(product->yeasts.at(i).inventory * 1000.0, 3, 'f', 2, '0')); - item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); - if (product->yeasts.at(i).inventory < product->yeasts.at(i).amount) - item->setForeground(QBrush(QColor(Qt::red))); + if (block_yeast(product->stage, product->yeasts.at(i).use)) { + item = new QTableWidgetItem(QString("")); + } else { + if (product->yeasts.at(i).form == YEAST_FORMS_LIQUID) + item = new QTableWidgetItem(QString("%1 pack").arg(product->yeasts.at(i).inventory, 1, 'f', 0, '0')); + else if (product->yeasts.at(i).form == YEAST_FORMS_DRY || product->yeasts.at(i).form == YEAST_FORMS_DRIED) + item = new QTableWidgetItem(QString("%1 gr").arg(product->yeasts.at(i).inventory * 1000.0, 3, 'f', 2, '0')); + else + item = new QTableWidgetItem(QString("%1 ml").arg(product->yeasts.at(i).inventory * 1000.0, 3, 'f', 2, '0')); + item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); + if (product->yeasts.at(i).inventory < product->yeasts.at(i).amount) + item->setForeground(QBrush(QColor(Qt::red))); + } ui->yeastsTable->setItem(i, 10, item); - pWidget = new QWidget(); - QPushButton* btn_dele = new QPushButton(); - btn_dele->setObjectName(QString("%1").arg(i)); /* Send row with the button */ - btn_dele->setText(tr("Delete")); - connect(btn_dele, SIGNAL(clicked()), this, SLOT(deleteYeastRow_clicked())); - pLayout = new QHBoxLayout(pWidget); - pLayout->addWidget(btn_dele); - pLayout->setContentsMargins(5, 0, 5, 0); - pWidget->setLayout(pLayout); - ui->yeastsTable->setCellWidget(i, 11, pWidget); + if (block_yeast(product->stage, product->yeasts.at(i).use)) { + ui->yeastsTable->removeCellWidget(i, 11); /* to remove the unneeded button */ + item = new QTableWidgetItem(""); + item->setToolTip(tr("Yeast already used")); + ui->yeastsTable->setItem(i, 11, item); + ui->yeastsTable->removeCellWidget(i, 12); + item = new QTableWidgetItem(""); + item->setToolTip(tr("Yeast already used")); + ui->yeastsTable->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 */ + btn_dele->setText(tr("Delete")); + connect(btn_dele, SIGNAL(clicked()), this, SLOT(deleteYeastRow_clicked())); + pLayout = new QHBoxLayout(pWidget); + pLayout->addWidget(btn_dele); + pLayout->setContentsMargins(5, 0, 5, 0); + pWidget->setLayout(pLayout); + ui->yeastsTable->setCellWidget(i, 11, pWidget); - pWidget = new QWidget(); - QPushButton* btn_edit = new QPushButton(); - btn_edit->setObjectName(QString("%1").arg(i)); /* Send row with the button */ - btn_edit->setText(tr("Edit")); - connect(btn_edit, SIGNAL(clicked()), this, SLOT(editYeastRow_clicked())); - pLayout = new QHBoxLayout(pWidget); - pLayout->addWidget(btn_edit); - pLayout->setContentsMargins(5, 0, 5, 0); - pWidget->setLayout(pLayout); - ui->yeastsTable->setCellWidget(i, 12, pWidget); + pWidget = new QWidget(); + QPushButton* btn_edit = new QPushButton(); + btn_edit->setObjectName(QString("%1").arg(i)); /* Send row with the button */ + btn_edit->setText(tr("Edit")); + connect(btn_edit, SIGNAL(clicked()), this, SLOT(editYeastRow_clicked())); + pLayout = new QHBoxLayout(pWidget); + pLayout->addWidget(btn_edit); + pLayout->setContentsMargins(5, 0, 5, 0); + pWidget->setLayout(pLayout); + ui->yeastsTable->setCellWidget(i, 12, pWidget); + } } }