Commit 7c415d2f715f2268cdb5ec668830751818121122
1 parent
8765fbc775
Exists in
master
and in
2 other branches
현재 습도/온도 값을 볼 때 슬라이더도 같이 움직이도록 수정
Showing
2 changed files
with
223 additions
and
168 deletions
Show diff stats
app/gui/oven_control/manualcookwindow.cpp
| @@ -34,20 +34,32 @@ ManualCookWindow::ManualCookWindow(QWidget *parent, Define::Mode mode) : | @@ -34,20 +34,32 @@ ManualCookWindow::ManualCookWindow(QWidget *parent, Define::Mode mode) : | ||
| 34 | ui->closeDoorWidget->setParent(ui->upperStack); | 34 | ui->closeDoorWidget->setParent(ui->upperStack); |
| 35 | setAttribute(Qt::WA_DeleteOnClose); | 35 | setAttribute(Qt::WA_DeleteOnClose); |
| 36 | 36 | ||
| 37 | + | ||
| 37 | oven = Oven::getInstance(); | 38 | oven = Oven::getInstance(); |
| 39 | + | ||
| 40 | + lastViewHumidity = -1; | ||
| 41 | + lastViewTemp = -1; | ||
| 42 | + lastViewTime = -1; | ||
| 43 | + lastViewInterTemp = -1; | ||
| 44 | + lastViewInterTempEnabled = !oven->interTempEnabled(); | ||
| 45 | + lastViewCooking = false; | ||
| 46 | + lastViewDamper = false; | ||
| 47 | + lastViewHumidification = false; | ||
| 48 | + lastViewFan = -1; | ||
| 49 | + | ||
| 38 | connect(oven, SIGNAL(changed(Oven*)), this, SLOT(onOvenUpdated(Oven*))); | 50 | connect(oven, SIGNAL(changed(Oven*)), this, SLOT(onOvenUpdated(Oven*))); |
| 39 | 51 | ||
| 40 | connect(ui->humiditySlider, SIGNAL(valueChanged(int)), oven, SLOT(setHumidity(int))); | 52 | connect(ui->humiditySlider, SIGNAL(valueChanged(int)), oven, SLOT(setHumidity(int))); |
| 41 | connect(ui->tempSlider, SIGNAL(valueChanged(int)), oven, SLOT(setTemp(int))); | 53 | connect(ui->tempSlider, SIGNAL(valueChanged(int)), oven, SLOT(setTemp(int))); |
| 42 | connect(ui->timeSlider, SIGNAL(valueChanged(int)), oven, SLOT(setTime(int))); | 54 | connect(ui->timeSlider, SIGNAL(valueChanged(int)), oven, SLOT(setTime(int))); |
| 43 | connect(ui->timeSlider, SIGNAL(valueChanged(int)), &startCookingTimer, SLOT(start())); | 55 | connect(ui->timeSlider, SIGNAL(valueChanged(int)), &startCookingTimer, SLOT(start())); |
| 44 | - connect(ui->timeSlider, SIGNAL(valueChanged(int)), this, SLOT(updateLabels())); | 56 | + connect(ui->timeSlider, SIGNAL(valueChanged(int)), this, SLOT(updateView())); |
| 45 | connect(ui->interTempSlider, SIGNAL(valueChanged(int)), oven, SLOT(setInterTemp(int))); | 57 | connect(ui->interTempSlider, SIGNAL(valueChanged(int)), oven, SLOT(setInterTemp(int))); |
| 46 | 58 | ||
| 47 | - connect(ui->humiditySlider, SIGNAL(sliderMoved(int)), this, SLOT(updateLabels())); | ||
| 48 | - connect(ui->tempSlider, SIGNAL(sliderMoved(int)), this, SLOT(updateLabels())); | ||
| 49 | - connect(ui->timeSlider, SIGNAL(sliderMoved(int)), this, SLOT(updateLabels())); | ||
| 50 | - connect(ui->interTempSlider, SIGNAL(sliderMoved(int)), this, SLOT(updateLabels())); | 59 | + connect(ui->humiditySlider, SIGNAL(sliderMoved(int)), this, SLOT(updateView())); |
| 60 | + connect(ui->tempSlider, SIGNAL(sliderMoved(int)), this, SLOT(updateView())); | ||
| 61 | + connect(ui->timeSlider, SIGNAL(sliderMoved(int)), this, SLOT(updateView())); | ||
| 62 | + connect(ui->interTempSlider, SIGNAL(sliderMoved(int)), this, SLOT(updateView())); | ||
| 51 | 63 | ||
| 52 | startCookingTimer.setSingleShot(true); | 64 | startCookingTimer.setSingleShot(true); |
| 53 | startCookingTimer.setInterval(2000); | 65 | startCookingTimer.setInterval(2000); |
| @@ -63,9 +75,8 @@ ManualCookWindow::ManualCookWindow(QWidget *parent, Define::Mode mode) : | @@ -63,9 +75,8 @@ ManualCookWindow::ManualCookWindow(QWidget *parent, Define::Mode mode) : | ||
| 63 | 75 | ||
| 64 | oven->setDefault(mode); | 76 | oven->setDefault(mode); |
| 65 | 77 | ||
| 66 | - checkTimeTimer.setInterval(100); | ||
| 67 | - connect(&checkTimeTimer, SIGNAL(timeout()), SLOT(checkTime())); | ||
| 68 | - checkTimeTimer.start(); | 78 | + connect(&updateViewTimer, SIGNAL(timeout()), SLOT(updateView())); |
| 79 | + updateViewTimer.start(100); | ||
| 69 | 80 | ||
| 70 | foreach (QPushButton *button, findChildren<QPushButton *>()) | 81 | foreach (QPushButton *button, findChildren<QPushButton *>()) |
| 71 | connect(button, &QPushButton::pressed, SoundPlayer::playClick); | 82 | connect(button, &QPushButton::pressed, SoundPlayer::playClick); |
| @@ -107,66 +118,25 @@ void ManualCookWindow::setupAnimation() | @@ -107,66 +118,25 @@ void ManualCookWindow::setupAnimation() | ||
| 107 | ui->openDoorAnimation->start(300); | 118 | ui->openDoorAnimation->start(300); |
| 108 | } | 119 | } |
| 109 | 120 | ||
| 110 | -void ManualCookWindow::checkTime() | 121 | +void ManualCookWindow::updateView() |
| 111 | { | 122 | { |
| 112 | - if (!ui->timeSlider->isSliderDown()) | ||
| 113 | - { | ||
| 114 | - bool old = ui->timeSlider->blockSignals(true); | ||
| 115 | - ui->timeSlider->setSliderPosition(oven->time()); | ||
| 116 | - ui->timeSlider->blockSignals(old); | ||
| 117 | - | ||
| 118 | - updateLabels(); | ||
| 119 | - } | ||
| 120 | - | ||
| 121 | - if (oven->interTempEnabled() && oven->currentInterTemp() >= oven->interTemp()) | ||
| 122 | - { | ||
| 123 | - oven->stopCooking(); | ||
| 124 | - } | ||
| 125 | - | ||
| 126 | - if (repeat && !oven->cooking()) | 123 | + switch (oven->mode()) |
| 127 | { | 124 | { |
| 128 | - repeat = false; | ||
| 129 | - | ||
| 130 | - ui->repeatButton->setStyleSheet("\ | ||
| 131 | -QPushButton { background-image: url(:/images/manual_button/repeat.png); }\ | ||
| 132 | -QPushButton:pressed { background-image: url(:/images/manual_button/repeat_ov.png); }"); | ||
| 133 | - | ||
| 134 | - oven->setMode(repeatSetting.mode); | ||
| 135 | - oven->setHumidity(repeatSetting.humidity); | ||
| 136 | - oven->setTemp(repeatSetting.temp); | ||
| 137 | - oven->setTime(repeatSetting.time); | ||
| 138 | - oven->setInterTempEnabled(repeatSetting.coreTempEnabled); | ||
| 139 | - oven->setInterTemp(repeatSetting.coreTemp); | 125 | + case Define::DryMode: |
| 126 | + if (!ui->dryheatButton->isChecked()) | ||
| 127 | + ui->dryheatButton->setChecked(true); | ||
| 128 | + break; | ||
| 129 | + case Define::SteamMode: | ||
| 130 | + if (!ui->steamButton->isChecked()) | ||
| 131 | + ui->steamButton->setChecked(true); | ||
| 132 | + break; | ||
| 133 | + case Define::CombiMode: | ||
| 134 | + if (!ui->combiButton->isChecked()) | ||
| 135 | + ui->combiButton->setChecked(true); | ||
| 136 | + break; | ||
| 137 | + default: | ||
| 138 | + break; | ||
| 140 | } | 139 | } |
| 141 | -} | ||
| 142 | - | ||
| 143 | -void ManualCookWindow::showCurrentHumidity() | ||
| 144 | -{ | ||
| 145 | - showCurrentHumidity_ = true; | ||
| 146 | - updateLabels(); | ||
| 147 | -} | ||
| 148 | - | ||
| 149 | -void ManualCookWindow::hideCurrentHumidity() | ||
| 150 | -{ | ||
| 151 | - showCurrentHumidity_ = false; | ||
| 152 | - updateLabels(); | ||
| 153 | -} | ||
| 154 | - | ||
| 155 | -void ManualCookWindow::showCurrentTemp() | ||
| 156 | -{ | ||
| 157 | - showCurrentTemp_ = true; | ||
| 158 | - updateLabels(); | ||
| 159 | -} | ||
| 160 | - | ||
| 161 | -void ManualCookWindow::hideCurrentTemp() | ||
| 162 | -{ | ||
| 163 | - showCurrentTemp_ = false; | ||
| 164 | - updateLabels(); | ||
| 165 | -} | ||
| 166 | - | ||
| 167 | -void ManualCookWindow::updateLabels() | ||
| 168 | -{ | ||
| 169 | - QString buf; | ||
| 170 | 140 | ||
| 171 | int humidity; | 141 | int humidity; |
| 172 | if (showCurrentHumidity_) | 142 | if (showCurrentHumidity_) |
| @@ -176,7 +146,18 @@ void ManualCookWindow::updateLabels() | @@ -176,7 +146,18 @@ void ManualCookWindow::updateLabels() | ||
| 176 | else | 146 | else |
| 177 | humidity = oven->humidity(); | 147 | humidity = oven->humidity(); |
| 178 | 148 | ||
| 179 | - ui->humidityLabel->setText(buf.sprintf("%d%%", humidity)); | 149 | + if (humidity != lastViewHumidity) |
| 150 | + { | ||
| 151 | + lastViewHumidity = humidity; | ||
| 152 | + | ||
| 153 | + bool old = ui->humiditySlider->blockSignals(true); | ||
| 154 | + if (ui->humiditySlider->sliderPosition() != humidity) | ||
| 155 | + ui->humiditySlider->setValue(humidity); | ||
| 156 | + ui->humiditySlider->setEnabled(oven->mode() == Define::CombiMode); | ||
| 157 | + ui->humiditySlider->blockSignals(old); | ||
| 158 | + | ||
| 159 | + ui->humidityLabel->setText(QString("%1%").arg(humidity)); | ||
| 160 | + } | ||
| 180 | 161 | ||
| 181 | int temp; | 162 | int temp; |
| 182 | if (showCurrentTemp_) | 163 | if (showCurrentTemp_) |
| @@ -186,7 +167,18 @@ void ManualCookWindow::updateLabels() | @@ -186,7 +167,18 @@ void ManualCookWindow::updateLabels() | ||
| 186 | else | 167 | else |
| 187 | temp = oven->temp(); | 168 | temp = oven->temp(); |
| 188 | 169 | ||
| 189 | - ui->tempLabel->setText(Stringer::temperature(temp, Stringer::fontSize14)); | 170 | + if (temp != lastViewTemp) |
| 171 | + { | ||
| 172 | + lastViewTemp = temp; | ||
| 173 | + | ||
| 174 | + bool old = ui->tempSlider->blockSignals(true); | ||
| 175 | + ui->tempSlider->setRange(oven->minTemp(), oven->maxTemp()); | ||
| 176 | + if (ui->tempSlider->sliderPosition() != temp) | ||
| 177 | + ui->tempSlider->setValue(temp); | ||
| 178 | + ui->tempSlider->blockSignals(old); | ||
| 179 | + | ||
| 180 | + ui->tempLabel->setText(Stringer::temperature(temp, Stringer::fontSize14)); | ||
| 181 | + } | ||
| 190 | 182 | ||
| 191 | int msecs; | 183 | int msecs; |
| 192 | if (ui->timeSlider->isSliderDown()) | 184 | if (ui->timeSlider->isSliderDown()) |
| @@ -194,128 +186,133 @@ void ManualCookWindow::updateLabels() | @@ -194,128 +186,133 @@ void ManualCookWindow::updateLabels() | ||
| 194 | else | 186 | else |
| 195 | msecs = oven->msecs(); | 187 | msecs = oven->msecs(); |
| 196 | 188 | ||
| 197 | - ui->timeLabel->setText(Stringer::remainingTime(msecs, Stringer::fontSize14)); | ||
| 198 | - | ||
| 199 | - if (oven->interTempEnabled()) | 189 | + if (msecs != lastViewTime) |
| 200 | { | 190 | { |
| 201 | - int interTemp; | ||
| 202 | - if (ui->interTempSlider->isSliderDown()) | ||
| 203 | - interTemp = ui->interTempSlider->sliderPosition(); | ||
| 204 | - else | ||
| 205 | - interTemp = oven->interTemp(); | 191 | + lastViewTime = msecs; |
| 206 | 192 | ||
| 207 | - ui->interTempLabel->setText(Stringer::temperature(interTemp, Stringer::fontSize14)); | ||
| 208 | - } | ||
| 209 | - else | ||
| 210 | - ui->interTempLabel->setText(Stringer::unusedTemperature(Stringer::fontSize14)); | ||
| 211 | -} | 193 | + bool old = ui->timeSlider->blockSignals(true); |
| 194 | + ui->timeSlider->setSliderPosition(msecs / 1000); | ||
| 195 | + ui->timeSlider->blockSignals(old); | ||
| 212 | 196 | ||
| 213 | -void ManualCookWindow::onOvenUpdated(Oven *oven) | ||
| 214 | -{ | ||
| 215 | - switch (oven->mode()) | ||
| 216 | - { | ||
| 217 | - case Define::DryMode: | ||
| 218 | - ui->dryheatButton->setChecked(true); | ||
| 219 | - break; | ||
| 220 | - case Define::SteamMode: | ||
| 221 | - ui->steamButton->setChecked(true); | ||
| 222 | - break; | ||
| 223 | - case Define::CombiMode: | ||
| 224 | - ui->combiButton->setChecked(true); | ||
| 225 | - break; | ||
| 226 | - default: | ||
| 227 | - break; | 197 | + ui->timeLabel->setText(Stringer::remainingTime(msecs, Stringer::fontSize14)); |
| 228 | } | 198 | } |
| 229 | 199 | ||
| 230 | - bool old; | ||
| 231 | - old = ui->humiditySlider->blockSignals(true); | ||
| 232 | - ui->humiditySlider->setValue(oven->humidity()); | ||
| 233 | - ui->humiditySlider->setEnabled(oven->mode() == Define::CombiMode); | ||
| 234 | - ui->humiditySlider->blockSignals(old); | ||
| 235 | - | ||
| 236 | - old = ui->tempSlider->blockSignals(true); | ||
| 237 | - ui->tempSlider->setRange(oven->minTemp(), oven->maxTemp()); | ||
| 238 | - ui->tempSlider->setValue(oven->temp()); | ||
| 239 | - ui->tempSlider->blockSignals(old); | 200 | + int interTemp; |
| 201 | + if (ui->interTempSlider->isSliderDown()) | ||
| 202 | + interTemp = ui->interTempSlider->sliderPosition(); | ||
| 203 | + else | ||
| 204 | + interTemp = oven->interTemp(); | ||
| 240 | 205 | ||
| 241 | - if (!ui->timeSlider->isSliderDown()) | 206 | + bool interTempEnabled = oven->interTempEnabled(); |
| 207 | + if (interTempEnabled != lastViewInterTempEnabled || interTemp != lastViewInterTemp) | ||
| 242 | { | 208 | { |
| 243 | - old = ui->timeSlider->blockSignals(true); | ||
| 244 | - ui->timeSlider->setValue(oven->time()); | ||
| 245 | - ui->timeSlider->blockSignals(old); | ||
| 246 | - } | 209 | + if (interTempEnabled != lastViewInterTempEnabled) |
| 210 | + { | ||
| 211 | + lastViewInterTempEnabled = oven->interTempEnabled(); | ||
| 247 | 212 | ||
| 248 | -// ui->interTempButton->setChecked(oven->interTempEnabled()); | ||
| 249 | - if (oven->interTempEnabled()) | ||
| 250 | - ui->interTempButton->setStyleSheet("\ | 213 | + if (interTempEnabled) |
| 214 | + ui->interTempButton->setStyleSheet("\ | ||
| 251 | QPushButton {\ | 215 | QPushButton {\ |
| 252 | image: url(:/images/slider_icon/core_temp_enabled.png);\ | 216 | image: url(:/images/slider_icon/core_temp_enabled.png);\ |
| 253 | }\ | 217 | }\ |
| 254 | QPushButton:pressed {\ | 218 | QPushButton:pressed {\ |
| 255 | image: url(:/images/slider_icon/core_temp_ov.png);\ | 219 | image: url(:/images/slider_icon/core_temp_ov.png);\ |
| 256 | }"); | 220 | }"); |
| 257 | - else | ||
| 258 | - ui->interTempButton->setStyleSheet("\ | 221 | + else |
| 222 | + ui->interTempButton->setStyleSheet("\ | ||
| 259 | QPushButton {\ | 223 | QPushButton {\ |
| 260 | image: url(:/images/slider_icon/core_temp.png);\ | 224 | image: url(:/images/slider_icon/core_temp.png);\ |
| 261 | }\ | 225 | }\ |
| 262 | QPushButton:pressed {\ | 226 | QPushButton:pressed {\ |
| 263 | image: url(:/images/slider_icon/core_temp_ov.png);\ | 227 | image: url(:/images/slider_icon/core_temp_ov.png);\ |
| 264 | }"); | 228 | }"); |
| 229 | + } | ||
| 265 | 230 | ||
| 266 | - old = ui->interTempSlider->blockSignals(true); | ||
| 267 | - ui->interTempSlider->setEnabled(oven->interTempEnabled()); | ||
| 268 | - ui->interTempSlider->setRange(oven->minInterTemp(), oven->maxInterTemp()); | ||
| 269 | - ui->interTempSlider->setValue(oven->interTemp()); | ||
| 270 | - ui->interTempSlider->blockSignals(old); | 231 | + lastViewInterTemp = interTemp; |
| 271 | 232 | ||
| 272 | - if (oven->cooking()) | ||
| 273 | - ui->runStopButton->setStyleSheet( | ||
| 274 | - "border-image: url(:/images/manual_button/stop.png)"); | ||
| 275 | - else | ||
| 276 | - ui->runStopButton->setStyleSheet( | ||
| 277 | - "border-image: url(:/images/manual_button/run.png)"); | 233 | + bool old = ui->interTempSlider->blockSignals(true); |
| 234 | + ui->interTempSlider->setEnabled(interTempEnabled); | ||
| 235 | + ui->interTempSlider->setRange(oven->minInterTemp(), oven->maxInterTemp()); | ||
| 236 | + ui->interTempSlider->setValue(interTemp); | ||
| 237 | + ui->interTempSlider->blockSignals(old); | ||
| 278 | 238 | ||
| 279 | - if (oven->damper()) | ||
| 280 | - ui->damperButton->setStyleSheet( | ||
| 281 | - "background-image: url(:/images/manual_button/damper_open.png)"); | ||
| 282 | - else | ||
| 283 | - ui->damperButton->setStyleSheet( | ||
| 284 | - "background-image: url(:/images/manual_button/damper_close.png)"); | 239 | + if (interTempEnabled) |
| 240 | + ui->interTempLabel->setText(Stringer::temperature(interTemp, Stringer::fontSize14)); | ||
| 241 | + else | ||
| 242 | + ui->interTempLabel->setText(Stringer::unusedTemperature(Stringer::fontSize14)); | ||
| 243 | + } | ||
| 285 | 244 | ||
| 286 | - if (oven->humidification()) | ||
| 287 | - ui->humidificationButton->setStyleSheet( | ||
| 288 | - "background-image: url(:/images/manual_button/side_nozzle_open.png)"); | ||
| 289 | - else | ||
| 290 | - ui->humidificationButton->setStyleSheet( | ||
| 291 | - "background-image: url(:/images/manual_button/side_nozzle_close.png)"); | 245 | + bool cooking = oven->cooking(); |
| 246 | + if (cooking != lastViewCooking) | ||
| 247 | + { | ||
| 248 | + lastViewCooking = cooking; | ||
| 249 | + | ||
| 250 | + if (cooking) | ||
| 251 | + ui->runStopButton->setStyleSheet( | ||
| 252 | + "border-image: url(:/images/manual_button/stop.png)"); | ||
| 253 | + else | ||
| 254 | + ui->runStopButton->setStyleSheet( | ||
| 255 | + "border-image: url(:/images/manual_button/run.png)"); | ||
| 256 | + } | ||
| 292 | 257 | ||
| 293 | - switch (oven->fan()) | 258 | + bool damper = oven->damper(); |
| 259 | + if (damper != lastViewDamper) | ||
| 294 | { | 260 | { |
| 295 | - case 1: | ||
| 296 | - ui->fanButton->setStyleSheet( | ||
| 297 | - "background-image: url(:/images/manual_button/fan_1.png)"); | ||
| 298 | - break; | ||
| 299 | - case 2: | ||
| 300 | - ui->fanButton->setStyleSheet( | ||
| 301 | - "background-image: url(:/images/manual_button/fan_2.png)"); | ||
| 302 | - break; | ||
| 303 | - case 3: | ||
| 304 | - ui->fanButton->setStyleSheet( | ||
| 305 | - "background-image: url(:/images/manual_button/fan_3.png)"); | ||
| 306 | - break; | ||
| 307 | - case 4: | ||
| 308 | - ui->fanButton->setStyleSheet( | ||
| 309 | - "background-image: url(:/images/manual_button/fan_4.png)"); | ||
| 310 | - break; | ||
| 311 | - case 5: | ||
| 312 | - ui->fanButton->setStyleSheet( | ||
| 313 | - "background-image: url(:/images/manual_button/fan_5.png)"); | ||
| 314 | - break; | ||
| 315 | - default: | ||
| 316 | - ui->fanButton->setStyleSheet( | ||
| 317 | - "background-image: url(:/images/manual_button/fan_1.png)"); | ||
| 318 | - break; | 261 | + lastViewDamper = damper; |
| 262 | + | ||
| 263 | + if (damper) | ||
| 264 | + ui->damperButton->setStyleSheet( | ||
| 265 | + "background-image: url(:/images/manual_button/damper_open.png)"); | ||
| 266 | + else | ||
| 267 | + ui->damperButton->setStyleSheet( | ||
| 268 | + "background-image: url(:/images/manual_button/damper_close.png)"); | ||
| 269 | + } | ||
| 270 | + | ||
| 271 | + bool humidification = oven->humidification(); | ||
| 272 | + if (humidification != lastViewHumidification) | ||
| 273 | + { | ||
| 274 | + lastViewHumidification = humidification; | ||
| 275 | + | ||
| 276 | + if (humidification) | ||
| 277 | + ui->humidificationButton->setStyleSheet( | ||
| 278 | + "background-image: url(:/images/manual_button/side_nozzle_open.png)"); | ||
| 279 | + else | ||
| 280 | + ui->humidificationButton->setStyleSheet( | ||
| 281 | + "background-image: url(:/images/manual_button/side_nozzle_close.png)"); | ||
| 282 | + } | ||
| 283 | + | ||
| 284 | + int fan = oven->fan(); | ||
| 285 | + if (fan != lastViewFan) | ||
| 286 | + { | ||
| 287 | + lastViewFan = fan; | ||
| 288 | + | ||
| 289 | + switch (fan) | ||
| 290 | + { | ||
| 291 | + case 1: | ||
| 292 | + ui->fanButton->setStyleSheet( | ||
| 293 | + "background-image: url(:/images/manual_button/fan_1.png)"); | ||
| 294 | + break; | ||
| 295 | + case 2: | ||
| 296 | + ui->fanButton->setStyleSheet( | ||
| 297 | + "background-image: url(:/images/manual_button/fan_2.png)"); | ||
| 298 | + break; | ||
| 299 | + case 3: | ||
| 300 | + ui->fanButton->setStyleSheet( | ||
| 301 | + "background-image: url(:/images/manual_button/fan_3.png)"); | ||
| 302 | + break; | ||
| 303 | + case 4: | ||
| 304 | + ui->fanButton->setStyleSheet( | ||
| 305 | + "background-image: url(:/images/manual_button/fan_4.png)"); | ||
| 306 | + break; | ||
| 307 | + case 5: | ||
| 308 | + ui->fanButton->setStyleSheet( | ||
| 309 | + "background-image: url(:/images/manual_button/fan_5.png)"); | ||
| 310 | + break; | ||
| 311 | + default: | ||
| 312 | + ui->fanButton->setStyleSheet( | ||
| 313 | + "background-image: url(:/images/manual_button/fan_1.png)"); | ||
| 314 | + break; | ||
| 315 | + } | ||
| 319 | } | 316 | } |
| 320 | 317 | ||
| 321 | if (oven->paused() && !oven->cooldown() && oven->door()) | 318 | if (oven->paused() && !oven->cooldown() && oven->door()) |
| @@ -323,7 +320,7 @@ QPushButton:pressed {\ | @@ -323,7 +320,7 @@ QPushButton:pressed {\ | ||
| 323 | else | 320 | else |
| 324 | ui->upperStack->setCurrentIndex(0); | 321 | ui->upperStack->setCurrentIndex(0); |
| 325 | 322 | ||
| 326 | - if (oven->cooking() || oven->cooldown() || oven->preheating()) | 323 | + if (oven->cooking()) |
| 327 | { | 324 | { |
| 328 | ui->reserveButton->hide(); | 325 | ui->reserveButton->hide(); |
| 329 | ui->favoriteButton->hide(); | 326 | ui->favoriteButton->hide(); |
| @@ -336,7 +333,56 @@ QPushButton:pressed {\ | @@ -336,7 +333,56 @@ QPushButton:pressed {\ | ||
| 336 | ui->repeatButton->hide(); | 333 | ui->repeatButton->hide(); |
| 337 | } | 334 | } |
| 338 | 335 | ||
| 339 | - updateLabels(); | 336 | +} |
| 337 | + | ||
| 338 | +void ManualCookWindow::showCurrentHumidity() | ||
| 339 | +{ | ||
| 340 | + showCurrentHumidity_ = true; | ||
| 341 | + updateView(); | ||
| 342 | +} | ||
| 343 | + | ||
| 344 | +void ManualCookWindow::hideCurrentHumidity() | ||
| 345 | +{ | ||
| 346 | + showCurrentHumidity_ = false; | ||
| 347 | + updateView(); | ||
| 348 | +} | ||
| 349 | + | ||
| 350 | +void ManualCookWindow::showCurrentTemp() | ||
| 351 | +{ | ||
| 352 | + showCurrentTemp_ = true; | ||
| 353 | + updateView(); | ||
| 354 | +} | ||
| 355 | + | ||
| 356 | +void ManualCookWindow::hideCurrentTemp() | ||
| 357 | +{ | ||
| 358 | + showCurrentTemp_ = false; | ||
| 359 | + updateView(); | ||
| 360 | +} | ||
| 361 | + | ||
| 362 | +void ManualCookWindow::onOvenUpdated(Oven *oven) | ||
| 363 | +{ | ||
| 364 | + updateView(); | ||
| 365 | + | ||
| 366 | + if (oven->interTempEnabled() && oven->currentInterTemp() >= oven->interTemp()) | ||
| 367 | + { | ||
| 368 | + oven->stopCooking(); | ||
| 369 | + } | ||
| 370 | + | ||
| 371 | + if (repeat && !oven->cooking()) | ||
| 372 | + { | ||
| 373 | + repeat = false; | ||
| 374 | + | ||
| 375 | + ui->repeatButton->setStyleSheet("\ | ||
| 376 | +QPushButton { background-image: url(:/images/manual_button/repeat.png); }\ | ||
| 377 | +QPushButton:pressed { background-image: url(:/images/manual_button/repeat_ov.png); }"); | ||
| 378 | + | ||
| 379 | + oven->setMode(repeatSetting.mode); | ||
| 380 | + oven->setHumidity(repeatSetting.humidity); | ||
| 381 | + oven->setTemp(repeatSetting.temp); | ||
| 382 | + oven->setTime(repeatSetting.time); | ||
| 383 | + oven->setInterTempEnabled(repeatSetting.coreTempEnabled); | ||
| 384 | + oven->setInterTemp(repeatSetting.coreTemp); | ||
| 385 | + } | ||
| 340 | } | 386 | } |
| 341 | 387 | ||
| 342 | void ManualCookWindow::setOvenDefault(Define::Mode mode) | 388 | void ManualCookWindow::setOvenDefault(Define::Mode mode) |
app/gui/oven_control/manualcookwindow.h
| @@ -30,8 +30,7 @@ private slots: | @@ -30,8 +30,7 @@ private slots: | ||
| 30 | void setOvenDefault(Define::Mode mode); | 30 | void setOvenDefault(Define::Mode mode); |
| 31 | void start(); | 31 | void start(); |
| 32 | void stop(); | 32 | void stop(); |
| 33 | - void checkTime(); | ||
| 34 | - void updateLabels(); | 33 | + void updateView(); |
| 35 | void showCurrentHumidity(); | 34 | void showCurrentHumidity(); |
| 36 | void hideCurrentHumidity(); | 35 | void hideCurrentHumidity(); |
| 37 | void showCurrentTemp(); | 36 | void showCurrentTemp(); |
| @@ -77,7 +76,7 @@ private: | @@ -77,7 +76,7 @@ private: | ||
| 77 | Oven *oven; | 76 | Oven *oven; |
| 78 | 77 | ||
| 79 | QTimer startCookingTimer; | 78 | QTimer startCookingTimer; |
| 80 | - QTimer checkTimeTimer; | 79 | + QTimer updateViewTimer; |
| 81 | 80 | ||
| 82 | QTimer showCurrentHumidityTimer; | 81 | QTimer showCurrentHumidityTimer; |
| 83 | QTimer showCurrentTempTimer; | 82 | QTimer showCurrentTempTimer; |
| @@ -90,6 +89,16 @@ private: | @@ -90,6 +89,16 @@ private: | ||
| 90 | bool showCurrentHumidity_ = false; | 89 | bool showCurrentHumidity_ = false; |
| 91 | bool showCurrentTemp_ = false; | 90 | bool showCurrentTemp_ = false; |
| 92 | 91 | ||
| 92 | + int lastViewHumidity; | ||
| 93 | + int lastViewTemp; | ||
| 94 | + int lastViewTime; | ||
| 95 | + int lastViewInterTemp; | ||
| 96 | + bool lastViewInterTempEnabled; | ||
| 97 | + bool lastViewCooking; | ||
| 98 | + bool lastViewDamper; | ||
| 99 | + bool lastViewHumidification; | ||
| 100 | + int lastViewFan; | ||
| 101 | + | ||
| 93 | ManualCookSetting repeatSetting; | 102 | ManualCookSetting repeatSetting; |
| 94 | bool repeat; | 103 | bool repeat; |
| 95 | }; | 104 | }; |