200 stage = PROD_STAGE_WAIT; |
200 stage = PROD_STAGE_WAIT; |
201 if ((stage == PROD_STAGE_WAIT) && (product->brew_date_start.date().isValid())) |
201 if ((stage == PROD_STAGE_WAIT) && (product->brew_date_start.date().isValid())) |
202 stage = PROD_STAGE_BREW; |
202 stage = PROD_STAGE_BREW; |
203 if ((stage == PROD_STAGE_BREW) && (! product->brew_date_start.date().isValid())) |
203 if ((stage == PROD_STAGE_BREW) && (! product->brew_date_start.date().isValid())) |
204 stage = PROD_STAGE_WAIT; |
204 stage = PROD_STAGE_WAIT; |
|
205 /* from PROD_STAGE_BREW to PROD_STAGE_PRIMARY is handled in EditProductTab9.cpp */ |
|
206 /* from PROD_STAGE_PRIMARY to PROD_STAGE_SECONDARY is handled in EditProductTab10.cpp */ |
205 |
207 |
206 if (product->stage != stage) { |
208 if (product->stage != stage) { |
207 qDebug() << "setStage() change state:" << prod_stages[product->stage] << "to:" << prod_stages[stage]; |
209 qDebug() << "setStage() change state:" << prod_stages[product->stage] << "to:" << prod_stages[stage]; |
208 product->stage = stage; |
210 product->stage = stage; |
209 is_changed(); |
211 is_changed(); |
310 ui->brew_ackButton->hide(); |
312 ui->brew_ackButton->hide(); |
311 if (product->stage < PROD_STAGE_BREW) { |
313 if (product->stage < PROD_STAGE_BREW) { |
312 ui->brew_startButton1->show(); |
314 ui->brew_startButton1->show(); |
313 ui->brew_startButton2->show(); |
315 ui->brew_startButton2->show(); |
314 ui->brew_startDate->setReadOnly(false); |
316 ui->brew_startDate->setReadOnly(false); |
|
317 ui->brew_startDate->setMinimumDate(product->birth.addDays(-1)); // The birth date is the first valid date. |
315 ui->brew_endButton1->hide(); |
318 ui->brew_endButton1->hide(); |
316 ui->brew_startLabel2->hide(); |
319 ui->brew_startLabel2->hide(); |
317 ui->brew_endLabel->hide(); |
320 ui->brew_endLabel->hide(); |
318 ui->brew_endLabel2->hide(); |
321 ui->brew_endLabel2->hide(); |
319 ui->brew_startTime->hide(); |
322 ui->brew_startTime->hide(); |
420 ui->brew_topupwaterEdit->setReadOnly(stage > PROD_STAGE_BREW); |
423 ui->brew_topupwaterEdit->setReadOnly(stage > PROD_STAGE_BREW); |
421 ui->brew_topupwaterEdit->setButtonSymbols( (stage > PROD_STAGE_BREW) ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); |
424 ui->brew_topupwaterEdit->setButtonSymbols( (stage > PROD_STAGE_BREW) ? QAbstractSpinBox::NoButtons : QAbstractSpinBox::UpDownArrows); |
422 |
425 |
423 /* Tab 10, fermentation */ |
426 /* Tab 10, fermentation */ |
424 ui->tabWidget->setTabEnabled(9, stage > PROD_STAGE_WAIT); |
427 ui->tabWidget->setTabEnabled(9, stage > PROD_STAGE_WAIT); |
425 |
428 ui->prim_enddateEdit->setReadOnly(true); |
|
429 ui->prim_enddateEdit->setButtonSymbols(QAbstractSpinBox::NoButtons); |
|
430 ui->prim_enddateButton->hide(); |
|
431 ui->prim_ackButton->hide(); |
|
432 ui->sec_enddateEdit->setReadOnly(true); |
|
433 ui->sec_enddateEdit->setButtonSymbols(QAbstractSpinBox::NoButtons); |
|
434 ui->sec_enddateButton->hide(); |
|
435 ui->sec_ackButton->hide(); |
|
436 ui->prim_startCEdit->setReadOnly(product->stage != PROD_STAGE_PRIMARY); |
|
437 ui->prim_startCEdit->setButtonSymbols((product->stage == PROD_STAGE_PRIMARY) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons); |
|
438 ui->prim_maxCEdit->setReadOnly(product->stage != PROD_STAGE_PRIMARY); |
|
439 ui->prim_maxCEdit->setButtonSymbols((product->stage == PROD_STAGE_PRIMARY) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons); |
|
440 ui->prim_endCEdit->setReadOnly(product->stage != PROD_STAGE_PRIMARY); |
|
441 ui->prim_endCEdit->setButtonSymbols((product->stage == PROD_STAGE_PRIMARY) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons); |
|
442 ui->prim_endsgEdit->setReadOnly(product->stage != PROD_STAGE_PRIMARY); |
|
443 ui->prim_endsgEdit->setButtonSymbols((product->stage == PROD_STAGE_PRIMARY) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons); |
|
444 if (product->stage == PROD_STAGE_PRIMARY) |
|
445 ui->prim_endsgButton->show(); |
|
446 else |
|
447 ui->prim_endsgButton->hide(); |
|
448 if ((product->primary_start_temp > 0) && (product->primary_max_temp > 0) && (product->primary_end_temp > 0) && |
|
449 (product->primary_end_sg > 0.980) && (product->stage == PROD_STAGE_PRIMARY)) { |
|
450 ui->prim_enddateEdit->setReadOnly(false); |
|
451 ui->prim_enddateEdit->setButtonSymbols(QAbstractSpinBox::UpDownArrows); |
|
452 ui->prim_enddateEdit->setMinimumDate(product->brew_date_end.date()); |
|
453 ui->prim_enddateEdit->setMaximumDate(QDate::currentDate()); |
|
454 ui->prim_enddateButton->show(); |
|
455 if (product->primary_end_date.isValid()) { |
|
456 ui->prim_ackButton->show(); |
|
457 } |
|
458 } |
|
459 ui->sec_tempEdit->setReadOnly(product->stage != PROD_STAGE_SECONDARY); |
|
460 ui->sec_tempEdit->setButtonSymbols((product->stage == PROD_STAGE_SECONDARY) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons); |
|
461 ui->sec_sgEdit->setReadOnly(product->stage != PROD_STAGE_SECONDARY); |
|
462 ui->sec_sgEdit->setButtonSymbols((product->stage == PROD_STAGE_SECONDARY) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons); |
|
463 if (product->stage == PROD_STAGE_SECONDARY) |
|
464 ui->sec_sgButton->show(); |
|
465 else |
|
466 ui->sec_sgButton->hide(); |
|
467 if ((product->secondary_end_sg > 0.980) && (product->secondary_temp > 0) && (product->stage == PROD_STAGE_SECONDARY)) { |
|
468 ui->sec_enddateEdit->setReadOnly(false); |
|
469 ui->sec_enddateEdit->setButtonSymbols(QAbstractSpinBox::UpDownArrows); |
|
470 ui->sec_enddateEdit->setMinimumDate(product->primary_end_date.addDays(-1)); // Allow same date as primary end. |
|
471 ui->sec_enddateEdit->setMaximumDate(QDate::currentDate()); |
|
472 ui->sec_enddateButton->show(); |
|
473 if (product->secondary_end_date.isValid()) { |
|
474 ui->sec_ackButton->show(); |
|
475 } |
|
476 } |
|
477 ui->tert_tempEdit->setReadOnly(product->stage != PROD_STAGE_TERTIARY); |
|
478 ui->tert_tempEdit->setButtonSymbols((product->stage == PROD_STAGE_TERTIARY) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons); |
|
479 ui->tert_sgEdit->setReadOnly(product->stage != PROD_STAGE_TERTIARY); |
|
480 ui->tert_sgEdit->setButtonSymbols((product->stage == PROD_STAGE_TERTIARY) ? QAbstractSpinBox::UpDownArrows : QAbstractSpinBox::NoButtons); |
|
481 if (product->stage == PROD_STAGE_TERTIARY) |
|
482 ui->tert_sgButton->show(); |
|
483 else |
|
484 ui->tert_sgButton->hide(); |
426 |
485 |
427 /* Tab 11, packaging */ |
486 /* Tab 11, packaging */ |
428 ui->tabWidget->setTabEnabled(10, stage > PROD_STAGE_PLAN); |
487 ui->tabWidget->setTabEnabled(10, stage > PROD_STAGE_PLAN); |
429 |
488 |
430 |
489 |