Commit 9a89ea55c263935b147126433ff4bac99d7efd54

Authored by 김태훈
Committed by 고영탁
1 parent 703beed2b8
Exists in master and in 2 other branches fhd, fhd-demo

버그 수정 및 코드 정리

- 버튼 로직 정리
 - 요리 시간 바를 클릭하면 버튼 클릭으로 연결
 - 쓰임에 따라 변수 분리
- 요리를 시작하지 않아도 요리 시간 조절 중에 요리 시간이 흘러가는 문제 수정
app/gui/oven_control/multiautocook.cpp
@@ -206,6 +206,9 @@ void MultiAutoCook::append(int temperature, int humidity, int time) @@ -206,6 +206,9 @@ void MultiAutoCook::append(int temperature, int humidity, int time)
206 206
207 void MultiAutoCook::updateTime() 207 void MultiAutoCook::updateTime()
208 { 208 {
  209 + if (state != Running)
  210 + return;
  211 +
209 int e = elapsed.restart(); 212 int e = elapsed.restart();
210 213
211 while (steps.size() > 0) 214 while (steps.size() > 0)
app/gui/oven_control/multicookwindow.cpp
@@ -28,6 +28,8 @@ MultiCookWindow::MultiCookWindow(QWidget *parent) : @@ -28,6 +28,8 @@ MultiCookWindow::MultiCookWindow(QWidget *parent) :
28 ui->view->setContainer(container); 28 ui->view->setContainer(container);
29 ui->view->setTimeBar(ui->bar); 29 ui->view->setTimeBar(ui->bar);
30 30
  31 + connect(ui->view, SIGNAL(clicked(int)), SLOT(handleViewClick(int)));
  32 +
31 33
32 buttons.append(ui->selectButton_1); 34 buttons.append(ui->selectButton_1);
33 buttons.append(ui->selectButton_2); 35 buttons.append(ui->selectButton_2);
@@ -49,7 +51,8 @@ MultiCookWindow::MultiCookWindow(QWidget *parent) : @@ -49,7 +51,8 @@ MultiCookWindow::MultiCookWindow(QWidget *parent) :
49 51
50 mode = Define::InvalidMode; 52 mode = Define::InvalidMode;
51 53
52 - lastClickedButton = -1; 54 + lastClickedEmptyButton = -1;
  55 + lastClickedCookButton = -1;
53 lastClickedRecentCook = -1; 56 lastClickedRecentCook = -1;
54 trashClicked = false; 57 trashClicked = false;
55 58
@@ -193,19 +196,19 @@ void MultiCookWindow::updateView() @@ -193,19 +196,19 @@ void MultiCookWindow::updateView()
193 196
194 void MultiCookWindow::updateRecents() 197 void MultiCookWindow::updateRecents()
195 { 198 {
196 - if (favorites.size() > 0) 199 + if (recents.size() > 0)
197 { 200 {
198 - if (favorites.size() > 6) 201 + if (recents.size() > 6)
199 { 202 {
200 int currentPage = ui->pageIndicator->currentIndex(); 203 int currentPage = ui->pageIndicator->currentIndex();
201 int from = currentPage * 6; 204 int from = currentPage * 6;
202 - int to = qMin(6, favorites.size() - from) + from; 205 + int to = qMin(6, recents.size() - from) + from;
203 206
204 for (int i = from; i < to; i++) 207 for (int i = from; i < to; i++)
205 { 208 {
206 QPushButton *b = recentButtons.at(i - from); 209 QPushButton *b = recentButtons.at(i - from);
207 b->show(); 210 b->show();
208 - b->setText(favorites.at(i)->name()); 211 + b->setText(recents.at(i)->name());
209 } 212 }
210 213
211 for (int i = to - from; i < 6; i++) 214 for (int i = to - from; i < 6; i++)
@@ -217,12 +220,12 @@ void MultiCookWindow::updateRecents() @@ -217,12 +220,12 @@ void MultiCookWindow::updateRecents()
217 } 220 }
218 else 221 else
219 { 222 {
220 - int max = qMin(6, favorites.size()); 223 + int max = qMin(6, recents.size());
221 for (int i = 0; i < max; i++) 224 for (int i = 0; i < max; i++)
222 { 225 {
223 QPushButton *b = recentButtons.at(i); 226 QPushButton *b = recentButtons.at(i);
224 b->show(); 227 b->show();
225 - b->setText(favorites.at(i)->name()); 228 + b->setText(recents.at(i)->name());
226 } 229 }
227 230
228 for (int i = max; i < 6; i++) 231 for (int i = max; i < 6; i++)
@@ -244,13 +247,22 @@ void MultiCookWindow::updateRecents() @@ -244,13 +247,22 @@ void MultiCookWindow::updateRecents()
244 } 247 }
245 } 248 }
246 249
  250 +void MultiCookWindow::handleViewClick(int slot)
  251 +{
  252 + buttons.at(slot)->setFocus();
  253 +
  254 + handleButtonClick(slot);
  255 +}
  256 +
247 void MultiCookWindow::handleButtonClick(int button) 257 void MultiCookWindow::handleButtonClick(int button)
248 { 258 {
249 - if (lastClickedButton != -1) 259 + if (lastClickedCookButton != -1)
250 { 260 {
251 - MultiCook *cook = container->at(lastClickedButton); 261 + MultiCook *cook = container->at(lastClickedCookButton);
252 if (cook) 262 if (cook)
253 cook->setTime(); 263 cook->setTime();
  264 +
  265 + lastClickedCookButton = -1;
254 } 266 }
255 267
256 MultiCook *cook = container->at(button); 268 MultiCook *cook = container->at(button);
@@ -263,22 +275,19 @@ void MultiCookWindow::handleButtonClick(int button) @@ -263,22 +275,19 @@ void MultiCookWindow::handleButtonClick(int button)
263 cook->deleteLater(); 275 cook->deleteLater();
264 } 276 }
265 else 277 else
266 - {  
267 - lastClickedButton = button;  
268 - } 278 + lastClickedCookButton = button;
269 } 279 }
270 else 280 else
271 { 281 {
272 if (lastClickedRecentCook != -1) 282 if (lastClickedRecentCook != -1)
273 { 283 {
274 - MultiCook *c = favorites.at(lastClickedRecentCook)->clone(this);  
275 - addCook(button, c); 284 + addCook(button, recents.at(lastClickedRecentCook)->clone(this));
276 285
277 lastClickedRecentCook = -1; 286 lastClickedRecentCook = -1;
278 } 287 }
279 else 288 else
280 { 289 {
281 - lastClickedButton = button; 290 + lastClickedEmptyButton = button;
282 291
283 ui->upperStack->setCurrentIndex(0); 292 ui->upperStack->setCurrentIndex(0);
284 setFocus(); 293 setFocus();
@@ -311,19 +320,19 @@ void MultiCookWindow::onCookSelected(MultiCook *cook) @@ -311,19 +320,19 @@ void MultiCookWindow::onCookSelected(MultiCook *cook)
311 { 320 {
312 cook->setParent(this); 321 cook->setParent(this);
313 322
314 - if (lastClickedButton != -1) 323 + if (lastClickedEmptyButton != -1)
315 { 324 {
316 - addCook(lastClickedButton, cook);  
317 - lastClickedButton = -1; 325 + addCook(lastClickedEmptyButton, cook);
  326 + lastClickedEmptyButton = -1;
318 } 327 }
319 } 328 }
320 329
321 void MultiCookWindow::showRecents() 330 void MultiCookWindow::showRecents()
322 { 331 {
323 - favorites = MultiCookRecorder::list(); 332 + recents = MultiCookRecorder::list();
324 333
325 ui->upperStack->setCurrentIndex(1); 334 ui->upperStack->setCurrentIndex(1);
326 - ui->pageIndicator->setMaximum(favorites.size() / 6); 335 + ui->pageIndicator->setMaximum(recents.size() / 6);
327 ui->pageIndicator->setCurrentIndex(0); 336 ui->pageIndicator->setCurrentIndex(0);
328 337
329 updateRecents(); 338 updateRecents();
@@ -443,12 +452,8 @@ void MultiCookWindow::onEncoderLeft() @@ -443,12 +452,8 @@ void MultiCookWindow::onEncoderLeft()
443 { 452 {
444 MultiCook *c = Q_NULLPTR; 453 MultiCook *c = Q_NULLPTR;
445 454
446 - if (lastClickedButton != -1)  
447 - {  
448 - QPushButton *b = buttons.at(lastClickedButton);  
449 - if (b == focusWidget())  
450 - c = container->at(lastClickedButton);  
451 - } 455 + if (lastClickedCookButton != -1)
  456 + c = container->at(lastClickedCookButton);
452 457
453 if (c) 458 if (c)
454 c->decreaseTime(); 459 c->decreaseTime();
@@ -460,12 +465,8 @@ void MultiCookWindow::onEncoderRight() @@ -460,12 +465,8 @@ void MultiCookWindow::onEncoderRight()
460 { 465 {
461 MultiCook *c = Q_NULLPTR; 466 MultiCook *c = Q_NULLPTR;
462 467
463 - if (lastClickedButton != -1)  
464 - {  
465 - QPushButton *b = buttons.at(lastClickedButton);  
466 - if (b == focusWidget())  
467 - c = container->at(lastClickedButton);  
468 - } 468 + if (lastClickedCookButton != -1)
  469 + c = container->at(lastClickedCookButton);
469 470
470 if (c) 471 if (c)
471 c->increaseTime(); 472 c->increaseTime();
@@ -477,13 +478,11 @@ void MultiCookWindow::onEncoderClicked(QWidget *clicked) @@ -477,13 +478,11 @@ void MultiCookWindow::onEncoderClicked(QWidget *clicked)
477 { 478 {
478 MultiCook *c = Q_NULLPTR; 479 MultiCook *c = Q_NULLPTR;
479 480
480 - if (lastClickedButton != -1) 481 + if (lastClickedCookButton != -1)
481 { 482 {
482 - QPushButton *b = buttons.at(lastClickedButton);  
483 - if (b == focusWidget())  
484 - c = container->at(lastClickedButton); 483 + c = container->at(lastClickedCookButton);
485 484
486 - lastClickedButton = -1; 485 + lastClickedCookButton = -1;
487 } 486 }
488 487
489 if (c) 488 if (c)
@@ -587,3 +586,8 @@ void MultiCookWindow::on_showNextPageButton_clicked() @@ -587,3 +586,8 @@ void MultiCookWindow::on_showNextPageButton_clicked()
587 ui->pageIndicator->setCurrentIndex(ui->pageIndicator->currentIndex() + 1); 586 ui->pageIndicator->setCurrentIndex(ui->pageIndicator->currentIndex() + 1);
588 updateView(); 587 updateView();
589 } 588 }
  589 +
  590 +void MultiCookWindow::on_homeButton_clicked()
  591 +{
  592 + close();
  593 +}
app/gui/oven_control/multicookwindow.h
@@ -26,6 +26,7 @@ protected: @@ -26,6 +26,7 @@ protected:
26 private slots: 26 private slots:
27 void updateView(); 27 void updateView();
28 void updateRecents(); 28 void updateRecents();
  29 + void handleViewClick(int slot);
29 void handleButtonClick(int button); 30 void handleButtonClick(int button);
30 void handleRecentButtonClick(int button); 31 void handleRecentButtonClick(int button);
31 void selectCook(); 32 void selectCook();
@@ -72,6 +73,8 @@ private slots: @@ -72,6 +73,8 @@ private slots:
72 void on_showPrevPageButton_clicked(); 73 void on_showPrevPageButton_clicked();
73 void on_showNextPageButton_clicked(); 74 void on_showNextPageButton_clicked();
74 75
  76 + void on_homeButton_clicked();
  77 +
75 private: 78 private:
76 Ui::MultiCookWindow *ui; 79 Ui::MultiCookWindow *ui;
77 80
@@ -80,10 +83,11 @@ private: @@ -80,10 +83,11 @@ private:
80 83
81 QList<QPushButton *> buttons; 84 QList<QPushButton *> buttons;
82 QList<QPushButton *> recentButtons; 85 QList<QPushButton *> recentButtons;
83 - QList<MultiCook *> favorites; 86 + QList<MultiCook *> recents;
84 QTimer updateViewTimer; 87 QTimer updateViewTimer;
85 88
86 - int lastClickedButton; 89 + int lastClickedEmptyButton;
  90 + int lastClickedCookButton;
87 int lastClickedRecentCook; 91 int lastClickedRecentCook;
88 bool trashClicked; 92 bool trashClicked;
89 93