99b8066f4
김태훈
V0.1.1
|
1
2
|
#include "autocookwindow.h"
#include "ui_autocookwindow.h"
|
9e1f8d093
김태훈
엔코더 구현 대비 선행 수정
|
3
|
#include <QKeyEvent>
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
4
|
#include "keepwarmpopup.h"
|
f588aa273
김태훈
부가 기능 로직 추가
|
5
6
7
|
#include "cookhistory.h"
#include "confirmpopup.h"
#include "favoritenamepopup.h"
|
2bfd3a050
김태훈
환경 설정 대응
|
8
|
#include "stringer.h"
|
bbd7d8f29
김태훈
버튼 음향 추가
|
9
|
#include "soundplayer.h"
|
e00c6a2a9
김태훈
기능 추가 구현
|
10
11
12
|
#include "configwindow.h"
#include "washwindow.h"
#include "mainwindow.h"
|
ea536cd1d
김태훈
적재 / 조리 중 문 열림 시간...
|
13
14
|
#include "config.h"
#include "errorpopupdlg.h"
|
11c611782
김태훈
자동 요리 세부 사항 구현
|
15
|
#include "autocookselectionpopup.h"
|
68c06e96f
김태훈
자동 요리 세부 사항 구현
|
16
|
#include "autocookcheckconfigwindow.h"
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
17
18
|
AutoCookWindow::AutoCookWindow(QWidget *parent, Cook cook) :
|
99b8066f4
김태훈
V0.1.1
|
19
20
|
QMainWindow(parent),
ui(new Ui::AutoCookWindow),
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
21
|
cook(cook)
|
99b8066f4
김태훈
V0.1.1
|
22
23
|
{
ui->setupUi(this);
|
99b8066f4
김태훈
V0.1.1
|
24
|
ui->clockContainer->setParent(ui->upperStack);
|
6f96c947a
김태훈
GUI 0.1.4
|
25
|
setAttribute(Qt::WA_DeleteOnClose);
|
99b8066f4
김태훈
V0.1.1
|
26
|
|
f588aa273
김태훈
부가 기능 로직 추가
|
27
28
29
30
|
if (!this->cook.isLoaded())
this->cook.load();
autocook = AutoCook(this->cook);
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
31
|
processSelected = false;
|
ea536cd1d
김태훈
적재 / 조리 중 문 열림 시간...
|
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
config_item item = Config::getInstance()->getConfigValue(Define::config_loading_door_monitoring);
if (item.d8.d8_0 > 0 && item.d8.d8_0 < 4)
{
loadingMonitorLevel = item.d8.d8_0;
loadingMonitor1 = item.d8.d8_1 * 1000;
loadingMonitor2 = item.d8.d8_2 * 1000;
loadingMonitor3 = item.d8.d8_3 * 1000;
currentLoadingMonitorLevel = 0;
}
else
loadingMonitorLevel = 0;
item = Config::getInstance()->getConfigValue(Define::config_cooking_door_monitoring);
if (item.d8.d8_0 > 0 && item.d8.d8_0 < 4)
{
cookingMonitorLevel = item.d8.d8_0;
cookingMonitor1 = item.d8.d8_1 * 1000;
cookingMonitor2 = item.d8.d8_2 * 1000;
cookingMonitor3 = item.d8.d8_3 * 1000;
currentCookingMonitorLevel = 0;
}
else
cookingMonitorLevel = 0;
if (loadingMonitorLevel > 0 || cookingMonitorLevel > 0)
{
connect(&monitorTimer, SIGNAL(timeout()), SLOT(monitor()));
monitorTimer.start(100);
}
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
61
|
setupUi();
|
99b8066f4
김태훈
V0.1.1
|
62
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
63
64
|
Oven *oven = Oven::getInstance();
connect(oven, SIGNAL(changed(Oven*)), SLOT(updateView()));
|
99b8066f4
김태훈
V0.1.1
|
65
66
67
68
|
returnToCurrentStepTimer.setSingleShot(true);
returnToCurrentStepTimer.setInterval(3000);
connect(&returnToCurrentStepTimer, SIGNAL(timeout()), SLOT(returnToCurrentStep()));
|
99b8066f4
김태훈
V0.1.1
|
69
|
showCurrentHumidityTimer.setSingleShot(true);
|
5228da630
김태훈
딜레이 변경
|
70
|
showCurrentHumidityTimer.setInterval(1000);
|
99b8066f4
김태훈
V0.1.1
|
71
|
connect(&showCurrentHumidityTimer, SIGNAL(timeout()), SLOT(showCurrentHumidity()));
|
99b8066f4
김태훈
V0.1.1
|
72
|
showCurrentTempTimer.setSingleShot(true);
|
5228da630
김태훈
딜레이 변경
|
73
|
showCurrentTempTimer.setInterval(1000);
|
99b8066f4
김태훈
V0.1.1
|
74
|
connect(&showCurrentTempTimer, SIGNAL(timeout()), SLOT(showCurrentTemp()));
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
75
76
|
connect(&checkCookTimer, SIGNAL(timeout()), SLOT(checkCook()));
checkCookTimer.start(100);
|
d66d7f5b4
김태훈
GUI 버전 0.1.2
|
77
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
78
|
connect(&checkProcessTimer, SIGNAL(timeout()), SLOT(checkProcess()));
|
f588aa273
김태훈
부가 기능 로직 추가
|
79
80
81
82
83
84
85
86
87
88
|
AutoCookSetting setting;
setting.type = cook.type;
setting.root = cook.root;
setting.name = cook.name;
for (int i = 0; i < 5; i++)
setting.configs[i] = cook.configs[i].current;
CookHistory::record(setting);
|
2bfd3a050
김태훈
환경 설정 대응
|
89
|
|
bbd7d8f29
김태훈
버튼 음향 추가
|
90
91
|
foreach (QPushButton *button, findChildren<QPushButton *>())
connect(button, &QPushButton::pressed, SoundPlayer::playClick);
|
2bfd3a050
김태훈
환경 설정 대응
|
92
93
|
connect(&updateViewTimer, SIGNAL(timeout()), SLOT(updateView()));
updateViewTimer.start(100);
|
c6dd03260
김태훈
요리 시작/종료 관련 음향 효과...
|
94
95
|
SoundPlayer::playStart();
|
98f4a2932
김태훈
엔코더 구현
|
96
97
|
setFocus();
|
99b8066f4
김태훈
V0.1.1
|
98
99
100
101
|
}
AutoCookWindow::~AutoCookWindow()
{
|
ea536cd1d
김태훈
적재 / 조리 중 문 열림 시간...
|
102
|
Oven::getInstance()->stop();
|
99b8066f4
김태훈
V0.1.1
|
103
104
|
delete ui;
}
|
9e1f8d093
김태훈
엔코더 구현 대비 선행 수정
|
105
106
107
108
|
void AutoCookWindow::keyPressEvent(QKeyEvent *event)
{
switch (event->key())
{
|
01249f413
김태훈
엔코더 방향 반전. 하드웨어가 변경됨
|
109
|
case 0x01000032: // Turn left
|
9e1f8d093
김태훈
엔코더 구현 대비 선행 수정
|
110
111
112
113
114
|
onEncoderLeft();
break;
case 0x01000031: // Push
pushed = focusWidget();
break;
|
01249f413
김태훈
엔코더 방향 반전. 하드웨어가 변경됨
|
115
|
case 0x01000030: // Turn right
|
9e1f8d093
김태훈
엔코더 구현 대비 선행 수정
|
116
117
118
119
120
121
122
123
124
|
onEncoderRight();
break;
}
}
void AutoCookWindow::keyReleaseEvent(QKeyEvent *event)
{
switch (event->key())
{
|
01249f413
김태훈
엔코더 방향 반전. 하드웨어가 변경됨
|
125
|
case 0x01000032: // Turn left
|
9e1f8d093
김태훈
엔코더 구현 대비 선행 수정
|
126
127
128
129
130
131
132
133
|
onEncoderLeft();
break;
case 0x01000031: // Push
if (focusWidget() == pushed)
onEncoderClicked(pushed);
pushed = NULL;
break;
|
01249f413
김태훈
엔코더 방향 반전. 하드웨어가 변경됨
|
134
|
case 0x01000030: // Turn right
|
9e1f8d093
김태훈
엔코더 구현 대비 선행 수정
|
135
136
137
138
|
onEncoderRight();
break;
}
}
|
99b8066f4
김태훈
V0.1.1
|
139
140
|
void AutoCookWindow::setupUi()
{
|
05f2a7552
김태훈
image 관리 구조 변경
|
141
142
143
|
steamModeIcon.load(":/images/cook_mode/small_steam.png");
dryModeIcon.load(":/images/cook_mode/small_dryheat.png");
combiModeIcon.load(":/images/cook_mode/small_combi.png");
|
6f96c947a
김태훈
GUI 0.1.4
|
144
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
145
146
|
ui->cookTypeIcon->setPixmap(Define::icon(cook.type));
ui->selectCookButton->setText(cook.name);
|
99b8066f4
김태훈
V0.1.1
|
147
|
|
a366f320c
김태훈
자동 요리 후속 공정 동작 개선
|
148
|
ui->stepIndicator->setMaximum(cook.steps.size() - 1);
|
99b8066f4
김태훈
V0.1.1
|
149
150
151
152
153
154
155
156
157
158
|
ui->cookStepAnimation->start(300);
ui->humidityGauge->setMinimum(0);
ui->humidityGauge->setMaximum(100);
ui->humidityGauge->setValue(0);
ui->heatGauge->setMinimum(30);
ui->heatGauge->setMaximum(300);
ui->heatGauge->setValue(30);
|
05f2a7552
김태훈
image 관리 구조 변경
|
159
160
161
162
163
164
165
166
167
|
ui->openDoorAnimation->load(":/images/animation/door_01.png");
ui->openDoorAnimation->load(":/images/animation/door_02.png");
ui->openDoorAnimation->load(":/images/animation/door_03.png");
ui->openDoorAnimation->load(":/images/animation/door_04.png");
ui->openDoorAnimation->load(":/images/animation/door_05.png");
ui->openDoorAnimation->load(":/images/animation/door_06.png");
ui->openDoorAnimation->load(":/images/animation/door_07.png");
ui->openDoorAnimation->load(":/images/animation/door_08.png");
ui->openDoorAnimation->load(":/images/animation/door_09.png");
|
6f96c947a
김태훈
GUI 0.1.4
|
168
169
170
|
ui->openDoorAnimation->start(300);
ui->openDoorAnimation->hide();
ui->openDoorArrow->hide();
|
05f2a7552
김태훈
image 관리 구조 변경
|
171
172
173
174
175
176
177
178
179
|
ui->closeDoorAnimation->load(":/images/animation/door_09.png");
ui->closeDoorAnimation->load(":/images/animation/door_08.png");
ui->closeDoorAnimation->load(":/images/animation/door_07.png");
ui->closeDoorAnimation->load(":/images/animation/door_06.png");
ui->closeDoorAnimation->load(":/images/animation/door_05.png");
ui->closeDoorAnimation->load(":/images/animation/door_04.png");
ui->closeDoorAnimation->load(":/images/animation/door_03.png");
ui->closeDoorAnimation->load(":/images/animation/door_02.png");
ui->closeDoorAnimation->load(":/images/animation/door_01.png");
|
6f96c947a
김태훈
GUI 0.1.4
|
180
181
182
|
ui->closeDoorAnimation->start(300);
ui->closeDoorAnimation->hide();
ui->closeDoorArrow->hide();
|
62e672364
김태훈
자동 요리 중 중심 온도 활성화...
|
183
184
185
186
|
ui->thermometerAnimation->load(":/images/animation/thermometer_01.png");
ui->thermometerAnimation->load(":/images/animation/thermometer_02.png");
ui->thermometerAnimation->start(300);
ui->thermometerAnimation->hide();
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
187
188
189
190
191
192
|
lastViewCookMode = Define::InvalidMode;
lastViewCookType = Define::Invalid;
lastViewCoreTemp = 999;
lastViewDoorType = Define::Invalid;
lastViewTime = 0;
lastViewStepIndex = -1;
|
7d0288172
김태훈
기능 추가 구현
|
193
194
|
lastViewTemp = 999;
lastViewHumidity = 999;
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
195
196
197
|
selectedStepIndex = 0;
showingCurrentHumidity = false;
showingCurrentTemp = false;
|
99b8066f4
김태훈
V0.1.1
|
198
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
199
|
if (autocook.cook.processes.isEmpty())
|
99b8066f4
김태훈
V0.1.1
|
200
|
{
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
201
202
203
204
205
|
ui->processTitleLabel->hide();
ui->processTypeLabel->hide();
ui->processButton_1->hide();
ui->processButton_2->hide();
ui->processButton_3->hide();
|
99b8066f4
김태훈
V0.1.1
|
206
207
208
|
}
else
{
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
209
210
211
|
QString typeText;
QSignalMapper *sm = NULL;
for (int i = 0; i < 3; i++)
|
99b8066f4
김태훈
V0.1.1
|
212
|
{
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
213
214
|
QPushButton *pb;
switch (i)
|
99b8066f4
김태훈
V0.1.1
|
215
216
|
{
case 0:
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
217
|
pb = ui->processButton_1;
|
99b8066f4
김태훈
V0.1.1
|
218
219
|
break;
case 1:
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
220
|
pb = ui->processButton_2;
|
99b8066f4
김태훈
V0.1.1
|
221
222
|
break;
case 2:
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
223
|
pb = ui->processButton_3;
|
99b8066f4
김태훈
V0.1.1
|
224
225
|
break;
}
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
226
|
if (i < autocook.cook.processes.size())
|
99b8066f4
김태훈
V0.1.1
|
227
|
{
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
228
229
230
231
232
233
234
235
236
237
238
|
if (sm == NULL)
{
sm = new QSignalMapper(this);
connect(sm, SIGNAL(mapped(int)), SLOT(startProcess(int)));
}
Define::Process process = autocook.cook.processes[i];
QString text = Define::name(process);
if (typeText.isEmpty())
typeText = text;
|
6f96c947a
김태훈
GUI 0.1.4
|
239
|
else
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
240
241
242
243
244
245
246
247
248
249
250
251
252
253
|
typeText += ", " + text;
QString styleSheet = QString("QPushButton { border-image: url(%1) } QPushButton:pressed { border-image: url(%2) }")
.arg(Define::icon(process))
.arg(Define::iconOverlay(process));
pb->setStyleSheet(styleSheet);
sm->setMapping(pb, (int) process);
connect(pb, SIGNAL(clicked()), sm, SLOT(map()));
}
else
{
pb->hide();
|
99b8066f4
김태훈
V0.1.1
|
254
255
|
}
}
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
256
|
ui->processTypeLabel->setText(typeText);
|
99b8066f4
김태훈
V0.1.1
|
257
|
}
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
258
259
|
ui->processContainer->hide();
|
f588aa273
김태훈
부가 기능 로직 추가
|
260
|
ui->doorStepLabel->hide();
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
261
262
|
updateView();
|
99b8066f4
김태훈
V0.1.1
|
263
|
}
|
9e1f8d093
김태훈
엔코더 구현 대비 선행 수정
|
264
265
|
void AutoCookWindow::onEncoderLeft()
{
|
98f4a2932
김태훈
엔코더 구현
|
266
|
focusPreviousChild();
|
9e1f8d093
김태훈
엔코더 구현 대비 선행 수정
|
267
268
269
270
|
}
void AutoCookWindow::onEncoderRight()
{
|
98f4a2932
김태훈
엔코더 구현
|
271
|
focusNextChild();
|
9e1f8d093
김태훈
엔코더 구현 대비 선행 수정
|
272
273
274
275
|
}
void AutoCookWindow::onEncoderClicked(QWidget *clicked)
{
|
98f4a2932
김태훈
엔코더 구현
|
276
277
278
|
QPushButton *b = qobject_cast<QPushButton *>(clicked);
if (b)
b->click();
|
9e1f8d093
김태훈
엔코더 구현 대비 선행 수정
|
279
|
}
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
280
|
void AutoCookWindow::updateView()
|
99b8066f4
김태훈
V0.1.1
|
281
|
{
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
282
|
Oven *oven = Oven::getInstance();
|
2bfd3a050
김태훈
환경 설정 대응
|
283
|
if (!autocook.done())
|
99b8066f4
김태훈
V0.1.1
|
284
|
{
|
2bfd3a050
김태훈
환경 설정 대응
|
285
286
|
int remainingTime = qMax(0, autocook.msecs());
ui->timeLabel->setText(Stringer::remainingTime(remainingTime));
|
99b8066f4
김태훈
V0.1.1
|
287
|
}
|
99b8066f4
김태훈
V0.1.1
|
288
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
289
290
291
292
|
int coreTemp = oven->currentInterTemp();
if (coreTemp != lastViewCoreTemp)
{
lastViewCoreTemp = coreTemp;
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
293
|
if (cook.isCoreTempValid())
|
2bfd3a050
김태훈
환경 설정 대응
|
294
|
ui->interTempLabel->setText(Stringer::temperature(coreTemp, cook.coreTemp(), Stringer::fontSize14));
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
295
|
else
|
2bfd3a050
김태훈
환경 설정 대응
|
296
|
ui->interTempLabel->setText(Stringer::temperature(coreTemp, Stringer::fontSize14));
|
99b8066f4
김태훈
V0.1.1
|
297
|
}
|
99b8066f4
김태훈
V0.1.1
|
298
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
299
|
if (autocook.done())
|
99b8066f4
김태훈
V0.1.1
|
300
|
{
|
36aae9ce0
김태훈
바삭함 주기 중 문 열림/닫힘 ...
|
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
|
if (processSelected)
{
if (ui->openDoorAnimation->isVisible())
ui->openDoorAnimation->hide();
if (ui->openDoorArrow->isVisible())
ui->openDoorArrow->hide();
if (oven->door())
{
if (ui->closeDoorAnimation->isVisible())
ui->closeDoorAnimation->hide();
if (ui->closeDoorArrow->isVisible())
ui->closeDoorArrow->hide();
}
else
{
if (ui->closeDoorAnimation->isVisible())
ui->closeDoorAnimation->hide();
if (ui->closeDoorArrow->isVisible())
ui->closeDoorArrow->hide();
}
}
else if (!oven->door())
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
327
328
329
|
{
if (ui->openDoorAnimation->isHidden())
ui->openDoorAnimation->show();
|
6f96c947a
김태훈
GUI 0.1.4
|
330
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
331
332
333
334
335
336
337
338
339
340
|
if (ui->openDoorArrow->isHidden())
ui->openDoorArrow->show();
if (ui->closeDoorAnimation->isVisible())
ui->closeDoorAnimation->hide();
if (ui->closeDoorArrow->isVisible())
ui->closeDoorArrow->hide();
}
else
|
6f96c947a
김태훈
GUI 0.1.4
|
341
|
{
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
342
343
344
345
346
347
348
349
350
351
352
|
if (ui->openDoorAnimation->isVisible())
ui->openDoorAnimation->hide();
if (ui->openDoorArrow->isVisible())
ui->openDoorArrow->hide();
if (ui->closeDoorAnimation->isVisible())
ui->closeDoorAnimation->hide();
if (ui->closeDoorArrow->isVisible())
ui->closeDoorArrow->hide();
|
6f96c947a
김태훈
GUI 0.1.4
|
353
|
}
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
354
|
|
36aae9ce0
김태훈
바삭함 주기 중 문 열림/닫힘 ...
|
355
356
357
|
if (processSelected)
ui->processContainer->hide();
else if (ui->processContainer->isHidden())
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
358
|
ui->processContainer->show();
|
99b8066f4
김태훈
V0.1.1
|
359
|
}
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
360
361
362
363
|
else if (autocook.isWaitingDoorOpened() && !oven->door())
{
if (ui->openDoorAnimation->isHidden())
ui->openDoorAnimation->show();
|
99b8066f4
김태훈
V0.1.1
|
364
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
365
366
|
if (ui->openDoorArrow->isHidden())
ui->openDoorArrow->show();
|
99b8066f4
김태훈
V0.1.1
|
367
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
368
369
|
if (ui->closeDoorAnimation->isVisible())
ui->closeDoorAnimation->hide();
|
99b8066f4
김태훈
V0.1.1
|
370
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
371
372
|
if (ui->closeDoorArrow->isVisible())
ui->closeDoorArrow->hide();
|
99b8066f4
김태훈
V0.1.1
|
373
|
}
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
374
375
376
377
|
else if (!autocook.isWaitingDoorOpened() && oven->door())
{
if (ui->openDoorAnimation->isVisible())
ui->openDoorAnimation->hide();
|
99b8066f4
김태훈
V0.1.1
|
378
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
379
380
|
if (ui->openDoorArrow->isVisible())
ui->openDoorArrow->hide();
|
99b8066f4
김태훈
V0.1.1
|
381
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
382
383
|
if (ui->closeDoorAnimation->isHidden())
ui->closeDoorAnimation->show();
|
99b8066f4
김태훈
V0.1.1
|
384
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
385
386
387
388
389
390
391
|
if (ui->closeDoorArrow->isHidden())
ui->closeDoorArrow->show();
}
else
{
if (ui->openDoorAnimation->isVisible())
ui->openDoorAnimation->hide();
|
99b8066f4
김태훈
V0.1.1
|
392
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
393
394
|
if (ui->openDoorArrow->isVisible())
ui->openDoorArrow->hide();
|
99b8066f4
김태훈
V0.1.1
|
395
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
396
397
|
if (ui->closeDoorAnimation->isVisible())
ui->closeDoorAnimation->hide();
|
99b8066f4
김태훈
V0.1.1
|
398
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
399
400
401
|
if (ui->closeDoorArrow->isVisible())
ui->closeDoorArrow->hide();
}
|
99b8066f4
김태훈
V0.1.1
|
402
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
403
404
405
406
|
if (autocook.cook.steps[autocook.currentStepIndex].type == Define::Preheat)
{
if (ui->preheatIcon->isHidden())
ui->preheatIcon->show();
|
6f96c947a
김태훈
GUI 0.1.4
|
407
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
408
409
|
if (ui->preheatLabel->isHidden())
ui->preheatLabel->show();
|
6f96c947a
김태훈
GUI 0.1.4
|
410
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
411
412
413
414
415
416
417
418
|
if (ui->preheatGauge->isHidden())
ui->preheatGauge->show();
ui->preheatGauge->setMaximum(autocook.cook.steps[autocook.currentStepIndex].temp);
ui->preheatGauge->setMinimum(autocook.startTemp);
ui->preheatGauge->setValue(oven->currentTemp());
}
else
|
99b8066f4
김태훈
V0.1.1
|
419
|
{
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
420
421
|
if (ui->preheatIcon->isVisible())
ui->preheatIcon->hide();
|
d66d7f5b4
김태훈
GUI 버전 0.1.2
|
422
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
423
424
|
if (ui->preheatLabel->isVisible())
ui->preheatLabel->hide();
|
6f96c947a
김태훈
GUI 0.1.4
|
425
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
426
427
|
if (ui->preheatGauge->isVisible())
ui->preheatGauge->hide();
|
99b8066f4
김태훈
V0.1.1
|
428
|
}
|
99b8066f4
김태훈
V0.1.1
|
429
|
|
b13e23ee4
김태훈
자동 요리 수정
|
430
431
432
433
434
435
436
|
if (selectedStepIndex != autocook.currentStepIndex)
{
if (!returnToCurrentStepTimer.isActive())
{
selectedStepIndex = autocook.currentStepIndex;
}
}
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
437
|
if (selectedStepIndex != lastViewStepIndex)
|
99b8066f4
김태훈
V0.1.1
|
438
|
{
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
439
|
lastViewStepIndex = selectedStepIndex;
|
a366f320c
김태훈
자동 요리 후속 공정 동작 개선
|
440
|
ui->stepIndicator->setCurrentIndex(selectedStepIndex);
|
d66d7f5b4
김태훈
GUI 버전 0.1.2
|
441
|
}
|
99b8066f4
김태훈
V0.1.1
|
442
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
443
444
|
CookStep showingStep = autocook.cook.steps[selectedStepIndex];
if (Define::classify(showingStep.type) == Define::DoorClass)
|
99b8066f4
김태훈
V0.1.1
|
445
|
{
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
446
447
|
if (ui->cookStepIcon->isVisible())
ui->cookStepIcon->hide();
|
d66d7f5b4
김태훈
GUI 버전 0.1.2
|
448
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
|
if (ui->cookStepLabel->isVisible())
ui->cookStepLabel->hide();
if (ui->cookModeIcon->isVisible())
ui->cookModeIcon->hide();
if (ui->humidityGauge->isVisible())
ui->humidityGauge->hide();
if (ui->humidityGaugeButton->isVisible())
ui->humidityGaugeButton->hide();
if (ui->humidityLabel->isVisible())
ui->humidityLabel->hide();
if (ui->heatGauge->isVisible())
ui->heatGauge->hide();
if (ui->heatGaugeButton->isVisible())
ui->heatGaugeButton->hide();
if (ui->heatLabel->isVisible())
ui->heatLabel->hide();
if (ui->doorStepLabel->isHidden())
ui->doorStepLabel->show();
if (ui->cookStepAnimation->isHidden())
ui->cookStepAnimation->show();
if (showingStep.type != lastViewDoorType)
|
99b8066f4
김태훈
V0.1.1
|
480
|
{
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
481
|
lastViewDoorType = showingStep.type;
|
d66d7f5b4
김태훈
GUI 버전 0.1.2
|
482
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
483
484
485
486
487
|
ui->doorStepLabel->setText(Define::name(showingStep.type));
ui->cookStepAnimation->clear();
switch (showingStep.type)
{
case Define::PutThermometer:
|
64f6e5e04
고영탁
한글화 진행
|
488
|
ui->doorStepLabel->setText(tr("중심 온도계 삽입"));
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
489
490
491
492
493
494
|
ui->cookStepAnimation->load(":/images/animation/thermometer_01.png");
ui->cookStepAnimation->load(":/images/animation/thermometer_02.png");
ui->cookStepAnimation->setGeometry((900-210)/2, 800, 210, 307);
ui->cookStepAnimation->start(300);
break;
case Define::Load:
|
64f6e5e04
고영탁
한글화 진행
|
495
|
ui->doorStepLabel->setText(tr("식재료 적재"));
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
496
497
498
499
500
501
502
503
504
505
506
|
ui->cookStepAnimation->load(":/images/animation/load_01.png");
ui->cookStepAnimation->load(":/images/animation/load_02.png");
ui->cookStepAnimation->load(":/images/animation/load_03.png");
ui->cookStepAnimation->load(":/images/animation/load_04.png");
ui->cookStepAnimation->load(":/images/animation/load_03.png");
ui->cookStepAnimation->load(":/images/animation/load_02.png");
ui->cookStepAnimation->load(":/images/animation/load_01.png");
ui->cookStepAnimation->setGeometry((900-264)/2, 800, 264, 307);
ui->cookStepAnimation->start(300);
break;
case Define::Cut:
|
64f6e5e04
고영탁
한글화 진행
|
507
|
ui->doorStepLabel->setText(tr("자르기"));
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
508
509
510
511
512
513
514
|
ui->cookStepAnimation->load(":/images/animation/cut_01.png");
ui->cookStepAnimation->load(":/images/animation/cut_02.png");
ui->cookStepAnimation->load(":/images/animation/cut_03.png");
ui->cookStepAnimation->setGeometry((900-264)/2, 800, 264, 307);
ui->cookStepAnimation->start(300);
break;
case Define::Pour:
|
64f6e5e04
고영탁
한글화 진행
|
515
|
ui->doorStepLabel->setText(tr("물 붓기"));
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
516
517
518
519
520
521
522
523
524
525
|
ui->cookStepAnimation->load(":/images/animation/pour_01.png");
ui->cookStepAnimation->load(":/images/animation/pour_02.png");
ui->cookStepAnimation->load(":/images/animation/pour_03.png");
ui->cookStepAnimation->load(":/images/animation/pour_04.png");
ui->cookStepAnimation->setGeometry((900-264)/2, 800, 264, 307);
ui->cookStepAnimation->start(300);
break;
default:
ui->doorStepLabel->hide();
ui->cookStepAnimation->hide();
|
99b8066f4
김태훈
V0.1.1
|
526
527
528
|
}
}
}
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
529
|
else
|
6f96c947a
김태훈
GUI 0.1.4
|
530
|
{
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
|
if (ui->doorStepLabel->isVisible())
ui->doorStepLabel->hide();
if (ui->cookStepAnimation->isVisible())
ui->cookStepAnimation->hide();
if (ui->cookStepIcon->isHidden())
ui->cookStepIcon->show();
if (ui->cookStepLabel->isHidden())
ui->cookStepLabel->show();
if (ui->cookModeIcon->isHidden())
ui->cookModeIcon->show();
if (ui->humidityGauge->isHidden())
ui->humidityGauge->show();
if (ui->humidityGaugeButton->isHidden())
ui->humidityGaugeButton->show();
if (ui->humidityLabel->isHidden())
ui->humidityLabel->show();
if (ui->heatGauge->isHidden())
ui->heatGauge->show();
if (ui->heatGaugeButton->isHidden())
ui->heatGaugeButton->show();
if (ui->heatLabel->isHidden())
ui->heatLabel->show();
if (showingStep.type != lastViewCookType)
|
6f96c947a
김태훈
GUI 0.1.4
|
565
|
{
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
566
|
lastViewCookType = showingStep.type;
|
6f96c947a
김태훈
GUI 0.1.4
|
567
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
568
569
|
ui->cookStepIcon->setPixmap(Define::icon(showingStep.type));
ui->cookStepLabel->setText(Define::name(showingStep.type));
|
6f96c947a
김태훈
GUI 0.1.4
|
570
|
}
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
571
572
|
if (showingStep.mode != lastViewCookMode)
|
6f96c947a
김태훈
GUI 0.1.4
|
573
|
{
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
574
|
lastViewCookMode = showingStep.mode;
|
6f96c947a
김태훈
GUI 0.1.4
|
575
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
576
577
578
579
580
581
582
583
584
585
586
587
588
589
|
switch (showingStep.mode)
{
case Define::SteamMode:
ui->cookModeIcon->setPixmap(steamModeIcon);
break;
case Define::CombiMode:
ui->cookModeIcon->setPixmap(combiModeIcon);
break;
case Define::DryMode:
ui->cookModeIcon->setPixmap(dryModeIcon);
break;
case Define::InvalidClass:
ui->cookModeIcon->hide();
break;
|
6f96c947a
김태훈
GUI 0.1.4
|
590
591
|
}
}
|
d66d7f5b4
김태훈
GUI 버전 0.1.2
|
592
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
593
594
595
596
597
|
int humidity;
if (showingCurrentHumidity)
humidity = oven->currentHumidity();
else
humidity = showingStep.humidity;
|
99b8066f4
김태훈
V0.1.1
|
598
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
599
600
601
602
|
if (humidity != lastViewHumidity)
{
lastViewHumidity = humidity;
ui->humidityLabel->setText(QString("%1%").arg(humidity));
|
ecfb5801a
김태훈
디버깅 요청 사항 반영
|
603
|
ui->humidityGauge->setValue(humidity);
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
604
|
}
|
99b8066f4
김태훈
V0.1.1
|
605
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
606
607
608
609
610
|
int temp;
if (showingCurrentTemp)
temp = oven->currentTemp();
else
temp = showingStep.temp;
|
99b8066f4
김태훈
V0.1.1
|
611
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
612
613
614
|
if (temp != lastViewTemp)
{
lastViewTemp = temp;
|
2bfd3a050
김태훈
환경 설정 대응
|
615
|
ui->heatLabel->setText(Stringer::temperature(temp));
|
ecfb5801a
김태훈
디버깅 요청 사항 반영
|
616
|
ui->heatGauge->setValue(temp);
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
617
|
}
|
99b8066f4
김태훈
V0.1.1
|
618
|
}
|
62e672364
김태훈
자동 요리 중 중심 온도 활성화...
|
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
|
if (autocook.isCoreTempActivated())
{
if (ui->thermometerAnimation->isVisible())
{
if (oven->currentInterTemp() + 20 < oven->currentTemp())
ui->thermometerAnimation->hide();
}
else
{
if (oven->currentInterTemp() >= oven->currentTemp())
ui->thermometerAnimation->show();
}
}
if (ui->thermometerAnimation->isVisible())
{
ui->cookModeIcon->hide();
ui->cookStepAnimation->hide();
ui->cookStepIcon->hide();
ui->cookStepLabel->hide();
ui->doorStepLabel->hide();
ui->heatGauge->hide();
ui->heatGaugeButton->hide();
ui->heatLabel->hide();
ui->humidityGauge->hide();
ui->humidityGaugeButton->hide();
ui->humidityLabel->hide();
ui->infoButton->hide();
ui->showNextStepButton->hide();
ui->showPrevStepButton->hide();
ui->stepIndicator->hide();
}
else
{
ui->infoButton->show();
ui->showNextStepButton->show();
ui->showPrevStepButton->show();
ui->stepIndicator->show();
}
|
99b8066f4
김태훈
V0.1.1
|
659
660
661
662
|
}
void AutoCookWindow::checkCook()
{
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
663
664
|
int lastStepIndex = autocook.currentStepIndex;
if (autocook.advance())
|
99b8066f4
김태훈
V0.1.1
|
665
|
{
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
666
667
668
669
|
if (lastStepIndex != autocook.currentStepIndex)
selectedStepIndex = autocook.currentStepIndex;
if (autocook.done())
|
097e5e14a
김태훈
프로그래밍 모드 세부 사항 구현
|
670
|
{
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
671
|
checkCookTimer.stop();
|
097e5e14a
김태훈
프로그래밍 모드 세부 사항 구현
|
672
673
|
emit done();
}
|
99b8066f4
김태훈
V0.1.1
|
674
675
676
677
|
}
updateView();
}
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
678
|
void AutoCookWindow::startProcess(int process)
|
99b8066f4
김태훈
V0.1.1
|
679
|
{
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
680
681
|
if (processSelected)
return;
|
99b8066f4
김태훈
V0.1.1
|
682
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
683
|
processSelected = true;
|
99b8066f4
김태훈
V0.1.1
|
684
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
685
686
687
688
689
690
|
Define::Process p = (Define::Process) process;
switch (p)
{
case Define::CookAgain:
{
close();
|
99b8066f4
김태훈
V0.1.1
|
691
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
692
693
694
695
|
AutoCookWindow *w = new AutoCookWindow(parentWidget(), cook);
w->setWindowModality(Qt::WindowModal);
w->showFullScreen();
w->raise();
|
99b8066f4
김태훈
V0.1.1
|
696
|
|
11c611782
김태훈
자동 요리 세부 사항 구현
|
697
|
emit newWindow(w);
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
698
699
700
701
702
|
break;
}
case Define::MakeCrisper:
{
selectedProcess = (Define::Process) process;
|
99b8066f4
김태훈
V0.1.1
|
703
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
704
|
CookStep &step = autocook.cook.steps[autocook.cook.steps.size() - 1];
|
99b8066f4
김태훈
V0.1.1
|
705
|
|
a366f320c
김태훈
자동 요리 후속 공정 동작 개선
|
706
707
708
709
710
711
712
713
714
715
716
|
CookStep newStep = step;
newStep.type = Define::MakeCrispy;
newStep.humidity = 0;
newStep.temp += 10;
newStep.time = 0;
newStep.humidification = 0;
newStep.dehumidification = 0;
autocook.cook.steps.append(newStep);
autocook.currentStepIndex = autocook.cook.steps.size() - 1;
ui->stepIndicator->setMaximum(autocook.cook.steps.size() - 1);
returnToCurrentStep();
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
717
|
Oven *oven = Oven::getInstance();
|
a366f320c
김태훈
자동 요리 후속 공정 동작 개선
|
718
|
oven->setHumidity(0);
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
719
720
|
oven->setTemp(step.temp + 10);
oven->startCooking();
|
99b8066f4
김태훈
V0.1.1
|
721
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
722
|
checkProcessTimer.start(100);
|
c6dd03260
김태훈
요리 시작/종료 관련 음향 효과...
|
723
724
|
SoundPlayer::playStart();
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
725
726
727
728
729
730
|
break;
}
case Define::KeepWarm:
{
processSelected = false;
selectedProcess = (Define::Process) process;
|
99b8066f4
김태훈
V0.1.1
|
731
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
732
733
734
735
736
|
KeepWarmPopup *p = new KeepWarmPopup(this);
p->showFullScreen();
p->raise();
break;
}
|
1f7568d7e
김태훈
컴파일 경고 제거
|
737
738
|
default:
return;
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
739
|
}
|
99b8066f4
김태훈
V0.1.1
|
740
|
}
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
741
|
void AutoCookWindow::checkProcess()
|
99b8066f4
김태훈
V0.1.1
|
742
|
{
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
743
744
|
if (!processSelected)
return;
|
99b8066f4
김태훈
V0.1.1
|
745
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
746
747
748
749
750
751
|
switch (selectedProcess)
{
case Define::MakeCrisper:
{
Oven *oven = Oven::getInstance();
if (oven->currentTemp() >= oven->temp())
|
99b8066f4
김태훈
V0.1.1
|
752
|
{
|
c6dd03260
김태훈
요리 시작/종료 관련 음향 효과...
|
753
|
SoundPlayer::playStop();
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
754
755
|
oven->stopCooking();
checkProcessTimer.stop();
|
a366f320c
김태훈
자동 요리 후속 공정 동작 개선
|
756
|
processSelected = false;
|
99b8066f4
김태훈
V0.1.1
|
757
|
}
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
758
759
760
761
|
break;
}
default:
break;
|
99b8066f4
김태훈
V0.1.1
|
762
|
}
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
763
764
|
updateView();
|
99b8066f4
김태훈
V0.1.1
|
765
|
}
|
11c611782
김태훈
자동 요리 세부 사항 구현
|
766
767
768
769
770
771
772
773
774
775
776
|
void AutoCookWindow::changeCook(Cook cook)
{
close();
AutoCookWindow *w = new AutoCookWindow(parentWidget(), cook);
w->setWindowModality(Qt::WindowModal);
w->showFullScreen();
w->raise();
emit newWindow(w);
}
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
777
|
void AutoCookWindow::returnToCurrentStep()
|
99b8066f4
김태훈
V0.1.1
|
778
|
{
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
779
780
781
|
selectedStepIndex = autocook.currentStepIndex;
showingDifferentStep = false;
updateView();
|
99b8066f4
김태훈
V0.1.1
|
782
|
}
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
783
|
void AutoCookWindow::showCurrentHumidity()
|
99b8066f4
김태훈
V0.1.1
|
784
|
{
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
785
786
787
|
showingCurrentHumidity = true;
updateView();
}
|
99b8066f4
김태훈
V0.1.1
|
788
|
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
789
790
791
792
|
void AutoCookWindow::showCurrentTemp()
{
showingCurrentTemp = true;
updateView();
|
99b8066f4
김태훈
V0.1.1
|
793
|
}
|
f588aa273
김태훈
부가 기능 로직 추가
|
794
795
|
void AutoCookWindow::addFavorite()
{
|
e53f597d1
김태훈
고객사 요청 반영
|
796
797
798
799
800
801
802
803
|
// AutoCookSetting s;
// s.type = cook.type;
// s.root = cook.root;
// for (int i = 0; i < 5; i++)
// s.configs[i] = cook.configs[i].current;
// FavoriteNamePopup *p = new FavoriteNamePopup(this, s);
// p->showFullScreen();
|
f588aa273
김태훈
부가 기능 로직 추가
|
804
|
}
|
e00c6a2a9
김태훈
기능 추가 구현
|
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
|
void AutoCookWindow::jumpConfig()
{
Oven::getInstance()->stop();
ConfigWindow *w = new ConfigWindow(MainWindow::getInstance());
w->setWindowModality(Qt::WindowModal);
w->showFullScreen();
w->raise();
MainWindow::jump(w);
}
void AutoCookWindow::jumpWash()
{
Oven::getInstance()->stop();
WashWindow *w = new WashWindow(MainWindow::getInstance());
w->setWindowModality(Qt::WindowModal);
w->showFullScreen();
w->raise();
MainWindow::jump(w);
}
|
ea536cd1d
김태훈
적재 / 조리 중 문 열림 시간...
|
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
|
void AutoCookWindow::monitor()
{
Define::StepClass step = Define::classify(autocook.cook.steps[autocook.currentStepIndex].type);
if (step == Define::PreheatClass || step == Define::CookClass)
{
if (Oven::getInstance()->door())
{
switch (currentCookingMonitorLevel)
{
case 0:
cookingMonitorTime1.start();
currentCookingMonitorLevel = 1;
break;
case 1:
if (cookingMonitorLevel >= 1 && cookingMonitorTime1.elapsed() > cookingMonitor1)
{
SoundPlayer::playError2();
|
ffa23885e
김태훈
tr 추가
|
846
|
ErrorPopupDlg *d = new ErrorPopupDlg(this, tr("문을 닫아주세요"), tr("조리 중 문 열림 시간 모니터링 1단계"));
|
ea536cd1d
김태훈
적재 / 조리 중 문 열림 시간...
|
847
848
849
850
851
852
853
854
855
856
|
d->showFullScreen();
cookingMonitorTime2.start();
currentCookingMonitorLevel = 2;
}
break;
case 2:
if (cookingMonitorLevel >= 2 && cookingMonitorTime2.elapsed() > cookingMonitor2)
{
SoundPlayer::playError2();
|
ffa23885e
김태훈
tr 추가
|
857
|
ErrorPopupDlg *d = new ErrorPopupDlg(this, tr("문을 닫아주세요"), tr("조리 중 문 열림 시간 모니터링 2단계"));
|
ea536cd1d
김태훈
적재 / 조리 중 문 열림 시간...
|
858
859
860
861
862
863
864
865
866
867
|
d->showFullScreen();
cookingMonitorTime3.start();
currentCookingMonitorLevel = 3;
}
break;
case 3:
if (cookingMonitorLevel >= 3 && cookingMonitorTime3.elapsed() > cookingMonitor3)
{
SoundPlayer::playError2();
|
ffa23885e
김태훈
tr 추가
|
868
|
ErrorPopupDlg *d = new ErrorPopupDlg(MainWindow::getInstance(), tr("문이 오래 열려있어 조리가 취소되었습니다"), tr("조리 중 문 열림 시간 모니터링 3단계"));
|
ea536cd1d
김태훈
적재 / 조리 중 문 열림 시간...
|
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
|
d->showFullScreen();
MainWindow::killChild();
}
}
}
else if (currentCookingMonitorLevel > 0)
{
currentCookingMonitorLevel = 0;
}
}
else if (step == Define::DoorClass)
{
if (Oven::getInstance()->door())
{
switch (currentLoadingMonitorLevel)
{
case 0:
loadingMonitorTime1.start();
currentLoadingMonitorLevel = 1;
break;
case 1:
if (loadingMonitorLevel >= 1 && loadingMonitorTime1.elapsed() > loadingMonitor1)
{
SoundPlayer::playError2();
|
ffa23885e
김태훈
tr 추가
|
894
|
ErrorPopupDlg *d = new ErrorPopupDlg(this, tr("문을 닫아주세요"), tr("적재 중 문 열림 시간 모니터링 1단계"));
|
ea536cd1d
김태훈
적재 / 조리 중 문 열림 시간...
|
895
896
897
898
899
900
901
902
903
904
|
d->showFullScreen();
loadingMonitorTime2.start();
currentLoadingMonitorLevel = 2;
}
break;
case 2:
if (loadingMonitorLevel >= 2 && loadingMonitorTime2.elapsed() > loadingMonitor2)
{
SoundPlayer::playError2();
|
ffa23885e
김태훈
tr 추가
|
905
|
ErrorPopupDlg *d = new ErrorPopupDlg(this, tr("문을 닫아주세요"), tr("적재 중 문 열림 시간 모니터링 2단계"));
|
ea536cd1d
김태훈
적재 / 조리 중 문 열림 시간...
|
906
907
908
909
910
911
912
913
914
915
|
d->showFullScreen();
loadingMonitorTime3.start();
currentLoadingMonitorLevel = 3;
}
break;
case 3:
if (loadingMonitorLevel >= 3 && loadingMonitorTime3.elapsed() > loadingMonitor3)
{
SoundPlayer::playError2();
|
ffa23885e
김태훈
tr 추가
|
916
|
ErrorPopupDlg *d = new ErrorPopupDlg(this, tr("문을 닫아주세요"), tr("적재 중 문 열림 시간 모니터링 3단계"));
|
ea536cd1d
김태훈
적재 / 조리 중 문 열림 시간...
|
917
918
919
920
921
922
923
924
925
926
927
928
|
d->showFullScreen();
MainWindow::killChild();
}
}
}
else if (currentLoadingMonitorLevel > 0)
{
currentLoadingMonitorLevel = 0;
}
}
}
|
7d0288172
김태훈
기능 추가 구현
|
929
930
|
void AutoCookWindow::on_selectCookButton_clicked()
{
|
11c611782
김태훈
자동 요리 세부 사항 구현
|
931
932
933
934
935
936
|
if (!autocook.done())
return;
AutoCookSelectionPopup *p = new AutoCookSelectionPopup(this, cook.type);
p->showFullScreen();
p->raise();
|
7d0288172
김태훈
기능 추가 구현
|
937
|
|
11c611782
김태훈
자동 요리 세부 사항 구현
|
938
|
connect(p, SIGNAL(selected(Cook)), SLOT(changeCook(Cook)));
|
7d0288172
김태훈
기능 추가 구현
|
939
940
941
942
943
944
945
946
947
948
949
|
}
void AutoCookWindow::on_homeButton_clicked()
{
Oven::getInstance()->stop();
MainWindow::killChild();
}
void AutoCookWindow::on_configCookButton_clicked()
{
|
68c06e96f
김태훈
자동 요리 세부 사항 구현
|
950
|
setFocus();
|
7d0288172
김태훈
기능 추가 구현
|
951
|
|
68c06e96f
김태훈
자동 요리 세부 사항 구현
|
952
953
954
955
|
AutoCookCheckConfigWindow *w = new AutoCookCheckConfigWindow(this, cook);
w->setWindowModality(Qt::WindowModal);
w->showFullScreen();
w->raise();
|
7d0288172
김태훈
기능 추가 구현
|
956
|
}
|
99b8066f4
김태훈
V0.1.1
|
957
958
959
960
961
962
963
|
void AutoCookWindow::on_humidityGaugeButton_pressed()
{
showCurrentHumidityTimer.start();
}
void AutoCookWindow::on_humidityGaugeButton_released()
{
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
964
965
|
if (showCurrentHumidityTimer.isActive())
showCurrentHumidityTimer.stop();
|
99b8066f4
김태훈
V0.1.1
|
966
|
|
618320ecd
김태훈
불필요한 UI 갱신 제거
|
967
968
969
970
971
|
if (showingCurrentHumidity)
{
showingCurrentHumidity = false;
updateView();
}
|
99b8066f4
김태훈
V0.1.1
|
972
973
974
975
976
977
978
979
980
|
}
void AutoCookWindow::on_heatGaugeButton_pressed()
{
showCurrentTempTimer.start();
}
void AutoCookWindow::on_heatGaugeButton_released()
{
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
981
982
|
if (showCurrentTempTimer.isActive())
showCurrentTempTimer.stop();
|
99b8066f4
김태훈
V0.1.1
|
983
|
|
618320ecd
김태훈
불필요한 UI 갱신 제거
|
984
985
986
987
988
|
if (showingCurrentTemp)
{
showingCurrentTemp = false;
updateView();
}
|
99b8066f4
김태훈
V0.1.1
|
989
|
}
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
990
991
|
void AutoCookWindow::on_showPrevStepButton_clicked()
{
|
b13e23ee4
김태훈
자동 요리 수정
|
992
|
returnToCurrentStepTimer.start();
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
993
994
995
996
997
|
if (selectedStepIndex > 0)
{
selectedStepIndex--;
updateView();
}
|
99b8066f4
김태훈
V0.1.1
|
998
|
}
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
999
|
void AutoCookWindow::on_showNextStepButton_clicked()
|
99b8066f4
김태훈
V0.1.1
|
1000
|
{
|
b13e23ee4
김태훈
자동 요리 수정
|
1001
|
returnToCurrentStepTimer.start();
|
a366f320c
김태훈
자동 요리 후속 공정 동작 개선
|
1002
|
if (selectedStepIndex + 1 < autocook.cook.steps.size())
|
6a81d38e4
김태훈
자동 요리 관련 로직 전면 재작성
|
1003
1004
1005
1006
|
{
selectedStepIndex++;
updateView();
}
|
99b8066f4
김태훈
V0.1.1
|
1007
|
}
|
f588aa273
김태훈
부가 기능 로직 추가
|
1008
|
|
e00c6a2a9
김태훈
기능 추가 구현
|
1009
1010
1011
|
void AutoCookWindow::on_backButton_clicked()
{
Oven::getInstance()->stop();
|
b2ddac079
김태훈
버그 수정
|
1012
|
emit back();
|
e00c6a2a9
김태훈
기능 추가 구현
|
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
|
close();
}
void AutoCookWindow::on_configButton_clicked()
{
if (autocook.done())
{
ConfigWindow *w = new ConfigWindow(MainWindow::getInstance());
w->setWindowModality(Qt::WindowModal);
w->showFullScreen();
w->raise();
MainWindow::jump(w);
}
else
{
ConfirmPopup *p = new ConfirmPopup(this, tr("요리가 중단되고 환경 설정 모드로 들어갑니다. 진행할까요?"));
p->showFullScreen();
connect(p, SIGNAL(accepted()), SLOT(jumpConfig()));
}
}
|
f588aa273
김태훈
부가 기능 로직 추가
|
1035
1036
|
void AutoCookWindow::on_favoritesButton_clicked()
{
|
e53f597d1
김태훈
고객사 요청 반영
|
1037
1038
|
// if (!autocook.done())
// return;
|
f588aa273
김태훈
부가 기능 로직 추가
|
1039
|
|
e53f597d1
김태훈
고객사 요청 반영
|
1040
1041
|
// ConfirmPopup *p = new ConfirmPopup(this, tr("즐겨찾기 항목에 추가하시겠습니까?"));
// p->showFullScreen();
|
f588aa273
김태훈
부가 기능 로직 추가
|
1042
|
|
e53f597d1
김태훈
고객사 요청 반영
|
1043
|
// connect(p, SIGNAL(accepted()), SLOT(addFavorite()));
|
f588aa273
김태훈
부가 기능 로직 추가
|
1044
|
}
|
e00c6a2a9
김태훈
기능 추가 구현
|
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
|
void AutoCookWindow::on_washButton_clicked()
{
if (autocook.done())
{
WashWindow *w = new WashWindow(MainWindow::getInstance());
w->setWindowModality(Qt::WindowModal);
w->showFullScreen();
w->raise();
MainWindow::jump(w);
}
else
{
ConfirmPopup *p = new ConfirmPopup(this, tr("요리가 중단되고 자동 세척 모드로 들어갑니다. 진행할까요?"));
p->showFullScreen();
connect(p, SIGNAL(accepted()), SLOT(jumpWash()));
}
}
void AutoCookWindow::on_helpButton_clicked()
{
}
|