src/EditProductTab6.cpp

changeset 305
35ce719998e1
parent 301
fe6346211b5b
child 395
7212b980a527
--- 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);
+	}
     }
 }
 

mercurial