Commit d6ef50b78f37806c0172c1dfe936e4e8e510ffd8
1 parent
50560e6b7a
Exists in
master
and in
2 other branches
요청 사항 반영
- 수동 요리 중 특수 조작 시 상태 문자 표시 기능 추가
Showing
3 changed files
with
102 additions
and
3 deletions
Show diff stats
app/gui/oven_control/manualcookwindow.cpp
| ... | ... | @@ -158,6 +158,11 @@ ManualCookWindow::ManualCookWindow(QWidget *parent, Define::Mode mode) : |
| 158 | 158 | connect(oven, SIGNAL(changed(Oven*)), this, SLOT(onOvenUpdated(Oven*))); |
| 159 | 159 | oven->setDefault(mode); |
| 160 | 160 | |
| 161 | + ui->infoTextLabel->setAttribute(Qt::WA_TransparentForMouseEvents); | |
| 162 | + ui->infoTextLabel->hide(); | |
| 163 | + showInfoTextTimer.setInterval(1500); | |
| 164 | + showInfoTextTimer.setSingleShot(true); | |
| 165 | + | |
| 161 | 166 | connect(&updateViewTimer, SIGNAL(timeout()), SLOT(updateView())); |
| 162 | 167 | updateViewTimer.start(100); |
| 163 | 168 | |
| ... | ... | @@ -447,10 +452,27 @@ QPushButton:checked\ |
| 447 | 452 | } |
| 448 | 453 | |
| 449 | 454 | bool damper = oven->damper(); |
| 450 | - ui->damperButton->setChecked(damper); | |
| 455 | + if (damper != ui->damperButton->isChecked()) | |
| 456 | + { | |
| 457 | + ui->damperButton->setChecked(damper); | |
| 458 | + | |
| 459 | + if (damper) | |
| 460 | + showInfoText("ON"); | |
| 461 | + else | |
| 462 | + showInfoText("OFF"); | |
| 463 | + } | |
| 451 | 464 | |
| 452 | 465 | bool humidification = oven->humidification(); |
| 453 | - ui->humidificationButton->setChecked(humidification); | |
| 466 | + if (humidification != ui->humidificationButton->isChecked()) | |
| 467 | + { | |
| 468 | + ui->humidificationButton->setChecked(humidification); | |
| 469 | + qDebug() << "humidification" << humidification; | |
| 470 | + | |
| 471 | + if (humidification) | |
| 472 | + showInfoText("ON"); | |
| 473 | + else | |
| 474 | + showInfoText("OFF"); | |
| 475 | + } | |
| 454 | 476 | |
| 455 | 477 | QString fanStyleSheet("\ |
| 456 | 478 | QPushButton { background-image: url(%1); }\ |
| ... | ... | @@ -496,7 +518,15 @@ QPushButton:focus { background-image: url(%2); }"); |
| 496 | 518 | } |
| 497 | 519 | } |
| 498 | 520 | |
| 499 | - ui->repeatButton->setChecked(repeat); | |
| 521 | + if (repeat != ui->repeatButton->isChecked()) | |
| 522 | + { | |
| 523 | + ui->repeatButton->setChecked(repeat); | |
| 524 | + | |
| 525 | + if (repeat) | |
| 526 | + showInfoText("ON"); | |
| 527 | + else | |
| 528 | + showInfoText("OFF"); | |
| 529 | + } | |
| 500 | 530 | |
| 501 | 531 | if (cookDone) |
| 502 | 532 | { |
| ... | ... | @@ -512,6 +542,24 @@ QPushButton:focus { background-image: url(%2); }"); |
| 512 | 542 | else |
| 513 | 543 | ui->upperStack->setCurrentIndex(0); // Clock |
| 514 | 544 | } |
| 545 | + | |
| 546 | + int remainingTime = showInfoTextTimer.remainingTime(); | |
| 547 | + if (remainingTime > 500) | |
| 548 | + { | |
| 549 | + ui->infoTextLabel->setStyleSheet("color: rgb(255, 255, 255);"); | |
| 550 | + ui->infoTextLabel->show(); | |
| 551 | + } | |
| 552 | + else if (remainingTime > 0) | |
| 553 | + { | |
| 554 | + ui->infoTextLabel->setStyleSheet( | |
| 555 | + QString("color: rgba(255, 255, 255, %1);") | |
| 556 | + .arg(qBound(0, remainingTime * 255 / 500, 255))); | |
| 557 | + ui->infoTextLabel->show(); | |
| 558 | + } | |
| 559 | + else | |
| 560 | + { | |
| 561 | + ui->infoTextLabel->hide(); | |
| 562 | + } | |
| 515 | 563 | } |
| 516 | 564 | |
| 517 | 565 | void ManualCookWindow::showCurrentHumidity() |
| ... | ... | @@ -538,6 +586,12 @@ void ManualCookWindow::hideCurrentTemp() |
| 538 | 586 | updateView(); |
| 539 | 587 | } |
| 540 | 588 | |
| 589 | +void ManualCookWindow::showInfoText(QString text) | |
| 590 | +{ | |
| 591 | + ui->infoTextLabel->setText(text); | |
| 592 | + showInfoTextTimer.start(); | |
| 593 | +} | |
| 594 | + | |
| 541 | 595 | void ManualCookWindow::onOvenUpdated(Oven *oven) |
| 542 | 596 | { |
| 543 | 597 | updateView(); |
| ... | ... | @@ -981,6 +1035,8 @@ void ManualCookWindow::on_fanButton_clicked() |
| 981 | 1035 | fan = oven->minFan(); |
| 982 | 1036 | |
| 983 | 1037 | oven->setFan(fan); |
| 1038 | + | |
| 1039 | + showInfoText(QString("%1").arg(fan)); | |
| 984 | 1040 | } |
| 985 | 1041 | |
| 986 | 1042 | void ManualCookWindow::on_preheatButton_clicked() |
| ... | ... | @@ -998,17 +1054,29 @@ void ManualCookWindow::on_preheatButton_clicked() |
| 998 | 1054 | void ManualCookWindow::on_damperButton_clicked() |
| 999 | 1055 | { |
| 1000 | 1056 | if (oven->damper()) |
| 1057 | + { | |
| 1001 | 1058 | oven->closeDamper(); |
| 1059 | + showInfoText("OFF"); | |
| 1060 | + } | |
| 1002 | 1061 | else |
| 1062 | + { | |
| 1003 | 1063 | oven->openDamper(); |
| 1064 | + showInfoText("ON"); | |
| 1065 | + } | |
| 1004 | 1066 | } |
| 1005 | 1067 | |
| 1006 | 1068 | void ManualCookWindow::on_humidificationButton_clicked() |
| 1007 | 1069 | { |
| 1008 | 1070 | if (oven->humidification()) |
| 1071 | + { | |
| 1009 | 1072 | oven->stopHumidification(); |
| 1073 | + showInfoText("OFF"); | |
| 1074 | + } | |
| 1010 | 1075 | else |
| 1076 | + { | |
| 1011 | 1077 | oven->startHumidification(5); |
| 1078 | + showInfoText("ON"); | |
| 1079 | + } | |
| 1012 | 1080 | } |
| 1013 | 1081 | |
| 1014 | 1082 | void ManualCookWindow::on_repeatButton_clicked() |
| ... | ... | @@ -1016,11 +1084,13 @@ void ManualCookWindow::on_repeatButton_clicked() |
| 1016 | 1084 | if (repeat) |
| 1017 | 1085 | { |
| 1018 | 1086 | repeat = false; |
| 1087 | + showInfoText("OFF"); | |
| 1019 | 1088 | updateView(); |
| 1020 | 1089 | } |
| 1021 | 1090 | else |
| 1022 | 1091 | { |
| 1023 | 1092 | repeat = true; |
| 1093 | + showInfoText("ON"); | |
| 1024 | 1094 | updateView(); |
| 1025 | 1095 | |
| 1026 | 1096 | repeatSetting.mode = oven->mode(); | ... | ... |
app/gui/oven_control/manualcookwindow.h
| ... | ... | @@ -41,6 +41,7 @@ private slots: |
| 41 | 41 | void hideCurrentHumidity(); |
| 42 | 42 | void showCurrentTemp(); |
| 43 | 43 | void hideCurrentTemp(); |
| 44 | + void showInfoText(QString text); | |
| 44 | 45 | |
| 45 | 46 | void onOvenUpdated(Oven *oven); |
| 46 | 47 | |
| ... | ... | @@ -107,6 +108,7 @@ private: |
| 107 | 108 | |
| 108 | 109 | QTimer showCurrentHumidityTimer; |
| 109 | 110 | QTimer showCurrentTempTimer; |
| 111 | + QTimer showInfoTextTimer; | |
| 110 | 112 | |
| 111 | 113 | int humidity; |
| 112 | 114 | int temp; | ... | ... |
app/gui/oven_control/manualcookwindow.ui
| ... | ... | @@ -1300,6 +1300,32 @@ QPushButton:checked:focus |
| 1300 | 1300 | <string notr="true">background-image: url(:/images/line/manual_button.png);</string> |
| 1301 | 1301 | </property> |
| 1302 | 1302 | </widget> |
| 1303 | + <widget class="QLabel" name="infoTextLabel"> | |
| 1304 | + <property name="geometry"> | |
| 1305 | + <rect> | |
| 1306 | + <x>0</x> | |
| 1307 | + <y>720</y> | |
| 1308 | + <width>900</width> | |
| 1309 | + <height>600</height> | |
| 1310 | + </rect> | |
| 1311 | + </property> | |
| 1312 | + <property name="font"> | |
| 1313 | + <font> | |
| 1314 | + <pointsize>48</pointsize> | |
| 1315 | + <weight>75</weight> | |
| 1316 | + <bold>true</bold> | |
| 1317 | + </font> | |
| 1318 | + </property> | |
| 1319 | + <property name="styleSheet"> | |
| 1320 | + <string notr="true">color: rgba(255, 255, 255, 255);</string> | |
| 1321 | + </property> | |
| 1322 | + <property name="text"> | |
| 1323 | + <string>ON</string> | |
| 1324 | + </property> | |
| 1325 | + <property name="alignment"> | |
| 1326 | + <set>Qt::AlignCenter</set> | |
| 1327 | + </property> | |
| 1328 | + </widget> | |
| 1303 | 1329 | <zorder>sysLine_8</zorder> |
| 1304 | 1330 | <zorder>sysLine_7</zorder> |
| 1305 | 1331 | <zorder>sysLine_9</zorder> |
| ... | ... | @@ -1334,6 +1360,7 @@ QPushButton:checked:focus |
| 1334 | 1360 | <zorder>humiditySlider</zorder> |
| 1335 | 1361 | <zorder>timeSlider</zorder> |
| 1336 | 1362 | <zorder>interTempSlider</zorder> |
| 1363 | + <zorder>infoTextLabel</zorder> | |
| 1337 | 1364 | </widget> |
| 1338 | 1365 | </widget> |
| 1339 | 1366 | <customwidgets> | ... | ... |