src/EditProductTab1.cpp

changeset 219
fa7cad488e27
parent 214
641540dc6ef2
child 224
d369948a3eb5
--- a/src/EditProductTab1.cpp	Wed May 18 08:59:54 2022 +0200
+++ b/src/EditProductTab1.cpp	Wed May 18 17:03:05 2022 +0200
@@ -202,6 +202,8 @@
 	stage = PROD_STAGE_BREW;
     if ((stage == PROD_STAGE_BREW) && (! product->brew_date_start.date().isValid()))
 	stage = PROD_STAGE_WAIT;
+    /* from PROD_STAGE_BREW to PROD_STAGE_PRIMARY is handled in EditProductTab9.cpp */
+    /* from PROD_STAGE_PRIMARY to PROD_STAGE_SECONDARY is handled in EditProductTab10.cpp */
 
     if (product->stage != stage) {
 	qDebug() << "setStage() change state:" << prod_stages[product->stage] << "to:" << prod_stages[stage];
@@ -312,6 +314,7 @@
 	ui->brew_startButton1->show();
         ui->brew_startButton2->show();
         ui->brew_startDate->setReadOnly(false);
+	ui->brew_startDate->setMinimumDate(product->birth.addDays(-1));	// The birth date is the first valid date.
 	ui->brew_endButton1->hide();
 	ui->brew_startLabel2->hide();
 	ui->brew_endLabel->hide();
@@ -422,7 +425,63 @@
 
     /* Tab 10, fermentation */
     ui->tabWidget->setTabEnabled(9, stage > PROD_STAGE_WAIT);
-
+    ui->prim_enddateEdit->setReadOnly(true);
+    ui->prim_enddateEdit->setButtonSymbols(QAbstractSpinBox::NoButtons);
+    ui->prim_enddateButton->hide();
+    ui->prim_ackButton->hide();
+    ui->sec_enddateEdit->setReadOnly(true);
+    ui->sec_enddateEdit->setButtonSymbols(QAbstractSpinBox::NoButtons);
+    ui->sec_enddateButton->hide();
+    ui->sec_ackButton->hide();
+    ui->prim_startCEdit->setReadOnly(product->stage != PROD_STAGE_PRIMARY);
+    ui->prim_startCEdit->setButtonSymbols((product->stage == PROD_STAGE_PRIMARY) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons);
+    ui->prim_maxCEdit->setReadOnly(product->stage != PROD_STAGE_PRIMARY);
+    ui->prim_maxCEdit->setButtonSymbols((product->stage == PROD_STAGE_PRIMARY) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons);
+    ui->prim_endCEdit->setReadOnly(product->stage != PROD_STAGE_PRIMARY);
+    ui->prim_endCEdit->setButtonSymbols((product->stage == PROD_STAGE_PRIMARY) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons);
+    ui->prim_endsgEdit->setReadOnly(product->stage != PROD_STAGE_PRIMARY);
+    ui->prim_endsgEdit->setButtonSymbols((product->stage == PROD_STAGE_PRIMARY) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons);
+    if (product->stage == PROD_STAGE_PRIMARY)
+	ui->prim_endsgButton->show();
+    else
+	ui->prim_endsgButton->hide();
+    if ((product->primary_start_temp > 0) && (product->primary_max_temp > 0) && (product->primary_end_temp > 0) &&
+	(product->primary_end_sg > 0.980) && (product->stage == PROD_STAGE_PRIMARY)) {
+	ui->prim_enddateEdit->setReadOnly(false);
+	ui->prim_enddateEdit->setButtonSymbols(QAbstractSpinBox::UpDownArrows);
+	ui->prim_enddateEdit->setMinimumDate(product->brew_date_end.date());
+        ui->prim_enddateEdit->setMaximumDate(QDate::currentDate());
+	ui->prim_enddateButton->show();
+	if (product->primary_end_date.isValid()) {
+	    ui->prim_ackButton->show();
+	}
+    }
+    ui->sec_tempEdit->setReadOnly(product->stage != PROD_STAGE_SECONDARY);
+    ui->sec_tempEdit->setButtonSymbols((product->stage == PROD_STAGE_SECONDARY) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons);
+    ui->sec_sgEdit->setReadOnly(product->stage != PROD_STAGE_SECONDARY);
+    ui->sec_sgEdit->setButtonSymbols((product->stage == PROD_STAGE_SECONDARY) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons);
+    if (product->stage == PROD_STAGE_SECONDARY)
+        ui->sec_sgButton->show();
+    else
+        ui->sec_sgButton->hide();
+    if ((product->secondary_end_sg > 0.980) && (product->secondary_temp > 0) && (product->stage == PROD_STAGE_SECONDARY)) {
+	ui->sec_enddateEdit->setReadOnly(false);
+    	ui->sec_enddateEdit->setButtonSymbols(QAbstractSpinBox::UpDownArrows);
+	ui->sec_enddateEdit->setMinimumDate(product->primary_end_date.addDays(-1));	// Allow same date as primary end.
+	ui->sec_enddateEdit->setMaximumDate(QDate::currentDate());
+    	ui->sec_enddateButton->show();
+	if (product->secondary_end_date.isValid()) {
+	    ui->sec_ackButton->show();
+	}
+    }
+    ui->tert_tempEdit->setReadOnly(product->stage != PROD_STAGE_TERTIARY);
+    ui->tert_tempEdit->setButtonSymbols((product->stage == PROD_STAGE_TERTIARY) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons);
+    ui->tert_sgEdit->setReadOnly(product->stage != PROD_STAGE_TERTIARY);
+    ui->tert_sgEdit->setButtonSymbols((product->stage == PROD_STAGE_TERTIARY) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons);
+    if (product->stage == PROD_STAGE_TERTIARY)
+        ui->tert_sgButton->show();
+    else
+        ui->tert_sgButton->hide();
 
     /* Tab 11, packaging */
     ui->tabWidget->setTabEnabled(10, stage > PROD_STAGE_PLAN);

mercurial