8c2952457
김태훈
응용 프로그램 추가
|
1
2
3
4
5
6
|
#include "manualcookwindow.h"
#include "ui_manualcookwindow.h"
#include <QSignalMapper>
#include <QTimer>
#include <QtDebug>
|
05f2a7552
김태훈
image 관리 구조 변경
|
7
|
#include "preheatpopup.h"
|
cfc2fcc35
김태훈
쿨다운 팝업 추가
|
8
|
#include "cooldownpopup.h"
|
05f2a7552
김태훈
image 관리 구조 변경
|
9
|
|
8c2952457
김태훈
응용 프로그램 추가
|
10
11
12
13
14
|
ManualCookWindow::ManualCookWindow(QWidget *parent, Oven *oven, UdpHandler *udp) :
QMainWindow(parent),
ui(new Ui::ManualCookWindow), oven(oven), udp(udp)
{
ui->setupUi(this);
|
6f96c947a
김태훈
GUI 0.1.4
|
15
|
ui->clockContainer->setParent(ui->upperStack);
|
cfc2fcc35
김태훈
쿨다운 팝업 추가
|
16
|
ui->closeDoorWidget->setParent(ui->upperStack);
|
05f2a7552
김태훈
image 관리 구조 변경
|
17
18
|
ui->outerStack->setParent(ui->bodyStack);
ui->innerStack->setParent(ui->bodyStack);
|
6f96c947a
김태훈
GUI 0.1.4
|
19
|
setAttribute(Qt::WA_DeleteOnClose);
|
8c2952457
김태훈
응용 프로그램 추가
|
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
connect(oven, SIGNAL(changed(Oven*)), this, SLOT(onOvenUpdated(Oven*)));
connect(ui->steamButton, SIGNAL(clicked()), this, SIGNAL(modeButtonClicked()));
connect(ui->combiButton, SIGNAL(clicked()), this, SIGNAL(modeButtonClicked()));
connect(ui->dryheatButton, SIGNAL(clicked()), this, SIGNAL(modeButtonClicked()));
QSignalMapper *sm = new QSignalMapper(this);
sm->setMapping(ui->steamButton, (int) Oven::SteamMode);
sm->setMapping(ui->combiButton, (int) Oven::CombinationMode);
sm->setMapping(ui->dryheatButton, (int) Oven::HeatMode);
connect(ui->steamButton, SIGNAL(clicked()), sm, SLOT(map()));
connect(ui->combiButton, SIGNAL(clicked()), sm, SLOT(map()));
connect(ui->dryheatButton, SIGNAL(clicked()), sm, SLOT(map()));
connect(sm, SIGNAL(mapped(int)), this, SLOT(onModeButtonClicked(int)));
connect(ui->humiditySlider, SIGNAL(valueChanged(int)), oven, SLOT(setHumidity(int)));
connect(ui->tempSlider, SIGNAL(valueChanged(int)), oven, SLOT(setTemp(int)));
connect(ui->timeSlider, SIGNAL(valueChanged(int)), oven, SLOT(setTime(int)));
connect(ui->interTempSlider, SIGNAL(valueChanged(int)), oven, SLOT(setInterTemp(int)));
connect(ui->humiditySlider, SIGNAL(sliderMoved(int)), this, SLOT(updateLabels()));
connect(ui->tempSlider, SIGNAL(sliderMoved(int)), this, SLOT(updateLabels()));
connect(ui->timeSlider, SIGNAL(sliderMoved(int)), this, SLOT(updateLabels()));
connect(ui->interTempSlider, SIGNAL(sliderMoved(int)), this, SLOT(updateLabels()));
connect(ui->innerInterTempSlider, SIGNAL(sliderMoved(int)), this, SLOT(updateLabels()));
|
ae1095876
김태훈
중심 온도 설정 창에서 중심 온...
|
45
|
connect(ui->innerInterTempSlider, SIGNAL(valueChanged(int)), this, SLOT(updateLabels()));
|
8c2952457
김태훈
응용 프로그램 추가
|
46
47
48
49
50
|
QTimer *cookingTimerCheckTimer = new QTimer(this);
cookingTimerCheckTimer->setInterval(100);
connect(cookingTimerCheckTimer, SIGNAL(timeout()), this, SLOT(checkTime()));
connect(this, SIGNAL(modeButtonClicked()), cookingTimerCheckTimer, SLOT(stop()));
|
4fc65fb81
김태훈
GUI V0.1.6(이 버전으로...
|
51
|
cookingStartTimer = new QTimer(this);
|
8c2952457
김태훈
응용 프로그램 추가
|
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
cookingStartTimer->setSingleShot(true);
cookingStartTimer->setInterval(3000);
connect(ui->timeSlider, SIGNAL(valueChanged(int)), cookingStartTimer, SLOT(start()));
connect(ui->timeSlider, SIGNAL(valueChanged(int)), this, SLOT(updateLabels()));
connect(this, SIGNAL(modeButtonClicked()), cookingStartTimer, SLOT(stop()));
connect(cookingStartTimer, SIGNAL(timeout()), oven, SLOT(startCooking()));
connect(cookingStartTimer, SIGNAL(timeout()), cookingTimerCheckTimer, SLOT(start()));
QTimer *showCurHumTimer = new QTimer(this);
QTimer *showCurTempTimer = new QTimer(this);
showCurHumTimer->setInterval(2000);
showCurTempTimer->setInterval(2000);
connect(ui->humidityButton, SIGNAL(pressed()), showCurHumTimer, SLOT(start()));
connect(ui->humidityButton, SIGNAL(released()), showCurHumTimer, SLOT(stop()));
connect(showCurHumTimer, SIGNAL(timeout()), this, SLOT(showCurrentHumidity()));
connect(ui->humidityButton, SIGNAL(released()), this, SLOT(hideCurrentHumidity()));
connect(ui->tempButton, SIGNAL(pressed()), showCurTempTimer, SLOT(start()));
connect(ui->tempButton, SIGNAL(released()), showCurTempTimer, SLOT(stop()));
connect(showCurTempTimer, SIGNAL(timeout()), this, SLOT(showCurrentTemp()));
connect(ui->tempButton, SIGNAL(released()), this, SLOT(hideCurrentTemp()));
QSignalMapper *smStack = new QSignalMapper(this);
smStack->setMapping(ui->goFrontStackButton, 0);
smStack->setMapping(ui->goBackStackButton, 1);
connect(ui->goFrontStackButton, SIGNAL(clicked()), smStack, SLOT(map()));
connect(ui->goBackStackButton, SIGNAL(clicked()), smStack, SLOT(map()));
connect(smStack, SIGNAL(mapped(int)), ui->buttonStack, SLOT(setCurrentIndex(int)));
connect(ui->backButton, SIGNAL(clicked()), this, SLOT(hide()));
connect(ui->backButton, SIGNAL(clicked()), oven, SLOT(stop()));
connect(ui->backButton, SIGNAL(clicked()), cookingTimerCheckTimer, SLOT(stop()));
connect(ui->backButton, SIGNAL(clicked()), cookingStartTimer, SLOT(stop()));
connect(ui->backButton, SIGNAL(clicked()), showCurHumTimer, SLOT(stop()));
connect(ui->backButton, SIGNAL(clicked()), showCurTempTimer, SLOT(stop()));
connect(this, SIGNAL(cookStopRequested()), cookingStartTimer, SLOT(stop()));
ui->bodyStack->setCurrentIndex(0);
|
cfc2fcc35
김태훈
쿨다운 팝업 추가
|
92
93
94
95
96
97
98
99
100
101
102
|
ui->openDoorAnimation->load(":/images/animation/door_big_09.png");
ui->openDoorAnimation->load(":/images/animation/door_big_08.png");
ui->openDoorAnimation->load(":/images/animation/door_big_07.png");
ui->openDoorAnimation->load(":/images/animation/door_big_06.png");
ui->openDoorAnimation->load(":/images/animation/door_big_05.png");
ui->openDoorAnimation->load(":/images/animation/door_big_04.png");
ui->openDoorAnimation->load(":/images/animation/door_big_03.png");
ui->openDoorAnimation->load(":/images/animation/door_big_02.png");
ui->openDoorAnimation->load(":/images/animation/door_big_01.png");
ui->openDoorAnimation->start(300);
|
8c2952457
김태훈
응용 프로그램 추가
|
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
|
}
ManualCookWindow::~ManualCookWindow()
{
delete ui;
}
void ManualCookWindow::checkTime()
{
if (oven->cooking() && !ui->timeSlider->isSliderDown())
{
bool old = ui->timeSlider->blockSignals(true);
ui->timeSlider->setSliderPosition(oven->time());
ui->timeSlider->blockSignals(old);
updateLabels();
}
}
void ManualCookWindow::showCurrentHumidity()
{
showCurrentHumidity_ = true;
updateLabels();
}
void ManualCookWindow::hideCurrentHumidity()
{
showCurrentHumidity_ = false;
updateLabels();
}
void ManualCookWindow::showCurrentTemp()
{
showCurrentTemp_ = true;
updateLabels();
}
void ManualCookWindow::hideCurrentTemp()
{
showCurrentTemp_ = false;
updateLabels();
}
void ManualCookWindow::updateLabels()
{
QString buf;
int humidity;
if (showCurrentHumidity_)
humidity = oven->currentHumidity();
else if (ui->humiditySlider->isSliderDown())
humidity = ui->humiditySlider->sliderPosition();
else
humidity = oven->humidity();
ui->humidityLabel->setText(buf.sprintf("%d%%", humidity));
int temp;
if (showCurrentTemp_)
temp = oven->currentTemp();
else if (ui->tempSlider->isSliderDown())
temp = ui->tempSlider->sliderPosition();
else
temp = oven->temp();
|
6f96c947a
김태훈
GUI 0.1.4
|
167
|
ui->tempLabel->setText(buf.sprintf("%d<span style=\"font-size:11pt;\">℃</span>", temp));
|
8c2952457
김태훈
응용 프로그램 추가
|
168
169
170
171
172
173
|
int time;
if (ui->timeSlider->isSliderDown())
time = ui->timeSlider->sliderPosition();
else
time = oven->time();
|
c598b01b2
김태훈
GUI 업데이트
|
174
|
if (time >= 3600)
|
6f96c947a
김태훈
GUI 0.1.4
|
175
|
ui->timeLabel->setText(buf.sprintf("%d<span style=\"font-size:11pt;\">시간</span> %02d<span style=\"font-size:11pt;\">분</span>", time / 3600, (time % 3600) / 60));
|
c598b01b2
김태훈
GUI 업데이트
|
176
|
else if (time >= 60)
|
6f96c947a
김태훈
GUI 0.1.4
|
177
|
ui->timeLabel->setText(buf.sprintf("%d<span style=\"font-size:11pt;\">분</span> %02d<span style=\"font-size:11pt;\">초</span>", time / 60, time % 60));
|
c598b01b2
김태훈
GUI 업데이트
|
178
|
else
|
6f96c947a
김태훈
GUI 0.1.4
|
179
|
ui->timeLabel->setText(buf.sprintf("%d<span style=\"font-size:11pt;\">초</span>", time));
|
8c2952457
김태훈
응용 프로그램 추가
|
180
181
182
183
184
185
186
187
|
if (oven->interTempEnabled())
{
int interTemp;
if (ui->interTempSlider->isSliderDown())
interTemp = ui->interTempSlider->sliderPosition();
else
interTemp = oven->interTemp();
|
6f96c947a
김태훈
GUI 0.1.4
|
188
|
ui->interTempLabel->setText(buf.sprintf("%d<span style=\"font-size:11pt;\">℃</span>", interTemp));
|
8c2952457
김태훈
응용 프로그램 추가
|
189
190
|
}
else
|
6f96c947a
김태훈
GUI 0.1.4
|
191
|
ui->interTempLabel->setText("<span style=\"font-size:11pt;\">℃</span>");
|
8c2952457
김태훈
응용 프로그램 추가
|
192
|
|
ae1095876
김태훈
중심 온도 설정 창에서 중심 온...
|
193
194
195
196
197
|
int innerInterTemp = ui->innerInterTempSlider->sliderPosition();
// if (ui->innerInterTempSlider->isSliderDown())
// innerInterTemp = ui->innerInterTempSlider->sliderPosition();
// else
// innerInterTemp = oven->interTemp();
|
8c2952457
김태훈
응용 프로그램 추가
|
198
|
|
6f96c947a
김태훈
GUI 0.1.4
|
199
|
ui->innerInterTempLabel->setText(buf.sprintf("%d<span style=\"font-size:11pt;\">℃</span>", innerInterTemp));
|
8c2952457
김태훈
응용 프로그램 추가
|
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
|
ui->curHumidityLabel->setText(buf.sprintf("%d", oven->currentHumidity()));
ui->targetHumidityLabel->setText(buf.sprintf("%d", oven->humidity()));
ui->curTempLabel->setText(buf.sprintf("%d", oven->currentTemp()));
ui->curInterTempLabel->setText(buf.sprintf("%d", oven->currentInterTemp()));
}
void ManualCookWindow::onModeButtonClicked(int mode)
{
oven->stop();
oven->setDefault((Oven::Mode) mode);
ui->bodyStack->setCurrentIndex(0);
}
void ManualCookWindow::onOvenUpdated(Oven *oven)
{
|
8c2952457
김태훈
응용 프로그램 추가
|
216
217
218
219
|
switch (oven->mode())
{
case Oven::HeatMode:
ui->dryheatButton->setChecked(true);
|
8c2952457
김태훈
응용 프로그램 추가
|
220
221
222
|
break;
case Oven::SteamMode:
ui->steamButton->setChecked(true);
|
8c2952457
김태훈
응용 프로그램 추가
|
223
224
225
|
break;
case Oven::CombinationMode:
ui->combiButton->setChecked(true);
|
8c2952457
김태훈
응용 프로그램 추가
|
226
227
228
229
230
231
232
233
|
break;
default:
break;
}
bool old;
old = ui->humiditySlider->blockSignals(true);
ui->humiditySlider->setValue(oven->humidity());
|
99b8066f4
김태훈
V0.1.1
|
234
|
ui->humiditySlider->setEnabled(oven->mode() == Oven::CombinationMode);
|
8c2952457
김태훈
응용 프로그램 추가
|
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
|
ui->humiditySlider->blockSignals(old);
old = ui->tempSlider->blockSignals(true);
ui->tempSlider->setRange(oven->minTemp(), oven->maxTemp());
ui->tempSlider->setValue(oven->temp());
ui->tempSlider->blockSignals(old);
if (!ui->timeSlider->isSliderDown())
{
old = ui->timeSlider->blockSignals(true);
ui->timeSlider->setValue(oven->time());
ui->timeSlider->blockSignals(old);
}
// ui->interTempButton->setChecked(oven->interTempEnabled());
if (oven->interTempEnabled())
ui->interTempButton->setStyleSheet("\
|
6f96c947a
김태훈
GUI 0.1.4
|
252
|
QPushButton {\
|
05f2a7552
김태훈
image 관리 구조 변경
|
253
|
image: url(:/images/slider_icon/core_temp_enabled.png);\
|
8c2952457
김태훈
응용 프로그램 추가
|
254
|
}\
|
6f96c947a
김태훈
GUI 0.1.4
|
255
|
QPushButton:pressed {\
|
05f2a7552
김태훈
image 관리 구조 변경
|
256
|
image: url(:/images/slider_icon/core_temp_ov.png);\
|
8c2952457
김태훈
응용 프로그램 추가
|
257
258
259
|
}");
else
ui->interTempButton->setStyleSheet("\
|
6f96c947a
김태훈
GUI 0.1.4
|
260
|
QPushButton {\
|
05f2a7552
김태훈
image 관리 구조 변경
|
261
|
image: url(:/images/slider_icon/core_temp.png);\
|
8c2952457
김태훈
응용 프로그램 추가
|
262
|
}\
|
6f96c947a
김태훈
GUI 0.1.4
|
263
|
QPushButton:pressed {\
|
05f2a7552
김태훈
image 관리 구조 변경
|
264
|
image: url(:/images/slider_icon/core_temp_ov.png);\
|
8c2952457
김태훈
응용 프로그램 추가
|
265
266
267
268
269
270
271
272
273
274
275
276
|
}");
old = ui->interTempSlider->blockSignals(true);
ui->interTempSlider->setEnabled(oven->interTempEnabled());
ui->interTempSlider->setRange(oven->minInterTemp(), oven->maxInterTemp());
ui->interTempSlider->setValue(oven->interTemp());
ui->interTempSlider->blockSignals(old);
old = ui->innerInterTempSlider->blockSignals(true);
ui->innerInterTempSlider->setRange(oven->minInterTemp(), oven->maxInterTemp());
ui->innerInterTempSlider->setValue(oven->interTemp());
ui->innerInterTempSlider->blockSignals(old);
|
c598b01b2
김태훈
GUI 업데이트
|
277
278
|
if (oven->cooking())
ui->runStopButton->setStyleSheet(
|
05f2a7552
김태훈
image 관리 구조 변경
|
279
|
"border-image: url(:/images/manual_button/stop.png)");
|
c598b01b2
김태훈
GUI 업데이트
|
280
281
|
else
ui->runStopButton->setStyleSheet(
|
05f2a7552
김태훈
image 관리 구조 변경
|
282
|
"border-image: url(:/images/manual_button/run.png)");
|
c598b01b2
김태훈
GUI 업데이트
|
283
284
285
|
if (oven->damper())
ui->damperButton->setStyleSheet(
|
05f2a7552
김태훈
image 관리 구조 변경
|
286
|
"background-image: url(:/images/manual_button/damper_open.png)");
|
c598b01b2
김태훈
GUI 업데이트
|
287
288
|
else
ui->damperButton->setStyleSheet(
|
05f2a7552
김태훈
image 관리 구조 변경
|
289
|
"background-image: url(:/images/manual_button/damper_close.png)");
|
c598b01b2
김태훈
GUI 업데이트
|
290
291
292
|
if (oven->humidification())
ui->humidificationButton->setStyleSheet(
|
05f2a7552
김태훈
image 관리 구조 변경
|
293
|
"background-image: url(:/images/manual_button/side_nozzle_open.png)");
|
c598b01b2
김태훈
GUI 업데이트
|
294
295
|
else
ui->humidificationButton->setStyleSheet(
|
05f2a7552
김태훈
image 관리 구조 변경
|
296
|
"background-image: url(:/images/manual_button/side_nozzle_close.png)");
|
8c2952457
김태훈
응용 프로그램 추가
|
297
298
299
300
301
|
switch (oven->fan())
{
case 1:
ui->fanButton->setStyleSheet(
|
05f2a7552
김태훈
image 관리 구조 변경
|
302
|
"background-image: url(:/images/manual_button/fan_1.png)");
|
8c2952457
김태훈
응용 프로그램 추가
|
303
304
305
|
break;
case 2:
ui->fanButton->setStyleSheet(
|
05f2a7552
김태훈
image 관리 구조 변경
|
306
|
"background-image: url(:/images/manual_button/fan_2.png)");
|
8c2952457
김태훈
응용 프로그램 추가
|
307
308
309
|
break;
case 3:
ui->fanButton->setStyleSheet(
|
05f2a7552
김태훈
image 관리 구조 변경
|
310
|
"background-image: url(:/images/manual_button/fan_3.png)");
|
8c2952457
김태훈
응용 프로그램 추가
|
311
312
313
|
break;
case 4:
ui->fanButton->setStyleSheet(
|
05f2a7552
김태훈
image 관리 구조 변경
|
314
|
"background-image: url(:/images/manual_button/fan_4.png)");
|
8c2952457
김태훈
응용 프로그램 추가
|
315
316
317
|
break;
case 5:
ui->fanButton->setStyleSheet(
|
05f2a7552
김태훈
image 관리 구조 변경
|
318
|
"background-image: url(:/images/manual_button/fan_5.png)");
|
8c2952457
김태훈
응용 프로그램 추가
|
319
320
321
|
break;
default:
ui->fanButton->setStyleSheet(
|
05f2a7552
김태훈
image 관리 구조 변경
|
322
|
"background-image: url(:/images/manual_button/fan_1.png)");
|
8c2952457
김태훈
응용 프로그램 추가
|
323
324
|
break;
}
|
cfc2fcc35
김태훈
쿨다운 팝업 추가
|
325
326
327
328
|
if (oven->paused() && !oven->cooldown() && oven->door())
ui->upperStack->setCurrentIndex(1);
else
ui->upperStack->setCurrentIndex(0);
|
8c2952457
김태훈
응용 프로그램 추가
|
329
330
|
updateLabels();
}
|
c598b01b2
김태훈
GUI 업데이트
|
331
|
void ManualCookWindow::on_runStopButton_clicked()
|
8c2952457
김태훈
응용 프로그램 추가
|
332
|
{
|
c598b01b2
김태훈
GUI 업데이트
|
333
|
if (oven->cooking())
|
8c2952457
김태훈
응용 프로그램 추가
|
334
335
336
337
|
{
oven->stopCooking();
emit cookStopRequested();
}
|
c598b01b2
김태훈
GUI 업데이트
|
338
339
|
else
oven->startCooking();
|
8c2952457
김태훈
응용 프로그램 추가
|
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
|
}
void ManualCookWindow::on_fanButton_clicked()
{
int fan = oven->fan() + 1;
if (fan > oven->maxFan())
fan = oven->minFan();
oven->setFan(fan);
}
void ManualCookWindow::on_goOuterButton_clicked()
{
ui->bodyStack->setCurrentIndex(0);
}
void ManualCookWindow::on_applyButton_clicked()
{
ui->bodyStack->setCurrentIndex(0);
oven->setInterTemp(ui->innerInterTempSlider->value());
|
8c2952457
김태훈
응용 프로그램 추가
|
361
|
oven->setInterTempEnabled(true);
|
8c2952457
김태훈
응용 프로그램 추가
|
362
363
364
365
366
367
368
369
370
371
372
373
|
}
void ManualCookWindow::on_interTempButton_clicked()
{
if (oven->interTempEnabled())
oven->setInterTempEnabled(false);
else
ui->bodyStack->setCurrentIndex(1);
}
void ManualCookWindow::on_preheatButton_clicked()
{
|
4fc65fb81
김태훈
GUI V0.1.6(이 버전으로...
|
374
|
cookingStartTimer->stop();
|
05f2a7552
김태훈
image 관리 구조 변경
|
375
376
377
|
PreheatPopup *p = new PreheatPopup(this, oven);
p->setWindowModality(Qt::WindowModal);
p->showFullScreen();
|
8c2952457
김태훈
응용 프로그램 추가
|
378
379
380
381
|
}
void ManualCookWindow::on_damperButton_clicked()
{
|
c598b01b2
김태훈
GUI 업데이트
|
382
383
|
if (oven->damper())
oven->closeDamper();
|
8c2952457
김태훈
응용 프로그램 추가
|
384
|
else
|
c598b01b2
김태훈
GUI 업데이트
|
385
|
oven->openDamper();
|
8c2952457
김태훈
응용 프로그램 추가
|
386
387
388
389
|
}
void ManualCookWindow::on_humidificationButton_clicked()
{
|
c598b01b2
김태훈
GUI 업데이트
|
390
391
|
if (oven->humidification())
oven->stopHumidification();
|
8c2952457
김태훈
응용 프로그램 추가
|
392
|
else
|
c598b01b2
김태훈
GUI 업데이트
|
393
|
oven->startHumidification();
|
8c2952457
김태훈
응용 프로그램 추가
|
394
395
396
397
|
}
void ManualCookWindow::on_repeatButton_clicked()
{
|
8c2952457
김태훈
응용 프로그램 추가
|
398
|
|
8c2952457
김태훈
응용 프로그램 추가
|
399
400
401
402
|
}
void ManualCookWindow::on_cooldownButton_clicked()
{
|
cfc2fcc35
김태훈
쿨다운 팝업 추가
|
403
404
405
406
407
|
cookingStartTimer->stop();
CooldownPopup *p = new CooldownPopup(this, oven);
p->setWindowModality(Qt::WindowModal);
p->showFullScreen();
|
8c2952457
김태훈
응용 프로그램 추가
|
408
409
410
411
|
}
void ManualCookWindow::on_reserveButton_clicked()
{
|
8c2952457
김태훈
응용 프로그램 추가
|
412
|
|
8c2952457
김태훈
응용 프로그램 추가
|
413
414
415
416
|
}
void ManualCookWindow::on_favoritesButton_clicked()
{
|
8c2952457
김태훈
응용 프로그램 추가
|
417
|
|
8c2952457
김태훈
응용 프로그램 추가
|
418
|
}
|