diff --git a/app/gui/oven_control/manualcookwindow.cpp b/app/gui/oven_control/manualcookwindow.cpp index fd1832a..0fa862d 100644 --- a/app/gui/oven_control/manualcookwindow.cpp +++ b/app/gui/oven_control/manualcookwindow.cpp @@ -158,6 +158,11 @@ ManualCookWindow::ManualCookWindow(QWidget *parent, Define::Mode mode) : connect(oven, SIGNAL(changed(Oven*)), this, SLOT(onOvenUpdated(Oven*))); oven->setDefault(mode); + ui->infoTextLabel->setAttribute(Qt::WA_TransparentForMouseEvents); + ui->infoTextLabel->hide(); + showInfoTextTimer.setInterval(1500); + showInfoTextTimer.setSingleShot(true); + connect(&updateViewTimer, SIGNAL(timeout()), SLOT(updateView())); updateViewTimer.start(100); @@ -447,10 +452,27 @@ QPushButton:checked\ } bool damper = oven->damper(); - ui->damperButton->setChecked(damper); + if (damper != ui->damperButton->isChecked()) + { + ui->damperButton->setChecked(damper); + + if (damper) + showInfoText("ON"); + else + showInfoText("OFF"); + } bool humidification = oven->humidification(); - ui->humidificationButton->setChecked(humidification); + if (humidification != ui->humidificationButton->isChecked()) + { + ui->humidificationButton->setChecked(humidification); + qDebug() << "humidification" << humidification; + + if (humidification) + showInfoText("ON"); + else + showInfoText("OFF"); + } QString fanStyleSheet("\ QPushButton { background-image: url(%1); }\ @@ -496,7 +518,15 @@ QPushButton:focus { background-image: url(%2); }"); } } - ui->repeatButton->setChecked(repeat); + if (repeat != ui->repeatButton->isChecked()) + { + ui->repeatButton->setChecked(repeat); + + if (repeat) + showInfoText("ON"); + else + showInfoText("OFF"); + } if (cookDone) { @@ -512,6 +542,24 @@ QPushButton:focus { background-image: url(%2); }"); else ui->upperStack->setCurrentIndex(0); // Clock } + + int remainingTime = showInfoTextTimer.remainingTime(); + if (remainingTime > 500) + { + ui->infoTextLabel->setStyleSheet("color: rgb(255, 255, 255);"); + ui->infoTextLabel->show(); + } + else if (remainingTime > 0) + { + ui->infoTextLabel->setStyleSheet( + QString("color: rgba(255, 255, 255, %1);") + .arg(qBound(0, remainingTime * 255 / 500, 255))); + ui->infoTextLabel->show(); + } + else + { + ui->infoTextLabel->hide(); + } } void ManualCookWindow::showCurrentHumidity() @@ -538,6 +586,12 @@ void ManualCookWindow::hideCurrentTemp() updateView(); } +void ManualCookWindow::showInfoText(QString text) +{ + ui->infoTextLabel->setText(text); + showInfoTextTimer.start(); +} + void ManualCookWindow::onOvenUpdated(Oven *oven) { updateView(); @@ -981,6 +1035,8 @@ void ManualCookWindow::on_fanButton_clicked() fan = oven->minFan(); oven->setFan(fan); + + showInfoText(QString("%1").arg(fan)); } void ManualCookWindow::on_preheatButton_clicked() @@ -998,17 +1054,29 @@ void ManualCookWindow::on_preheatButton_clicked() void ManualCookWindow::on_damperButton_clicked() { if (oven->damper()) + { oven->closeDamper(); + showInfoText("OFF"); + } else + { oven->openDamper(); + showInfoText("ON"); + } } void ManualCookWindow::on_humidificationButton_clicked() { if (oven->humidification()) + { oven->stopHumidification(); + showInfoText("OFF"); + } else + { oven->startHumidification(5); + showInfoText("ON"); + } } void ManualCookWindow::on_repeatButton_clicked() @@ -1016,11 +1084,13 @@ void ManualCookWindow::on_repeatButton_clicked() if (repeat) { repeat = false; + showInfoText("OFF"); updateView(); } else { repeat = true; + showInfoText("ON"); updateView(); repeatSetting.mode = oven->mode(); diff --git a/app/gui/oven_control/manualcookwindow.h b/app/gui/oven_control/manualcookwindow.h index da33588..6a15bed 100644 --- a/app/gui/oven_control/manualcookwindow.h +++ b/app/gui/oven_control/manualcookwindow.h @@ -41,6 +41,7 @@ private slots: void hideCurrentHumidity(); void showCurrentTemp(); void hideCurrentTemp(); + void showInfoText(QString text); void onOvenUpdated(Oven *oven); @@ -107,6 +108,7 @@ private: QTimer showCurrentHumidityTimer; QTimer showCurrentTempTimer; + QTimer showInfoTextTimer; int humidity; int temp; diff --git a/app/gui/oven_control/manualcookwindow.ui b/app/gui/oven_control/manualcookwindow.ui index 3ed2504..f7c5d36 100644 --- a/app/gui/oven_control/manualcookwindow.ui +++ b/app/gui/oven_control/manualcookwindow.ui @@ -1300,6 +1300,32 @@ QPushButton:checked:focus <string notr="true">background-image: url(:/images/line/manual_button.png);</string> </property> </widget> + <widget class="QLabel" name="infoTextLabel"> + <property name="geometry"> + <rect> + <x>0</x> + <y>720</y> + <width>900</width> + <height>600</height> + </rect> + </property> + <property name="font"> + <font> + <pointsize>48</pointsize> + <weight>75</weight> + <bold>true</bold> + </font> + </property> + <property name="styleSheet"> + <string notr="true">color: rgba(255, 255, 255, 255);</string> + </property> + <property name="text"> + <string>ON</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> <zorder>sysLine_8</zorder> <zorder>sysLine_7</zorder> <zorder>sysLine_9</zorder> @@ -1334,6 +1360,7 @@ QPushButton:checked:focus <zorder>humiditySlider</zorder> <zorder>timeSlider</zorder> <zorder>interTempSlider</zorder> + <zorder>infoTextLabel</zorder> </widget> </widget> <customwidgets>