Commit 097e5e14a0305b3201feafe4c1e372360c4637d9
1 parent
68c06e96f1
Exists in
master
and in
2 other branches
프로그래밍 모드 세부 사항 구현
- 선택한 요리가 끝나면 다음 요리 시작
Showing
13 changed files
with
429 additions
and
29 deletions
Show diff stats
app/gui/oven_control/autocookwindow.cpp
app/gui/oven_control/autocookwindow.h
app/gui/oven_control/cookhistory.cpp
... | ... | @@ -1294,7 +1294,7 @@ QPixmap CookHistory::render(CookRecord record) |
1294 | 1294 | return QPixmap(); |
1295 | 1295 | } |
1296 | 1296 | |
1297 | -void CookHistory::start(CookRecord record, QWidget *parent) | |
1297 | +QMainWindow *CookHistory::start(CookRecord record, QWidget *parent) | |
1298 | 1298 | { |
1299 | 1299 | if (record.type == CookRecord::Manual) |
1300 | 1300 | { |
... | ... | @@ -1302,6 +1302,8 @@ void CookHistory::start(CookRecord record, QWidget *parent) |
1302 | 1302 | w->setWindowModality(Qt::WindowModal); |
1303 | 1303 | w->showFullScreen(); |
1304 | 1304 | w->raise(); |
1305 | + | |
1306 | + return w; | |
1305 | 1307 | } |
1306 | 1308 | else if (record.type == CookRecord::Auto) |
1307 | 1309 | { |
... | ... | @@ -1317,7 +1319,11 @@ void CookHistory::start(CookRecord record, QWidget *parent) |
1317 | 1319 | w->setWindowModality(Qt::WindowModal); |
1318 | 1320 | w->showFullScreen(); |
1319 | 1321 | w->raise(); |
1322 | + | |
1323 | + return w; | |
1320 | 1324 | } |
1325 | + | |
1326 | + return NULL; | |
1321 | 1327 | } |
1322 | 1328 | |
1323 | 1329 | void CookHistory::removeMostCooked(CookRecord record) | ... | ... |
app/gui/oven_control/cookhistory.h
... | ... | @@ -3,6 +3,7 @@ |
3 | 3 | |
4 | 4 | |
5 | 5 | #include <QList> |
6 | +#include <QMainWindow> | |
6 | 7 | |
7 | 8 | #include "cook.h" |
8 | 9 | |
... | ... | @@ -62,7 +63,7 @@ QList<CookRecord> listRecents(); |
62 | 63 | QList<CookRecord> listFavorites(); |
63 | 64 | |
64 | 65 | QPixmap render(CookRecord record); |
65 | -void start(CookRecord record, QWidget *parent = 0); | |
66 | +QMainWindow *start(CookRecord record, QWidget *parent = 0); | |
66 | 67 | } |
67 | 68 | |
68 | 69 | #endif // COOKHISTORY_H | ... | ... |
app/gui/oven_control/cookpanelbutton.cpp
... | ... | @@ -5,13 +5,16 @@ |
5 | 5 | |
6 | 6 | #include "soundplayer.h" |
7 | 7 | #include "manualcooksettingwidget.h" |
8 | +#include "autocookwindow.h" | |
9 | +#include "manualcookwindow.h" | |
8 | 10 | |
9 | 11 | CookPanelButton::CookPanelButton(CookRecord record, QWidget *parent) : |
10 | 12 | QWidget(parent), |
11 | 13 | record(record), |
12 | 14 | ui(new Ui::CookPanelButton), |
13 | 15 | rendered(false), |
14 | - longPressEnabled(false) | |
16 | + longPressEnabled(false), | |
17 | + emitted(false) | |
15 | 18 | { |
16 | 19 | ui->setupUi(this); |
17 | 20 | |
... | ... | @@ -155,7 +158,24 @@ void CookPanelButton::on_pushButton_clicked() |
155 | 158 | if (longPressEnabled && emitted) |
156 | 159 | return; |
157 | 160 | |
158 | - CookHistory::start(record, parentWidget()); | |
161 | + QMainWindow *w = CookHistory::start(record, parentWidget()); | |
162 | + | |
163 | + if (next == NULL) | |
164 | + return; | |
165 | + | |
166 | + AutoCookWindow *a = qobject_cast<AutoCookWindow *>(w); | |
167 | + if (a) | |
168 | + { | |
169 | + connect(a, SIGNAL(done()), next, SLOT(on_pushButton_clicked())); | |
170 | + connect(a, SIGNAL(done()), a, SLOT(deleteLater())); | |
171 | + } | |
172 | + | |
173 | + ManualCookWindow *m = qobject_cast<ManualCookWindow *>(w); | |
174 | + if (m) | |
175 | + { | |
176 | + connect(m, SIGNAL(done()), next, SLOT(on_pushButton_clicked())); | |
177 | + connect(m, SIGNAL(done()), m, SLOT(deleteLater())); | |
178 | + } | |
159 | 179 | } |
160 | 180 | |
161 | 181 | void CookPanelButton::on_deleteButton_clicked() | ... | ... |
app/gui/oven_control/cookpanelbutton.h
app/gui/oven_control/manualcookwindow.cpp
... | ... | @@ -82,6 +82,7 @@ ManualCookWindow::ManualCookWindow(QWidget *parent, Define::Mode mode) : |
82 | 82 | lastViewDamper = false; |
83 | 83 | lastViewHumidification = false; |
84 | 84 | lastViewFan = -1; |
85 | + lastCheckedCooking = false; | |
85 | 86 | |
86 | 87 | Config *config = Config::getInstance(); |
87 | 88 | config_item item = config->getConfigValue(Define::config_cooking_door_monitoring); |
... | ... | @@ -421,31 +422,9 @@ void ManualCookWindow::updateView() |
421 | 422 | |
422 | 423 | bool damper = oven->damper(); |
423 | 424 | ui->damperButton->setChecked(damper); |
424 | -// if (damper != lastViewDamper) | |
425 | -// { | |
426 | -// lastViewDamper = damper; | |
427 | - | |
428 | -// if (damper) | |
429 | -// ui->damperButton->setStyleSheet( | |
430 | -// "background-image: url(:/images/manual_button/damper_open.png)"); | |
431 | -// else | |
432 | -// ui->damperButton->setStyleSheet( | |
433 | -// "background-image: url(:/images/manual_button/damper_close.png)"); | |
434 | -// } | |
435 | 425 | |
436 | 426 | bool humidification = oven->humidification(); |
437 | 427 | ui->humidificationButton->setChecked(humidification); |
438 | -// if (humidification != lastViewHumidification) | |
439 | -// { | |
440 | -// lastViewHumidification = humidification; | |
441 | - | |
442 | -// if (humidification) | |
443 | -// ui->humidificationButton->setStyleSheet( | |
444 | -// "background-image: url(:/images/manual_button/side_nozzle_open.png)"); | |
445 | -// else | |
446 | -// ui->humidificationButton->setStyleSheet( | |
447 | -// "background-image: url(:/images/manual_button/side_nozzle_close.png)"); | |
448 | -// } | |
449 | 428 | |
450 | 429 | int fan = oven->fan(); |
451 | 430 | if (fan != lastViewFan) |
... | ... | @@ -533,6 +512,16 @@ QPushButton:pressed { background-image: url(:/images/manual_button/repeat_ov.png |
533 | 512 | oven->setInterTempEnabled(repeatSetting.coreTempEnabled); |
534 | 513 | oven->setInterTemp(repeatSetting.coreTemp); |
535 | 514 | } |
515 | + else if (lastCheckedCooking && !oven->cooking()){ | |
516 | + if ((oven->interTempEnabled() && oven->currentInterTemp() >= oven->interTemp()) | |
517 | + || oven->time() == 0) | |
518 | + { | |
519 | + lastCheckedCooking = oven->cooking(); | |
520 | + emit done(); | |
521 | + } | |
522 | + } | |
523 | + | |
524 | + lastCheckedCooking = oven->cooking(); | |
536 | 525 | |
537 | 526 | if (oven->paused() && oven->door()) |
538 | 527 | { | ... | ... |
app/gui/oven_control/manualcookwindow.h
... | ... | @@ -27,6 +27,7 @@ protected: |
27 | 27 | |
28 | 28 | signals: |
29 | 29 | void cookStopRequested(); |
30 | + void done(); | |
30 | 31 | |
31 | 32 | public slots: |
32 | 33 | |
... | ... | @@ -111,6 +112,7 @@ private: |
111 | 112 | int temp; |
112 | 113 | int time; |
113 | 114 | int interTemp; |
115 | + bool lastCheckedCooking = false; | |
114 | 116 | |
115 | 117 | bool showCurrentHumidity_ = false; |
116 | 118 | bool showCurrentTemp_ = false; | ... | ... |
app/gui/oven_control/oven_control.pro
... | ... | @@ -121,7 +121,8 @@ SOURCES += main.cpp\ |
121 | 121 | slider.cpp \ |
122 | 122 | autocookselectionpopup.cpp \ |
123 | 123 | autocookcheckwindow.cpp \ |
124 | - autocookcheckconfigwindow.cpp | |
124 | + autocookcheckconfigwindow.cpp \ | |
125 | + programmedcookpanelbutton.cpp | |
125 | 126 | |
126 | 127 | HEADERS += mainwindow.h \ |
127 | 128 | cook.h \ |
... | ... | @@ -232,7 +233,8 @@ HEADERS += mainwindow.h \ |
232 | 233 | slider.h \ |
233 | 234 | autocookselectionpopup.h \ |
234 | 235 | autocookcheckwindow.h \ |
235 | - autocookcheckconfigwindow.h | |
236 | + autocookcheckconfigwindow.h \ | |
237 | + programmedcookpanelbutton.h | |
236 | 238 | |
237 | 239 | FORMS += mainwindow.ui \ |
238 | 240 | manualcookwindow.ui \ |
... | ... | @@ -309,7 +311,8 @@ FORMS += mainwindow.ui \ |
309 | 311 | config1digitsetandenablesetdlg.ui \ |
310 | 312 | autocookselectionpopup.ui \ |
311 | 313 | autocookcheckwindow.ui \ |
312 | - autocookcheckconfigwindow.ui | |
314 | + autocookcheckconfigwindow.ui \ | |
315 | + programmedcookpanelbutton.ui | |
313 | 316 | |
314 | 317 | RESOURCES += \ |
315 | 318 | resources.qrc | ... | ... |
app/gui/oven_control/programmedcookpanelbutton.cpp
... | ... | @@ -0,0 +1,175 @@ |
1 | +#include "programmedcookpanelbutton.h" | |
2 | +#include "ui_programmedcookpanelbutton.h" | |
3 | + | |
4 | +#include <QKeyEvent> | |
5 | + | |
6 | +#include "soundplayer.h" | |
7 | + | |
8 | +ProgrammedCookPanelButton::ProgrammedCookPanelButton(CookRecord record, QWidget *parent) : | |
9 | + QWidget(parent), | |
10 | + record(record), | |
11 | + ui(new Ui::ProgrammedCookPanelButton), | |
12 | + rendered(false), | |
13 | + longPressEnabled(false) | |
14 | +{ | |
15 | + ui->setupUi(this); | |
16 | + | |
17 | + setText(record.name); | |
18 | + | |
19 | + foreach (QPushButton *button, findChildren<QPushButton *>()) | |
20 | + connect(button, &QPushButton::pressed, SoundPlayer::playClick); | |
21 | + | |
22 | + longPressedTimer.setSingleShot(true); | |
23 | + longPressedTimer.setInterval(3000); | |
24 | + connect(&longPressedTimer, SIGNAL(timeout()), SLOT(emitLongPressed())); | |
25 | +} | |
26 | + | |
27 | +ProgrammedCookPanelButton::~ProgrammedCookPanelButton() | |
28 | +{ | |
29 | + delete ui; | |
30 | +} | |
31 | + | |
32 | +void ProgrammedCookPanelButton::setText(QString text) | |
33 | +{ | |
34 | + ui->pushButton->setText(text); | |
35 | +} | |
36 | + | |
37 | +void ProgrammedCookPanelButton::showInfo() | |
38 | +{ | |
39 | + if (!rendered) | |
40 | + { | |
41 | + QPixmap p = CookHistory::render(record); | |
42 | + | |
43 | + label = new QLabel(this); | |
44 | + label->setPixmap(p); | |
45 | + label->setGeometry((width() - p.width()) / 2, 65, p.width(), p.height()); | |
46 | + } | |
47 | + | |
48 | + label->show(); | |
49 | + setMinimumHeight(ui->pushButton->height() + label->height()); | |
50 | +} | |
51 | + | |
52 | +void ProgrammedCookPanelButton::hideInfo() | |
53 | +{ | |
54 | + label->hide(); | |
55 | + setMinimumHeight(ui->pushButton->height()); | |
56 | +} | |
57 | + | |
58 | +void ProgrammedCookPanelButton::setLongPressEnabled(bool enabled) | |
59 | +{ | |
60 | + longPressEnabled = enabled; | |
61 | +} | |
62 | + | |
63 | +QPushButton *ProgrammedCookPanelButton::bar() | |
64 | +{ | |
65 | + return ui->pushButton; | |
66 | +} | |
67 | + | |
68 | +QPushButton *ProgrammedCookPanelButton::infoButton() | |
69 | +{ | |
70 | + return ui->showInfoButton; | |
71 | +} | |
72 | + | |
73 | +QPushButton *ProgrammedCookPanelButton::deleteButton() | |
74 | +{ | |
75 | + return ui->deleteButton; | |
76 | +} | |
77 | + | |
78 | +void ProgrammedCookPanelButton::setEnabled(bool enabled) | |
79 | +{ | |
80 | + ui->pushButton->setEnabled(enabled); | |
81 | + ui->showInfoButton->setEnabled(enabled); | |
82 | + ui->deleteButton->setEnabled(enabled); | |
83 | +} | |
84 | + | |
85 | +void ProgrammedCookPanelButton::keyPressEvent(QKeyEvent *event) | |
86 | +{ | |
87 | + switch (event->key()) | |
88 | + { | |
89 | + case 0x01000030: // Turn left | |
90 | + event->ignore(); | |
91 | + break; | |
92 | + case 0x01000031: // Push | |
93 | + pushed = focusWidget(); | |
94 | + if (pushed == ui->pushButton) | |
95 | + on_pushButton_pressed(); | |
96 | + break; | |
97 | + case 0x01000032: // Turn right | |
98 | + event->ignore(); | |
99 | + break; | |
100 | + } | |
101 | +} | |
102 | + | |
103 | +void ProgrammedCookPanelButton::keyReleaseEvent(QKeyEvent *event) | |
104 | +{ | |
105 | + switch (event->key()) | |
106 | + { | |
107 | + case 0x01000030: // Turn left | |
108 | + event->ignore(); | |
109 | + break; | |
110 | + case 0x01000031: // Push | |
111 | + if (pushed == ui->pushButton) | |
112 | + on_pushButton_released(); | |
113 | + | |
114 | + if (focusWidget() == pushed) | |
115 | + onEncoderClicked(pushed); | |
116 | + | |
117 | + pushed = NULL; | |
118 | + break; | |
119 | + case 0x01000032: // Turn right | |
120 | + event->ignore(); | |
121 | + break; | |
122 | + } | |
123 | +} | |
124 | + | |
125 | +void ProgrammedCookPanelButton::onEncoderLeft() | |
126 | +{ | |
127 | + | |
128 | +} | |
129 | + | |
130 | +void ProgrammedCookPanelButton::onEncoderRight() | |
131 | +{ | |
132 | + | |
133 | +} | |
134 | + | |
135 | +void ProgrammedCookPanelButton::onEncoderClicked(QWidget *clicked) | |
136 | +{ | |
137 | + QPushButton *b = qobject_cast<QPushButton *>(clicked); | |
138 | + if (b) | |
139 | + b->click(); | |
140 | +} | |
141 | + | |
142 | +void ProgrammedCookPanelButton::emitLongPressed() | |
143 | +{ | |
144 | + emitted = true; | |
145 | + emit longPressed(this); | |
146 | +} | |
147 | + | |
148 | +void ProgrammedCookPanelButton::on_pushButton_pressed() | |
149 | +{ | |
150 | + longPressedTimer.start(); | |
151 | + emitted = false; | |
152 | +} | |
153 | + | |
154 | +void ProgrammedCookPanelButton::on_pushButton_released() | |
155 | +{ | |
156 | + longPressedTimer.stop(); | |
157 | +} | |
158 | + | |
159 | +void ProgrammedCookPanelButton::on_pushButton_clicked() | |
160 | +{ | |
161 | + if (longPressEnabled && emitted) | |
162 | + return; | |
163 | + | |
164 | + emit clicked(this); | |
165 | +} | |
166 | + | |
167 | +void ProgrammedCookPanelButton::on_showInfoButton_clicked() | |
168 | +{ | |
169 | + emit infoClicked(this); | |
170 | +} | |
171 | + | |
172 | +void ProgrammedCookPanelButton::on_deleteButton_clicked() | |
173 | +{ | |
174 | + emit deleteClicked(this); | |
175 | +} | ... | ... |
app/gui/oven_control/programmedcookpanelbutton.h
... | ... | @@ -0,0 +1,74 @@ |
1 | +#ifndef PROGRAMMEDCOOKPANELBUTTON_H | |
2 | +#define PROGRAMMEDCOOKPANELBUTTON_H | |
3 | + | |
4 | +#include <QWidget> | |
5 | +#include <QLabel> | |
6 | +#include <QButtonGroup> | |
7 | +#include <QTimer> | |
8 | +#include <QPushButton> | |
9 | + | |
10 | +#include "cookhistory.h" | |
11 | + | |
12 | +namespace Ui { | |
13 | +class ProgrammedCookPanelButton; | |
14 | +} | |
15 | + | |
16 | +class ProgrammedCookPanelButton : public QWidget | |
17 | +{ | |
18 | + Q_OBJECT | |
19 | + | |
20 | +public: | |
21 | + explicit ProgrammedCookPanelButton(CookRecord record, QWidget *parent = 0); | |
22 | + ~ProgrammedCookPanelButton(); | |
23 | + | |
24 | + void setText(QString text); | |
25 | + void showInfo(); | |
26 | + void hideInfo(); | |
27 | + | |
28 | + void setLongPressEnabled(bool enabled); | |
29 | + | |
30 | + QPushButton *bar(); | |
31 | + QPushButton *infoButton(); | |
32 | + QPushButton *deleteButton(); | |
33 | + | |
34 | + CookRecord record; | |
35 | + | |
36 | +public slots: | |
37 | + void setEnabled(bool enabled = true); | |
38 | + | |
39 | +protected: | |
40 | + void keyPressEvent(QKeyEvent *event); | |
41 | + void keyReleaseEvent(QKeyEvent *event); | |
42 | + | |
43 | +private: | |
44 | + Ui::ProgrammedCookPanelButton *ui; | |
45 | + | |
46 | + QTimer longPressedTimer; | |
47 | + bool rendered; | |
48 | + QLabel *label; | |
49 | + bool emitted; | |
50 | + bool longPressEnabled; | |
51 | + | |
52 | + QWidget *pushed = NULL; | |
53 | + | |
54 | + void onEncoderLeft(); | |
55 | + void onEncoderRight(); | |
56 | + void onEncoderClicked(QWidget *clicked); | |
57 | + | |
58 | +private slots: | |
59 | + void emitLongPressed(); | |
60 | + | |
61 | + void on_pushButton_pressed(); | |
62 | + void on_pushButton_released(); | |
63 | + void on_pushButton_clicked(); | |
64 | + void on_showInfoButton_clicked(); | |
65 | + void on_deleteButton_clicked(); | |
66 | + | |
67 | +signals: | |
68 | + void clicked(ProgrammedCookPanelButton *); | |
69 | + void infoClicked(ProgrammedCookPanelButton *); | |
70 | + void deleteClicked(ProgrammedCookPanelButton *); | |
71 | + void longPressed(ProgrammedCookPanelButton *); | |
72 | +}; | |
73 | + | |
74 | +#endif // PROGRAMMEDCOOKPANELBUTTON_H | ... | ... |
app/gui/oven_control/programmedcookpanelbutton.ui
... | ... | @@ -0,0 +1,118 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<ui version="4.0"> | |
3 | + <class>ProgrammedCookPanelButton</class> | |
4 | + <widget class="QWidget" name="ProgrammedCookPanelButton"> | |
5 | + <property name="geometry"> | |
6 | + <rect> | |
7 | + <x>0</x> | |
8 | + <y>0</y> | |
9 | + <width>821</width> | |
10 | + <height>65</height> | |
11 | + </rect> | |
12 | + </property> | |
13 | + <property name="windowTitle"> | |
14 | + <string>Form</string> | |
15 | + </property> | |
16 | + <property name="styleSheet"> | |
17 | + <string notr="true">QPushButton { | |
18 | +background-position: center; | |
19 | +background-repeat: no-repeat; | |
20 | +border: none; | |
21 | +}</string> | |
22 | + </property> | |
23 | + <widget class="QPushButton" name="showInfoButton"> | |
24 | + <property name="geometry"> | |
25 | + <rect> | |
26 | + <x>670</x> | |
27 | + <y>0</y> | |
28 | + <width>70</width> | |
29 | + <height>65</height> | |
30 | + </rect> | |
31 | + </property> | |
32 | + <property name="styleSheet"> | |
33 | + <string notr="true">QPushButton { background-image: url(:/images/etc/bar_icon_01.png); } | |
34 | +QPushButton:pressed { background-image: url(:/images/etc/bar_icon_01_ov.png); } | |
35 | +QPushButton:focus { background-image: url(:/images/etc/bar_icon_01_ov.png); }</string> | |
36 | + </property> | |
37 | + <property name="text"> | |
38 | + <string/> | |
39 | + </property> | |
40 | + <property name="checkable"> | |
41 | + <bool>true</bool> | |
42 | + </property> | |
43 | + <property name="autoExclusive"> | |
44 | + <bool>true</bool> | |
45 | + </property> | |
46 | + </widget> | |
47 | + <widget class="QPushButton" name="deleteButton"> | |
48 | + <property name="geometry"> | |
49 | + <rect> | |
50 | + <x>750</x> | |
51 | + <y>0</y> | |
52 | + <width>60</width> | |
53 | + <height>65</height> | |
54 | + </rect> | |
55 | + </property> | |
56 | + <property name="styleSheet"> | |
57 | + <string notr="true">QPushButton { background-image: url(:/images/etc/bar_icon_02.png); } | |
58 | +QPushButton:pressed { background-image: url(:/images/etc/bar_icon_02_ov.png); } | |
59 | +QPushButton:focus { background-image: url(:/images/etc/bar_icon_02_ov.png); }</string> | |
60 | + </property> | |
61 | + <property name="text"> | |
62 | + <string/> | |
63 | + </property> | |
64 | + </widget> | |
65 | + <widget class="QPushButton" name="pushButton"> | |
66 | + <property name="geometry"> | |
67 | + <rect> | |
68 | + <x>0</x> | |
69 | + <y>0</y> | |
70 | + <width>821</width> | |
71 | + <height>65</height> | |
72 | + </rect> | |
73 | + </property> | |
74 | + <property name="sizePolicy"> | |
75 | + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> | |
76 | + <horstretch>0</horstretch> | |
77 | + <verstretch>0</verstretch> | |
78 | + </sizepolicy> | |
79 | + </property> | |
80 | + <property name="minimumSize"> | |
81 | + <size> | |
82 | + <width>821</width> | |
83 | + <height>65</height> | |
84 | + </size> | |
85 | + </property> | |
86 | + <property name="maximumSize"> | |
87 | + <size> | |
88 | + <width>821</width> | |
89 | + <height>65</height> | |
90 | + </size> | |
91 | + </property> | |
92 | + <property name="font"> | |
93 | + <font> | |
94 | + <family>Roboto</family> | |
95 | + <pointsize>11</pointsize> | |
96 | + </font> | |
97 | + </property> | |
98 | + <property name="styleSheet"> | |
99 | + <string notr="true">QPushButton { | |
100 | +background-image: url(:/images/etc/bar_03.png); | |
101 | +color: white; | |
102 | +text-align: left; | |
103 | +padding: 0px 40px; | |
104 | +} | |
105 | +QPushButton:pressed { background-image: url(:/images/etc/bar_02.png); } | |
106 | +QPushButton:focus { background-image: url(:/images/etc/bar_02.png); }</string> | |
107 | + </property> | |
108 | + <property name="text"> | |
109 | + <string/> | |
110 | + </property> | |
111 | + </widget> | |
112 | + <zorder>pushButton</zorder> | |
113 | + <zorder>showInfoButton</zorder> | |
114 | + <zorder>deleteButton</zorder> | |
115 | + </widget> | |
116 | + <resources/> | |
117 | + <connections/> | |
118 | +</ui> | ... | ... |
app/gui/oven_control/programmingwindow.cpp
... | ... | @@ -147,6 +147,7 @@ void ProgrammingWindow::listButtons(QList<CookRecord> record) |
147 | 147 | setTabOrder(ui->manualButton, ui->addButton); |
148 | 148 | |
149 | 149 | QWidget *last = ui->addButton; |
150 | + CookPanelButton *prev = NULL; | |
150 | 151 | foreach (CookRecord r, record) |
151 | 152 | { |
152 | 153 | CookPanelButton *b = newButton(r); |
... | ... | @@ -154,6 +155,12 @@ void ProgrammingWindow::listButtons(QList<CookRecord> record) |
154 | 155 | setTabOrder(b->bar(), b->infoButton()); |
155 | 156 | setTabOrder(b->infoButton(), b->deleteButton()); |
156 | 157 | last = b->deleteButton(); |
158 | + | |
159 | + CookPanelButton *p = qobject_cast<CookPanelButton *>(prev); | |
160 | + if (p) | |
161 | + p->next = b; | |
162 | + | |
163 | + prev = b; | |
157 | 164 | } |
158 | 165 | |
159 | 166 | setTabOrder(last, ui->backButton); | ... | ... |