Commit 2bfd3a050666e56dcafafeda6c64f8132091612c
1 parent
9374091867
Exists in
master
and in
2 other branches
환경 설정 대응
- 온도 단위 반영 - 잔여 시간 형식 반영
Showing
16 changed files
with
369 additions
and
170 deletions
Show diff stats
app/gui/oven_control/autocook.cpp
| @@ -521,3 +521,31 @@ int AutoCook::remainingTime() | @@ -521,3 +521,31 @@ int AutoCook::remainingTime() | ||
| 521 | return t / 1000; | 521 | return t / 1000; |
| 522 | } | 522 | } |
| 523 | } | 523 | } |
| 524 | + | ||
| 525 | +int AutoCook::msecs() | ||
| 526 | +{ | ||
| 527 | + if (done_) | ||
| 528 | + { | ||
| 529 | + return 0; | ||
| 530 | + } | ||
| 531 | + else if (checkingCoreTemp && currentStepIndex + 1 >= cook.steps.size()) | ||
| 532 | + { | ||
| 533 | + CookStep &step = cook.steps[cook.steps.size() - 1]; | ||
| 534 | + int t = step.time; | ||
| 535 | + if (!doorOpened) | ||
| 536 | + t -= lastCoreTempIncreasedTime.elapsed(); | ||
| 537 | + | ||
| 538 | + return t; | ||
| 539 | + } | ||
| 540 | + else | ||
| 541 | + { | ||
| 542 | + int t = 0; | ||
| 543 | + for (int i = currentStepIndex; i < cook.steps.size(); i++) | ||
| 544 | + t += cook.steps[i].time; | ||
| 545 | + | ||
| 546 | + if (!doorOpened && Define::classify(cook.steps[currentStepIndex].type) == Define::CookClass) | ||
| 547 | + t -= stepStartTime.elapsed(); | ||
| 548 | + | ||
| 549 | + return t; | ||
| 550 | + } | ||
| 551 | +} |
app/gui/oven_control/autocook.h
| @@ -19,6 +19,8 @@ public: | @@ -19,6 +19,8 @@ public: | ||
| 19 | bool isWaitingDoorOpened() { return isWaitingDoorOpened_; } | 19 | bool isWaitingDoorOpened() { return isWaitingDoorOpened_; } |
| 20 | bool done() { return done_; } | 20 | bool done() { return done_; } |
| 21 | 21 | ||
| 22 | + int msecs(); | ||
| 23 | + | ||
| 22 | Cook cook; | 24 | Cook cook; |
| 23 | int currentStepIndex; | 25 | int currentStepIndex; |
| 24 | 26 |
app/gui/oven_control/autocookconfigwindow.cpp
| @@ -3,6 +3,7 @@ | @@ -3,6 +3,7 @@ | ||
| 3 | 3 | ||
| 4 | #include "autocookwindow.h" | 4 | #include "autocookwindow.h" |
| 5 | #include "confirmpopup.h" | 5 | #include "confirmpopup.h" |
| 6 | +#include "stringer.h" | ||
| 6 | #include "favoritenamepopup.h" | 7 | #include "favoritenamepopup.h" |
| 7 | 8 | ||
| 8 | AutoCookConfigWindow::AutoCookConfigWindow(QWidget *parent, Cook cook) : | 9 | AutoCookConfigWindow::AutoCookConfigWindow(QWidget *parent, Cook cook) : |
| @@ -129,10 +130,6 @@ void AutoCookConfigWindow::setupUi() | @@ -129,10 +130,6 @@ void AutoCookConfigWindow::setupUi() | ||
| 129 | break; | 130 | break; |
| 130 | } | 131 | } |
| 131 | 132 | ||
| 132 | -// cw.slider->style()->unpolish(cw.slider); | ||
| 133 | -// cw.slider->style()->polish(cw.slider); | ||
| 134 | -// cw.slider->update(); | ||
| 135 | - | ||
| 136 | connect(cw.slider, SIGNAL(valueChanged(int)), SLOT(updateConfig())); | 133 | connect(cw.slider, SIGNAL(valueChanged(int)), SLOT(updateConfig())); |
| 137 | } | 134 | } |
| 138 | } | 135 | } |
| @@ -153,36 +150,10 @@ void AutoCookConfigWindow::updateView() | @@ -153,36 +150,10 @@ void AutoCookConfigWindow::updateView() | ||
| 153 | switch (config.type) | 150 | switch (config.type) |
| 154 | { | 151 | { |
| 155 | case Define::Time: | 152 | case Define::Time: |
| 156 | - { | ||
| 157 | - int time = cook.time(); | ||
| 158 | - if (time >= 3600) | ||
| 159 | - cw.current->setText(QString().sprintf( | ||
| 160 | - "%d" | ||
| 161 | - "<span style=\"font-size:11pt;\">시간</span>" | ||
| 162 | - " %02d" | ||
| 163 | - "<span style=\"font-size:11pt;\">분</span>", | ||
| 164 | - time / 3600, | ||
| 165 | - (time % 3600) / 60)); | ||
| 166 | - else if (time >= 60) | ||
| 167 | - cw.current->setText(QString().sprintf( | ||
| 168 | - "%d" | ||
| 169 | - "<span style=\"font-size:11pt;\">분</span>" | ||
| 170 | - " %02d" | ||
| 171 | - "<span style=\"font-size:11pt;\">초</span>", | ||
| 172 | - time / 60, | ||
| 173 | - time % 60)); | ||
| 174 | - else | ||
| 175 | - cw.current->setText(QString().sprintf( | ||
| 176 | - "%d" | ||
| 177 | - "<span style=\"font-size:11pt;\">초</span>", | ||
| 178 | - time)); | 153 | + cw.current->setText(Stringer::remainingTime(cook.time() * 1000, Stringer::fontSize14)); |
| 179 | break; | 154 | break; |
| 180 | - } | ||
| 181 | case Define::BurnDegree: | 155 | case Define::BurnDegree: |
| 182 | - cw.current->setText(QString().sprintf( | ||
| 183 | - "%d" | ||
| 184 | - "<span style=\"font-size:11pt;\">℃</span>", | ||
| 185 | - cook.coreTemp())); | 156 | + cw.current->setText(Stringer::temperature(cook.coreTemp(), Stringer::fontSize14)); |
| 186 | break; | 157 | break; |
| 187 | default: | 158 | default: |
| 188 | cw.current->setText(QString().sprintf( | 159 | cw.current->setText(QString().sprintf( |
app/gui/oven_control/autocooksettingwidget.cpp
| 1 | #include "autocooksettingwidget.h" | 1 | #include "autocooksettingwidget.h" |
| 2 | #include "ui_autocooksettingwidget.h" | 2 | #include "ui_autocooksettingwidget.h" |
| 3 | 3 | ||
| 4 | +#include "stringer.h" | ||
| 4 | 5 | ||
| 5 | AutoCookSettingWidget::AutoCookSettingWidget(AutoCookSetting setting, QWidget *parent) : | 6 | AutoCookSettingWidget::AutoCookSettingWidget(AutoCookSetting setting, QWidget *parent) : |
| 6 | QWidget(parent), | 7 | QWidget(parent), |
| @@ -116,36 +117,10 @@ void AutoCookSettingWidget::setupUi(Cook cook) | @@ -116,36 +117,10 @@ void AutoCookSettingWidget::setupUi(Cook cook) | ||
| 116 | switch (config.type) | 117 | switch (config.type) |
| 117 | { | 118 | { |
| 118 | case Define::Time: | 119 | case Define::Time: |
| 119 | - { | ||
| 120 | - int time = cook.time(); | ||
| 121 | - if (time >= 3600) | ||
| 122 | - cw.current->setText(QString().sprintf( | ||
| 123 | - "%d" | ||
| 124 | - "<span style=\"font-size:11pt;\">시간</span>" | ||
| 125 | - " %02d" | ||
| 126 | - "<span style=\"font-size:11pt;\">분</span>", | ||
| 127 | - time / 3600, | ||
| 128 | - (time % 3600) / 60)); | ||
| 129 | - else if (time >= 60) | ||
| 130 | - cw.current->setText(QString().sprintf( | ||
| 131 | - "%d" | ||
| 132 | - "<span style=\"font-size:11pt;\">분</span>" | ||
| 133 | - " %02d" | ||
| 134 | - "<span style=\"font-size:11pt;\">초</span>", | ||
| 135 | - time / 60, | ||
| 136 | - time % 60)); | ||
| 137 | - else | ||
| 138 | - cw.current->setText(QString().sprintf( | ||
| 139 | - "%d" | ||
| 140 | - "<span style=\"font-size:11pt;\">초</span>", | ||
| 141 | - time)); | 120 | + cw.current->setText(Stringer::remainingTime(cook.time() * 1000, Stringer::fontSize14)); |
| 142 | break; | 121 | break; |
| 143 | - } | ||
| 144 | case Define::BurnDegree: | 122 | case Define::BurnDegree: |
| 145 | - cw.current->setText(QString().sprintf( | ||
| 146 | - "%d" | ||
| 147 | - "<span style=\"font-size:11pt;\">℃</span>", | ||
| 148 | - cook.coreTemp())); | 123 | + cw.current->setText(Stringer::temperature(cook.coreTemp(), Stringer::fontSize14)); |
| 149 | break; | 124 | break; |
| 150 | default: | 125 | default: |
| 151 | cw.current->setText(QString().sprintf( | 126 | cw.current->setText(QString().sprintf( |
app/gui/oven_control/autocookwindow.cpp
| @@ -5,6 +5,7 @@ | @@ -5,6 +5,7 @@ | ||
| 5 | #include "cookhistory.h" | 5 | #include "cookhistory.h" |
| 6 | #include "confirmpopup.h" | 6 | #include "confirmpopup.h" |
| 7 | #include "favoritenamepopup.h" | 7 | #include "favoritenamepopup.h" |
| 8 | +#include "stringer.h" | ||
| 8 | 9 | ||
| 9 | AutoCookWindow::AutoCookWindow(QWidget *parent, Cook cook) : | 10 | AutoCookWindow::AutoCookWindow(QWidget *parent, Cook cook) : |
| 10 | QMainWindow(parent), | 11 | QMainWindow(parent), |
| @@ -53,6 +54,9 @@ AutoCookWindow::AutoCookWindow(QWidget *parent, Cook cook) : | @@ -53,6 +54,9 @@ AutoCookWindow::AutoCookWindow(QWidget *parent, Cook cook) : | ||
| 53 | setting.configs[i] = cook.configs[i].current; | 54 | setting.configs[i] = cook.configs[i].current; |
| 54 | 55 | ||
| 55 | CookHistory::record(setting); | 56 | CookHistory::record(setting); |
| 57 | + | ||
| 58 | + connect(&updateViewTimer, SIGNAL(timeout()), SLOT(updateView())); | ||
| 59 | + updateViewTimer.start(100); | ||
| 56 | } | 60 | } |
| 57 | 61 | ||
| 58 | AutoCookWindow::~AutoCookWindow() | 62 | AutoCookWindow::~AutoCookWindow() |
| @@ -189,48 +193,20 @@ void AutoCookWindow::updateView() | @@ -189,48 +193,20 @@ void AutoCookWindow::updateView() | ||
| 189 | { | 193 | { |
| 190 | Oven *oven = Oven::getInstance(); | 194 | Oven *oven = Oven::getInstance(); |
| 191 | 195 | ||
| 192 | - QString spanFontSize11("<span style=\"font-size:11pt\">%1</span>"); | ||
| 193 | - QString spanFontSize9("<span style=\"font-size:9pt\">%1</span>"); | ||
| 194 | - | ||
| 195 | - int remainingTime = qMax(0, autocook.remainingTime()); | ||
| 196 | - if (remainingTime != lastViewTime) | 196 | + if (!autocook.done()) |
| 197 | { | 197 | { |
| 198 | - lastViewTime = remainingTime; | ||
| 199 | - | ||
| 200 | - QString hour = spanFontSize11.arg("시간"); | ||
| 201 | - QString min = spanFontSize11.arg("분"); | ||
| 202 | - QString sec = spanFontSize11.arg("초"); | ||
| 203 | - | ||
| 204 | - if (remainingTime >= 3600) | ||
| 205 | - ui->timeLabel->setText(QString("%1%2 %3%4") | ||
| 206 | - .arg(remainingTime / 3600) | ||
| 207 | - .arg(hour) | ||
| 208 | - .arg((remainingTime % 3600) / 60, 2, 10, QLatin1Char('0')) | ||
| 209 | - .arg(min)); | ||
| 210 | - else if (remainingTime >= 60) | ||
| 211 | - ui->timeLabel->setText(QString("%1%2 %3%4") | ||
| 212 | - .arg(remainingTime / 60) | ||
| 213 | - .arg(min) | ||
| 214 | - .arg(remainingTime % 60, 2, 10, QLatin1Char('0')) | ||
| 215 | - .arg(sec)); | ||
| 216 | - else | ||
| 217 | - ui->timeLabel->setText(QString("%1%2") | ||
| 218 | - .arg(remainingTime) | ||
| 219 | - .arg(sec)); | 198 | + int remainingTime = qMax(0, autocook.msecs()); |
| 199 | + ui->timeLabel->setText(Stringer::remainingTime(remainingTime)); | ||
| 220 | } | 200 | } |
| 221 | 201 | ||
| 222 | int coreTemp = oven->currentInterTemp(); | 202 | int coreTemp = oven->currentInterTemp(); |
| 223 | if (coreTemp != lastViewCoreTemp) | 203 | if (coreTemp != lastViewCoreTemp) |
| 224 | { | 204 | { |
| 225 | lastViewCoreTemp = coreTemp; | 205 | lastViewCoreTemp = coreTemp; |
| 226 | - | ||
| 227 | - QString coreTempLabel = QString::number(coreTemp); | ||
| 228 | if (cook.isCoreTempValid()) | 206 | if (cook.isCoreTempValid()) |
| 229 | - coreTempLabel += spanFontSize11.arg("℃ / " + QString::number(cook.coreTemp())) + spanFontSize9.arg("℃"); | 207 | + ui->interTempLabel->setText(Stringer::temperature(coreTemp, cook.coreTemp(), Stringer::fontSize14)); |
| 230 | else | 208 | else |
| 231 | - coreTempLabel += spanFontSize11.arg("℃"); | ||
| 232 | - | ||
| 233 | - ui->interTempLabel->setText(coreTempLabel); | 209 | + ui->interTempLabel->setText(Stringer::temperature(coreTemp, Stringer::fontSize14)); |
| 234 | } | 210 | } |
| 235 | 211 | ||
| 236 | if (autocook.done()) | 212 | if (autocook.done()) |
| @@ -523,7 +499,7 @@ void AutoCookWindow::updateView() | @@ -523,7 +499,7 @@ void AutoCookWindow::updateView() | ||
| 523 | if (temp != lastViewTemp) | 499 | if (temp != lastViewTemp) |
| 524 | { | 500 | { |
| 525 | lastViewTemp = temp; | 501 | lastViewTemp = temp; |
| 526 | - ui->heatLabel->setText(QString("%1℃").arg(temp)); | 502 | + ui->heatLabel->setText(Stringer::temperature(temp)); |
| 527 | ui->heatGauge->setValue(temp); | 503 | ui->heatGauge->setValue(temp); |
| 528 | } | 504 | } |
| 529 | } | 505 | } |
app/gui/oven_control/autocookwindow.h
app/gui/oven_control/cooldownpopup.cpp
| 1 | #include "cooldownpopup.h" | 1 | #include "cooldownpopup.h" |
| 2 | #include "ui_cooldownpopup.h" | 2 | #include "ui_cooldownpopup.h" |
| 3 | 3 | ||
| 4 | +#include "stringer.h" | ||
| 5 | + | ||
| 4 | CooldownPopup::CooldownPopup(QWidget *parent, Oven *oven) : | 6 | CooldownPopup::CooldownPopup(QWidget *parent, Oven *oven) : |
| 5 | QWidget(parent), | 7 | QWidget(parent), |
| 6 | ui(new Ui::CooldownPopup), | 8 | ui(new Ui::CooldownPopup), |
| @@ -11,6 +13,9 @@ CooldownPopup::CooldownPopup(QWidget *parent, Oven *oven) : | @@ -11,6 +13,9 @@ CooldownPopup::CooldownPopup(QWidget *parent, Oven *oven) : | ||
| 11 | 13 | ||
| 12 | setAttribute(Qt::WA_DeleteOnClose); | 14 | setAttribute(Qt::WA_DeleteOnClose); |
| 13 | 15 | ||
| 16 | + lastDisplayedFanLevel = -1; | ||
| 17 | + lastDisplayedHumidification = !oven->humidification(); | ||
| 18 | + | ||
| 14 | ui->openDoorAnimation->load(":/images/animation/door_big_01.png"); | 19 | ui->openDoorAnimation->load(":/images/animation/door_big_01.png"); |
| 15 | ui->openDoorAnimation->load(":/images/animation/door_big_02.png"); | 20 | ui->openDoorAnimation->load(":/images/animation/door_big_02.png"); |
| 16 | ui->openDoorAnimation->load(":/images/animation/door_big_03.png"); | 21 | ui->openDoorAnimation->load(":/images/animation/door_big_03.png"); |
| @@ -86,31 +91,41 @@ void CooldownPopup::updateView() | @@ -86,31 +91,41 @@ void CooldownPopup::updateView() | ||
| 86 | else | 91 | else |
| 87 | temp = ui->tempSlider->value(); | 92 | temp = ui->tempSlider->value(); |
| 88 | 93 | ||
| 89 | - ui->tempCurrentLabel->setText(QString("%1<span style=\"font-size:11pt;\">℃</span>").arg(temp)); | 94 | + ui->tempCurrentLabel->setText(Stringer::temperature(temp, Stringer::fontSize14)); |
| 90 | 95 | ||
| 91 | - switch (expectingFanLevel) | 96 | + if (lastDisplayedFanLevel != expectingFanLevel) |
| 92 | { | 97 | { |
| 93 | - case 1: | ||
| 94 | - ui->fanButton->setStyleSheet("background-image: url(:/images/cooldown/fan1.png);"); | ||
| 95 | - break; | ||
| 96 | - case 2: | ||
| 97 | - ui->fanButton->setStyleSheet("background-image: url(:/images/cooldown/fan2.png);"); | ||
| 98 | - break; | ||
| 99 | - case 3: | ||
| 100 | - ui->fanButton->setStyleSheet("background-image: url(:/images/cooldown/fan3.png);"); | ||
| 101 | - break; | ||
| 102 | - case 4: | ||
| 103 | - ui->fanButton->setStyleSheet("background-image: url(:/images/cooldown/fan4.png);"); | ||
| 104 | - break; | ||
| 105 | - case 5: | ||
| 106 | - ui->fanButton->setStyleSheet("background-image: url(:/images/cooldown/fan5.png);"); | ||
| 107 | - break; | 98 | + lastDisplayedFanLevel = expectingFanLevel; |
| 99 | + | ||
| 100 | + switch (expectingFanLevel) | ||
| 101 | + { | ||
| 102 | + case 1: | ||
| 103 | + ui->fanButton->setStyleSheet("background-image: url(:/images/cooldown/fan1.png);"); | ||
| 104 | + break; | ||
| 105 | + case 2: | ||
| 106 | + ui->fanButton->setStyleSheet("background-image: url(:/images/cooldown/fan2.png);"); | ||
| 107 | + break; | ||
| 108 | + case 3: | ||
| 109 | + ui->fanButton->setStyleSheet("background-image: url(:/images/cooldown/fan3.png);"); | ||
| 110 | + break; | ||
| 111 | + case 4: | ||
| 112 | + ui->fanButton->setStyleSheet("background-image: url(:/images/cooldown/fan4.png);"); | ||
| 113 | + break; | ||
| 114 | + case 5: | ||
| 115 | + ui->fanButton->setStyleSheet("background-image: url(:/images/cooldown/fan5.png);"); | ||
| 116 | + break; | ||
| 117 | + } | ||
| 108 | } | 118 | } |
| 109 | 119 | ||
| 110 | - if (oven->humidification()) | ||
| 111 | - ui->humidificationButton->setStyleSheet("background-image: url(:/images/cooldown/side_nozzle_ov.png);"); | ||
| 112 | - else | ||
| 113 | - ui->humidificationButton->setStyleSheet("background-image: url(:/images/cooldown/side_nozzle.png);"); | 120 | + if (lastDisplayedHumidification != oven->humidification()) |
| 121 | + { | ||
| 122 | + lastDisplayedHumidification = oven->humidification(); | ||
| 123 | + | ||
| 124 | + if (oven->humidification()) | ||
| 125 | + ui->humidificationButton->setStyleSheet("background-image: url(:/images/cooldown/side_nozzle_ov.png);"); | ||
| 126 | + else | ||
| 127 | + ui->humidificationButton->setStyleSheet("background-image: url(:/images/cooldown/side_nozzle.png);"); | ||
| 128 | + } | ||
| 114 | 129 | ||
| 115 | if (started && !oven->door()) | 130 | if (started && !oven->door()) |
| 116 | ui->openDoorWidget->show(); | 131 | ui->openDoorWidget->show(); |
app/gui/oven_control/cooldownpopup.h
| @@ -53,6 +53,9 @@ private: | @@ -53,6 +53,9 @@ private: | ||
| 53 | int expectingFanLevel; | 53 | int expectingFanLevel; |
| 54 | bool started; | 54 | bool started; |
| 55 | bool opened; | 55 | bool opened; |
| 56 | + | ||
| 57 | + int lastDisplayedFanLevel; | ||
| 58 | + bool lastDisplayedHumidification; | ||
| 56 | }; | 59 | }; |
| 57 | 60 | ||
| 58 | #endif // COOLDOWNPOPUP_H | 61 | #endif // COOLDOWNPOPUP_H |
app/gui/oven_control/manualcooksettingwidget.cpp
| 1 | #include "manualcooksettingwidget.h" | 1 | #include "manualcooksettingwidget.h" |
| 2 | #include "ui_manualcooksettingwidget.h" | 2 | #include "ui_manualcooksettingwidget.h" |
| 3 | 3 | ||
| 4 | +#include "stringer.h" | ||
| 5 | + | ||
| 4 | ManualCookSettingWidget::ManualCookSettingWidget(ManualCookSetting setting, QWidget *parent) : | 6 | ManualCookSettingWidget::ManualCookSettingWidget(ManualCookSetting setting, QWidget *parent) : |
| 5 | QWidget(parent), | 7 | QWidget(parent), |
| 6 | ui(new Ui::ManualCookSettingWidget) | 8 | ui(new Ui::ManualCookSettingWidget) |
| @@ -49,25 +51,13 @@ void ManualCookSettingWidget::setHumidity(int percentage) | @@ -49,25 +51,13 @@ void ManualCookSettingWidget::setHumidity(int percentage) | ||
| 49 | void ManualCookSettingWidget::setTemp(int celsius) | 51 | void ManualCookSettingWidget::setTemp(int celsius) |
| 50 | { | 52 | { |
| 51 | ui->tempSlider->setValue(celsius); | 53 | ui->tempSlider->setValue(celsius); |
| 52 | - ui->tempLabel->setText(QString("%1<span style=\"font-size:11pt;\">℃</span>").arg(celsius)); | 54 | + ui->tempLabel->setText(Stringer::temperature(celsius, Stringer::fontSize14)); |
| 53 | } | 55 | } |
| 54 | 56 | ||
| 55 | void ManualCookSettingWidget::setTime(int secs) | 57 | void ManualCookSettingWidget::setTime(int secs) |
| 56 | { | 58 | { |
| 57 | ui->timeSlider->setValue(secs); | 59 | ui->timeSlider->setValue(secs); |
| 58 | - | ||
| 59 | - if (secs >= 3600) | ||
| 60 | - ui->timeLabel->setText( | ||
| 61 | - QString("%1<span style=\"font-size:11pt;\">시간</span> %2<span style=\"font-size:11pt;\">분</span>") | ||
| 62 | - .arg(secs / 3600) | ||
| 63 | - .arg((secs % 3600) / 60, 2, 10, QLatin1Char('0'))); | ||
| 64 | - else if (secs >= 60) | ||
| 65 | - ui->timeLabel->setText( | ||
| 66 | - QString("%1<span style=\"font-size:11pt;\">분</span> %2<span style=\"font-size:11pt;\">초</span>") | ||
| 67 | - .arg(secs / 60) | ||
| 68 | - .arg(secs % 60, 2, 10, QLatin1Char('0'))); | ||
| 69 | - else | ||
| 70 | - ui->timeLabel->setText(QString("%1<span style=\"font-size:11pt;\">초</span>").arg(secs)); | 60 | + ui->timeLabel->setText(Stringer::remainingTime(secs * 1000, Stringer::fontSize14)); |
| 71 | } | 61 | } |
| 72 | 62 | ||
| 73 | void ManualCookSettingWidget::setCoreTempEnabled(bool enabled) | 63 | void ManualCookSettingWidget::setCoreTempEnabled(bool enabled) |
| @@ -76,16 +66,16 @@ void ManualCookSettingWidget::setCoreTempEnabled(bool enabled) | @@ -76,16 +66,16 @@ void ManualCookSettingWidget::setCoreTempEnabled(bool enabled) | ||
| 76 | ui->coreTempSlider->setEnabled(enabled); | 66 | ui->coreTempSlider->setEnabled(enabled); |
| 77 | 67 | ||
| 78 | if (enabled) | 68 | if (enabled) |
| 79 | - ui->coreTempLabel->setText(QString("%1<span style=\"font-size:11pt;\">℃</span>").arg(ui->coreTempSlider->value())); | 69 | + ui->coreTempLabel->setText(Stringer::temperature(ui->coreTempSlider->value(), Stringer::fontSize14)); |
| 80 | else | 70 | else |
| 81 | - ui->coreTempLabel->setText("<span style=\"font-size:11pt;\">℃</span>"); | 71 | + ui->coreTempLabel->setText(Stringer::unusedTemperature(Stringer::fontSize14)); |
| 82 | } | 72 | } |
| 83 | 73 | ||
| 84 | void ManualCookSettingWidget::setCoreTemp(int celsius) | 74 | void ManualCookSettingWidget::setCoreTemp(int celsius) |
| 85 | { | 75 | { |
| 86 | ui->coreTempSlider->setValue(celsius); | 76 | ui->coreTempSlider->setValue(celsius); |
| 87 | if (ui->coreTempSlider->isEnabled()) | 77 | if (ui->coreTempSlider->isEnabled()) |
| 88 | - ui->coreTempLabel->setText(QString("%1<span style=\"font-size:11pt;\">℃</span>").arg(celsius)); | 78 | + ui->coreTempLabel->setText(Stringer::temperature(celsius, Stringer::fontSize14)); |
| 89 | } | 79 | } |
| 90 | 80 | ||
| 91 | void ManualCookSettingWidget::setFan(int level) | 81 | void ManualCookSettingWidget::setFan(int level) |
app/gui/oven_control/manualcookwindow.cpp
| @@ -10,9 +10,34 @@ | @@ -10,9 +10,34 @@ | ||
| 10 | #include "cookhistory.h" | 10 | #include "cookhistory.h" |
| 11 | #include "favoritenamepopup.h" | 11 | #include "favoritenamepopup.h" |
| 12 | #include "confirmpopup.h" | 12 | #include "confirmpopup.h" |
| 13 | +#include "stringer.h" | ||
| 14 | +#include "config.h" | ||
| 13 | 15 | ||
| 14 | #include <QTime> | 16 | #include <QTime> |
| 15 | 17 | ||
| 18 | +namespace { | ||
| 19 | + | ||
| 20 | +enum TemperatureFormat { Celsius, Fahrenheit }; | ||
| 21 | +TemperatureFormat temperatureFormat() | ||
| 22 | +{ | ||
| 23 | + Define::config_item item = Config::getInstance()->getConfigValue(Define::config_temptype); | ||
| 24 | + switch (item.d32) | ||
| 25 | + { | ||
| 26 | + case Define::temp_type_f: | ||
| 27 | + return Fahrenheit; | ||
| 28 | + case Define::temp_type_c: | ||
| 29 | + default: | ||
| 30 | + return Celsius; | ||
| 31 | + } | ||
| 32 | +} | ||
| 33 | + | ||
| 34 | +int toFahrenheit(int celsius) | ||
| 35 | +{ | ||
| 36 | + return celsius * 1.8 + 32; | ||
| 37 | +} | ||
| 38 | + | ||
| 39 | +} | ||
| 40 | + | ||
| 16 | ManualCookWindow::ManualCookWindow(QWidget *parent, Define::Mode mode) : | 41 | ManualCookWindow::ManualCookWindow(QWidget *parent, Define::Mode mode) : |
| 17 | QMainWindow(parent), | 42 | QMainWindow(parent), |
| 18 | ui(new Ui::ManualCookWindow) | 43 | ui(new Ui::ManualCookWindow) |
| @@ -66,6 +91,23 @@ ManualCookWindow::ManualCookWindow(QWidget *parent, Define::Mode mode) : | @@ -66,6 +91,23 @@ ManualCookWindow::ManualCookWindow(QWidget *parent, Define::Mode mode) : | ||
| 66 | oven->setDefault(mode); | 91 | oven->setDefault(mode); |
| 67 | 92 | ||
| 68 | setupAnimationTimer->start(0); | 93 | setupAnimationTimer->start(0); |
| 94 | + | ||
| 95 | + checkTimeTimer.start(); | ||
| 96 | + | ||
| 97 | + switch (temperatureFormat()) | ||
| 98 | + { | ||
| 99 | + case Fahrenheit: | ||
| 100 | + ui->steamLabel_12->setText("℉"); | ||
| 101 | + ui->steamLabel_13->setText("℉"); | ||
| 102 | + break; | ||
| 103 | + case Celsius: | ||
| 104 | + ui->steamLabel_12->setText("℃"); | ||
| 105 | + ui->steamLabel_13->setText("℃"); | ||
| 106 | + break; | ||
| 107 | + default: | ||
| 108 | + ui->steamLabel_12->hide(); | ||
| 109 | + ui->steamLabel_13->hide(); | ||
| 110 | + } | ||
| 69 | } | 111 | } |
| 70 | 112 | ||
| 71 | ManualCookWindow::ManualCookWindow(QWidget *parent, ManualCookSetting setting) | 113 | ManualCookWindow::ManualCookWindow(QWidget *parent, ManualCookSetting setting) |
| @@ -104,7 +146,7 @@ void ManualCookWindow::setupAnimation() | @@ -104,7 +146,7 @@ void ManualCookWindow::setupAnimation() | ||
| 104 | 146 | ||
| 105 | void ManualCookWindow::checkTime() | 147 | void ManualCookWindow::checkTime() |
| 106 | { | 148 | { |
| 107 | - if (oven->cooking() && !ui->timeSlider->isSliderDown()) | 149 | + if (!ui->timeSlider->isSliderDown()) |
| 108 | { | 150 | { |
| 109 | bool old = ui->timeSlider->blockSignals(true); | 151 | bool old = ui->timeSlider->blockSignals(true); |
| 110 | ui->timeSlider->setSliderPosition(oven->time()); | 152 | ui->timeSlider->setSliderPosition(oven->time()); |
| @@ -160,20 +202,15 @@ void ManualCookWindow::updateLabels() | @@ -160,20 +202,15 @@ void ManualCookWindow::updateLabels() | ||
| 160 | else | 202 | else |
| 161 | temp = oven->temp(); | 203 | temp = oven->temp(); |
| 162 | 204 | ||
| 163 | - ui->tempLabel->setText(buf.sprintf("%d<span style=\"font-size:11pt;\">℃</span>", temp)); | 205 | + ui->tempLabel->setText(Stringer::temperature(temp, Stringer::fontSize14)); |
| 164 | 206 | ||
| 165 | - int time; | 207 | + int msecs; |
| 166 | if (ui->timeSlider->isSliderDown()) | 208 | if (ui->timeSlider->isSliderDown()) |
| 167 | - time = ui->timeSlider->sliderPosition(); | 209 | + msecs = ui->timeSlider->sliderPosition() * 1000; |
| 168 | else | 210 | else |
| 169 | - time = oven->time(); | 211 | + msecs = oven->msecs(); |
| 170 | 212 | ||
| 171 | - if (time >= 3600) | ||
| 172 | - ui->timeLabel->setText(buf.sprintf("%d<span style=\"font-size:11pt;\">시간</span> %02d<span style=\"font-size:11pt;\">분</span>", time / 3600, (time % 3600) / 60)); | ||
| 173 | - else if (time >= 60) | ||
| 174 | - ui->timeLabel->setText(buf.sprintf("%d<span style=\"font-size:11pt;\">분</span> %02d<span style=\"font-size:11pt;\">초</span>", time / 60, time % 60)); | ||
| 175 | - else | ||
| 176 | - ui->timeLabel->setText(buf.sprintf("%d<span style=\"font-size:11pt;\">초</span>", time)); | 213 | + ui->timeLabel->setText(Stringer::remainingTime(msecs, Stringer::fontSize14)); |
| 177 | 214 | ||
| 178 | if (oven->interTempEnabled()) | 215 | if (oven->interTempEnabled()) |
| 179 | { | 216 | { |
| @@ -183,23 +220,29 @@ void ManualCookWindow::updateLabels() | @@ -183,23 +220,29 @@ void ManualCookWindow::updateLabels() | ||
| 183 | else | 220 | else |
| 184 | interTemp = oven->interTemp(); | 221 | interTemp = oven->interTemp(); |
| 185 | 222 | ||
| 186 | - ui->interTempLabel->setText(buf.sprintf("%d<span style=\"font-size:11pt;\">℃</span>", interTemp)); | 223 | + ui->interTempLabel->setText(Stringer::temperature(interTemp, Stringer::fontSize14)); |
| 187 | } | 224 | } |
| 188 | else | 225 | else |
| 189 | - ui->interTempLabel->setText("<span style=\"font-size:11pt;\">℃</span>"); | 226 | + ui->interTempLabel->setText(Stringer::unusedTemperature(Stringer::fontSize14)); |
| 190 | 227 | ||
| 191 | int innerInterTemp = ui->innerInterTempSlider->sliderPosition(); | 228 | int innerInterTemp = ui->innerInterTempSlider->sliderPosition(); |
| 192 | -// if (ui->innerInterTempSlider->isSliderDown()) | ||
| 193 | -// innerInterTemp = ui->innerInterTempSlider->sliderPosition(); | ||
| 194 | -// else | ||
| 195 | -// innerInterTemp = oven->interTemp(); | ||
| 196 | - | ||
| 197 | - ui->innerInterTempLabel->setText(buf.sprintf("%d<span style=\"font-size:11pt;\">℃</span>", innerInterTemp)); | 229 | + ui->innerInterTempLabel->setText(Stringer::temperature(innerInterTemp, Stringer::fontSize14)); |
| 198 | 230 | ||
| 199 | ui->curHumidityLabel->setText(buf.sprintf("%d", oven->currentHumidity())); | 231 | ui->curHumidityLabel->setText(buf.sprintf("%d", oven->currentHumidity())); |
| 200 | ui->targetHumidityLabel->setText(buf.sprintf("%d", oven->humidity())); | 232 | ui->targetHumidityLabel->setText(buf.sprintf("%d", oven->humidity())); |
| 201 | - ui->curTempLabel->setText(buf.sprintf("%d", oven->currentTemp())); | ||
| 202 | - ui->curInterTempLabel->setText(buf.sprintf("%d", oven->currentInterTemp())); | 233 | + |
| 234 | + switch (temperatureFormat()) | ||
| 235 | + { | ||
| 236 | + case Fahrenheit: | ||
| 237 | + ui->curTempLabel->setText(QString::number(toFahrenheit(oven->currentTemp()))); | ||
| 238 | + ui->curInterTempLabel->setText(QString::number(toFahrenheit(oven->currentInterTemp()))); | ||
| 239 | + break; | ||
| 240 | + case Celsius: | ||
| 241 | + default: | ||
| 242 | + ui->curTempLabel->setText(QString::number(oven->currentTemp())); | ||
| 243 | + ui->curInterTempLabel->setText(QString::number(oven->currentInterTemp())); | ||
| 244 | + break; | ||
| 245 | + } | ||
| 203 | } | 246 | } |
| 204 | 247 | ||
| 205 | void ManualCookWindow::onOvenUpdated(Oven *oven) | 248 | void ManualCookWindow::onOvenUpdated(Oven *oven) |
| @@ -339,7 +382,6 @@ void ManualCookWindow::start() | @@ -339,7 +382,6 @@ void ManualCookWindow::start() | ||
| 339 | startCookingTimer.stop(); | 382 | startCookingTimer.stop(); |
| 340 | 383 | ||
| 341 | oven->startCooking(); | 384 | oven->startCooking(); |
| 342 | - checkTimeTimer.start(); | ||
| 343 | 385 | ||
| 344 | ManualCookSetting s; | 386 | ManualCookSetting s; |
| 345 | s.mode = oven->mode(); | 387 | s.mode = oven->mode(); |
| @@ -358,7 +400,6 @@ void ManualCookWindow::stop() | @@ -358,7 +400,6 @@ void ManualCookWindow::stop() | ||
| 358 | { | 400 | { |
| 359 | oven->stop(); | 401 | oven->stop(); |
| 360 | startCookingTimer.stop(); | 402 | startCookingTimer.stop(); |
| 361 | - checkTimeTimer.stop(); | ||
| 362 | } | 403 | } |
| 363 | 404 | ||
| 364 | void ManualCookWindow::on_steamButton_clicked() | 405 | void ManualCookWindow::on_steamButton_clicked() |
app/gui/oven_control/oven.cpp
| @@ -268,6 +268,19 @@ bool Oven::isInterTempValid() | @@ -268,6 +268,19 @@ bool Oven::isInterTempValid() | ||
| 268 | return isInterTempValid_ && interTempValidTime.elapsed() > 3000; | 268 | return isInterTempValid_ && interTempValidTime.elapsed() > 3000; |
| 269 | } | 269 | } |
| 270 | 270 | ||
| 271 | +int Oven::msecs() | ||
| 272 | +{ | ||
| 273 | + int left = cookingTimer.remainingTime(); | ||
| 274 | + int interval = cookingTimer.interval(); | ||
| 275 | + if (left > interval) | ||
| 276 | + left = interval; | ||
| 277 | + | ||
| 278 | + if (cooking()) | ||
| 279 | + return left; | ||
| 280 | + | ||
| 281 | + return time_ * 1000; | ||
| 282 | +} | ||
| 283 | + | ||
| 271 | bool Oven::cookingStartable() | 284 | bool Oven::cookingStartable() |
| 272 | { | 285 | { |
| 273 | if (/*door() || */cooking() || time() <= 0) | 286 | if (/*door() || */cooking() || time() <= 0) |
app/gui/oven_control/oven.h
| @@ -136,6 +136,7 @@ public: | @@ -136,6 +136,7 @@ public: | ||
| 136 | int currentInterTemp() { return currentInterTemp_; } | 136 | int currentInterTemp() { return currentInterTemp_; } |
| 137 | 137 | ||
| 138 | bool isInterTempValid(); | 138 | bool isInterTempValid(); |
| 139 | + int msecs(); | ||
| 139 | 140 | ||
| 140 | bool cookingStartable(); | 141 | bool cookingStartable(); |
| 141 | bool preheatingStartable(); | 142 | bool preheatingStartable(); |
app/gui/oven_control/oven_control.pro
| @@ -85,7 +85,8 @@ SOURCES += main.cpp\ | @@ -85,7 +85,8 @@ SOURCES += main.cpp\ | ||
| 85 | autocooksettingwidget.cpp \ | 85 | autocooksettingwidget.cpp \ |
| 86 | favoritenamepopup.cpp \ | 86 | favoritenamepopup.cpp \ |
| 87 | confirmpopup.cpp \ | 87 | confirmpopup.cpp \ |
| 88 | - usbcheckpopupdlg.cpp | 88 | + usbcheckpopupdlg.cpp \ |
| 89 | + stringer.cpp | ||
| 89 | 90 | ||
| 90 | HEADERS += mainwindow.h \ | 91 | HEADERS += mainwindow.h \ |
| 91 | cook.h \ | 92 | cook.h \ |
| @@ -160,7 +161,8 @@ HEADERS += mainwindow.h \ | @@ -160,7 +161,8 @@ HEADERS += mainwindow.h \ | ||
| 160 | autocooksettingwidget.h \ | 161 | autocooksettingwidget.h \ |
| 161 | favoritenamepopup.h \ | 162 | favoritenamepopup.h \ |
| 162 | confirmpopup.h \ | 163 | confirmpopup.h \ |
| 163 | - usbcheckpopupdlg.h | 164 | + usbcheckpopupdlg.h \ |
| 165 | + stringer.h | ||
| 164 | 166 | ||
| 165 | FORMS += mainwindow.ui \ | 167 | FORMS += mainwindow.ui \ |
| 166 | manualcookwindow.ui \ | 168 | manualcookwindow.ui \ |
app/gui/oven_control/preheatpopup.cpp
| 1 | #include "preheatpopup.h" | 1 | #include "preheatpopup.h" |
| 2 | #include "ui_preheatpopup.h" | 2 | #include "ui_preheatpopup.h" |
| 3 | 3 | ||
| 4 | +#include "stringer.h" | ||
| 5 | + | ||
| 4 | PreheatPopup::PreheatPopup(QWidget *parent, Oven *oven) : | 6 | PreheatPopup::PreheatPopup(QWidget *parent, Oven *oven) : |
| 5 | QWidget(parent), | 7 | QWidget(parent), |
| 6 | ui(new Ui::PreheatPopup), | 8 | ui(new Ui::PreheatPopup), |
| @@ -36,22 +38,13 @@ PreheatPopup::~PreheatPopup() | @@ -36,22 +38,13 @@ PreheatPopup::~PreheatPopup() | ||
| 36 | 38 | ||
| 37 | void PreheatPopup::updateView() | 39 | void PreheatPopup::updateView() |
| 38 | { | 40 | { |
| 39 | - int time = oven->time(); | ||
| 40 | - if (time >= 3600) | ||
| 41 | - ui->timeLabel->setText(QString().sprintf("%d<span style=\"font-size:11pt;\">시간</span> %02d<span style=\"font-size:11pt;\">분</span>", time / 3600, (time % 3600) / 60)); | ||
| 42 | - else if (time >= 60) | ||
| 43 | - ui->timeLabel->setText(QString().sprintf("%d<span style=\"font-size:11pt;\">분</span> %02d<span style=\"font-size:11pt;\">초</span>", time / 60, time % 60)); | ||
| 44 | - else | ||
| 45 | - ui->timeLabel->setText(QString().sprintf("%d<span style=\"font-size:11pt;\">초</span>", time)); | 41 | + ui->timeLabel->setText(Stringer::remainingTime(oven->time(), Stringer::fontSize14)); |
| 46 | 42 | ||
| 47 | int curInterTemp = oven->currentInterTemp(); | 43 | int curInterTemp = oven->currentInterTemp(); |
| 48 | if (oven->interTempEnabled()) | 44 | if (oven->interTempEnabled()) |
| 49 | - { | ||
| 50 | - int interTemp = oven->interTemp(); | ||
| 51 | - ui->interTempLabel->setText(QString().sprintf("%d<span style=\"font-size:11pt;\">℃ / %d</span><span style=\"font-size:9pt;\">℃</span>", curInterTemp, interTemp)); | ||
| 52 | - } | 45 | + ui->interTempLabel->setText(Stringer::temperature(curInterTemp, oven->interTemp(), Stringer::fontSize14)); |
| 53 | else | 46 | else |
| 54 | - ui->interTempLabel->setText(QString().sprintf("%d<span style=\"font-size:11pt;\">℃</span>", curInterTemp)); | 47 | + ui->interTempLabel->setText(Stringer::temperature(curInterTemp, Stringer::fontSize14)); |
| 55 | 48 | ||
| 56 | int humidity; | 49 | int humidity; |
| 57 | if (showingCurrentHumidity) | 50 | if (showingCurrentHumidity) |
| @@ -67,7 +60,7 @@ void PreheatPopup::updateView() | @@ -67,7 +60,7 @@ void PreheatPopup::updateView() | ||
| 67 | 60 | ||
| 68 | ui->humidityLabel->setText(QString().sprintf("%d%%", humidity)); | 61 | ui->humidityLabel->setText(QString().sprintf("%d%%", humidity)); |
| 69 | ui->humidityGauge->setValue(humidity); | 62 | ui->humidityGauge->setValue(humidity); |
| 70 | - ui->heatLabel->setText(QString().sprintf("%d℃", temp)); | 63 | + ui->heatLabel->setText(Stringer::temperature(temp)); |
| 71 | ui->heatGauge->setValue(temp); | 64 | ui->heatGauge->setValue(temp); |
| 72 | 65 | ||
| 73 | ui->preheatGauge->setValue(oven->currentTemp()); | 66 | ui->preheatGauge->setValue(oven->currentTemp()); |
app/gui/oven_control/stringer.cpp
| @@ -0,0 +1,162 @@ | @@ -0,0 +1,162 @@ | ||
| 1 | +#include "stringer.h" | ||
| 2 | + | ||
| 3 | +#include "config.h" | ||
| 4 | + | ||
| 5 | +namespace { | ||
| 6 | +QString heavySpan("<span class=\"heavy\">%1</span>"); | ||
| 7 | +QString lightSpan("<span class=\"light\">%1</span>"); | ||
| 8 | +QString lightestSpan("<span class=\"lightest\">%1</span>"); | ||
| 9 | + | ||
| 10 | +enum RemainingTimeFormat { RemainingTime, FinishTime }; | ||
| 11 | +RemainingTimeFormat remainingTime() | ||
| 12 | +{ | ||
| 13 | + Define::config_item item = Config::getInstance()->getConfigValue(Define::config_resttime_format); | ||
| 14 | + switch (item.d32) | ||
| 15 | + { | ||
| 16 | + case Define::rest_time_target: | ||
| 17 | + return FinishTime; | ||
| 18 | + case Define::rest_time_rest: | ||
| 19 | + default: | ||
| 20 | + return RemainingTime; | ||
| 21 | + } | ||
| 22 | +} | ||
| 23 | + | ||
| 24 | +enum TemperatureFormat { Celsius, Fahrenheit }; | ||
| 25 | +TemperatureFormat temperatureFormat() | ||
| 26 | +{ | ||
| 27 | + Define::config_item item = Config::getInstance()->getConfigValue(Define::config_temptype); | ||
| 28 | + switch (item.d32) | ||
| 29 | + { | ||
| 30 | + case Define::temp_type_f: | ||
| 31 | + return Fahrenheit; | ||
| 32 | + case Define::temp_type_c: | ||
| 33 | + default: | ||
| 34 | + return Celsius; | ||
| 35 | + } | ||
| 36 | +} | ||
| 37 | + | ||
| 38 | +int toFahrenheit(int celsius) | ||
| 39 | +{ | ||
| 40 | + return celsius * 1.8 + 32; | ||
| 41 | +} | ||
| 42 | +} | ||
| 43 | + | ||
| 44 | +QString Stringer::remainingTime(int msecs) | ||
| 45 | +{ | ||
| 46 | + switch (::remainingTime()) | ||
| 47 | + { | ||
| 48 | + case RemainingTime: | ||
| 49 | + msecs /= 1000; | ||
| 50 | + if (msecs >= 3600) | ||
| 51 | + return QString("%1시간 %2분").arg(msecs / 3600).arg((msecs % 3600) / 60, 2, 10, QLatin1Char('0')); | ||
| 52 | + if (msecs >= 60) | ||
| 53 | + return QString("%1분 %2초").arg(msecs / 60).arg(msecs % 60, 2, 10, QLatin1Char('0')); | ||
| 54 | + | ||
| 55 | + return QString("%1초").arg(msecs); | ||
| 56 | + case FinishTime: | ||
| 57 | + return QDateTime::currentDateTime().addMSecs(msecs).toString("HH:mm:ss"); | ||
| 58 | + } | ||
| 59 | + | ||
| 60 | + return QString(); | ||
| 61 | +} | ||
| 62 | + | ||
| 63 | +QString Stringer::remainingTime(int msecs, QString style) | ||
| 64 | +{ | ||
| 65 | + switch (::remainingTime()) | ||
| 66 | + { | ||
| 67 | + case RemainingTime: | ||
| 68 | + msecs /= 1000; | ||
| 69 | + if (msecs >= 3600) | ||
| 70 | + { | ||
| 71 | + QString hour = heavySpan.arg(msecs / 3600) + lightSpan.arg("시간"); | ||
| 72 | + QString min = heavySpan.arg((msecs % 3600) / 60, 2, 10, QLatin1Char('0')) + lightSpan.arg("분"); | ||
| 73 | + | ||
| 74 | + return style + QString("%1 %2").arg(hour).arg(min); | ||
| 75 | + } | ||
| 76 | + if (msecs >= 60) | ||
| 77 | + { | ||
| 78 | + QString min = heavySpan.arg(msecs / 60) + lightSpan.arg("분"); | ||
| 79 | + QString sec = heavySpan.arg(msecs % 60, 2, 10, QLatin1Char('0')) + lightSpan.arg("초"); | ||
| 80 | + | ||
| 81 | + return style + QString("%1 %2").arg(min).arg(sec); | ||
| 82 | + } | ||
| 83 | + | ||
| 84 | + return style + heavySpan.arg(msecs) + lightSpan.arg("초"); | ||
| 85 | + case FinishTime: | ||
| 86 | + return heavySpan.arg(QDateTime::currentDateTime().addMSecs(msecs).toString("HH:mm:ss")); | ||
| 87 | + } | ||
| 88 | + | ||
| 89 | + return QString(); | ||
| 90 | +} | ||
| 91 | + | ||
| 92 | +QString Stringer::temperature(int celsius) | ||
| 93 | +{ | ||
| 94 | + switch (temperatureFormat()) | ||
| 95 | + { | ||
| 96 | + case Fahrenheit: | ||
| 97 | + return QString("%1℉").arg(toFahrenheit(celsius)); | ||
| 98 | + case Celsius: | ||
| 99 | + default: | ||
| 100 | + return QString("%1℃").arg(celsius); | ||
| 101 | + } | ||
| 102 | +} | ||
| 103 | + | ||
| 104 | +QString Stringer::temperature(int celsius, QString style) | ||
| 105 | +{ | ||
| 106 | + switch (temperatureFormat()) | ||
| 107 | + { | ||
| 108 | + case Fahrenheit: | ||
| 109 | + return style + heavySpan.arg(toFahrenheit(celsius)) + lightSpan.arg("℉"); | ||
| 110 | + case Celsius: | ||
| 111 | + default: | ||
| 112 | + return style + heavySpan.arg(celsius) + lightSpan.arg("℃"); | ||
| 113 | + } | ||
| 114 | +} | ||
| 115 | + | ||
| 116 | +QString Stringer::temperature(int current, int target) | ||
| 117 | +{ | ||
| 118 | + switch (temperatureFormat()) | ||
| 119 | + { | ||
| 120 | + case Fahrenheit: | ||
| 121 | + return QString("%1℉ / %2℉").arg(toFahrenheit(current)).arg(toFahrenheit(target)); | ||
| 122 | + case Celsius: | ||
| 123 | + default: | ||
| 124 | + return QString("%1℃ / %2℃").arg(current).arg(target); | ||
| 125 | + } | ||
| 126 | +} | ||
| 127 | + | ||
| 128 | +QString Stringer::temperature(int current, int target, QString style) | ||
| 129 | +{ | ||
| 130 | + switch (temperatureFormat()) | ||
| 131 | + { | ||
| 132 | + case Fahrenheit: | ||
| 133 | + return style + heavySpan.arg(toFahrenheit(current)) + lightSpan.arg(QString("℉ / %1").arg(toFahrenheit(target))) + lightestSpan.arg("℉"); | ||
| 134 | + case Celsius: | ||
| 135 | + default: | ||
| 136 | + return style + heavySpan.arg(current) + lightSpan.arg(QString("℃ / %1").arg(target)) + lightestSpan.arg("℃"); | ||
| 137 | + } | ||
| 138 | +} | ||
| 139 | + | ||
| 140 | +QString Stringer::unusedTemperature() | ||
| 141 | +{ | ||
| 142 | + switch (temperatureFormat()) | ||
| 143 | + { | ||
| 144 | + case Fahrenheit: | ||
| 145 | + return QString("℉"); | ||
| 146 | + case Celsius: | ||
| 147 | + default: | ||
| 148 | + return QString("℃"); | ||
| 149 | + } | ||
| 150 | +} | ||
| 151 | + | ||
| 152 | +QString Stringer::unusedTemperature(QString style) | ||
| 153 | +{ | ||
| 154 | + switch (temperatureFormat()) | ||
| 155 | + { | ||
| 156 | + case Fahrenheit: | ||
| 157 | + return style + lightSpan.arg("℉"); | ||
| 158 | + case Celsius: | ||
| 159 | + default: | ||
| 160 | + return style + lightSpan.arg("℃"); | ||
| 161 | + } | ||
| 162 | +} |
app/gui/oven_control/stringer.h
| @@ -0,0 +1,26 @@ | @@ -0,0 +1,26 @@ | ||
| 1 | +#ifndef STRINGER_H | ||
| 2 | +#define STRINGER_H | ||
| 3 | + | ||
| 4 | + | ||
| 5 | +#include <QtCore> | ||
| 6 | + | ||
| 7 | +namespace Stringer { | ||
| 8 | +const QString fontSize14("\ | ||
| 9 | +<style>\ | ||
| 10 | +span { font-size: 14pt; }\ | ||
| 11 | +span.heavy { font-size: 16pt; }\ | ||
| 12 | +span.light { font-size: 11pt; }\ | ||
| 13 | +span.lightest { font-size: 9pt; }\ | ||
| 14 | +</style>"); | ||
| 15 | + | ||
| 16 | +QString remainingTime(int secs); | ||
| 17 | +QString remainingTime(int secs, QString style); | ||
| 18 | +QString temperature(int celsius); | ||
| 19 | +QString temperature(int celsius, QString style); | ||
| 20 | +QString temperature(int current, int target); | ||
| 21 | +QString temperature(int current, int target, QString style); | ||
| 22 | +QString unusedTemperature(); | ||
| 23 | +QString unusedTemperature(QString style); | ||
| 24 | +} | ||
| 25 | + | ||
| 26 | +#endif // STRINGER_H |