Commit efecf3b066a0893326e2f51702ad80f33673f317
1 parent
e7502a09b2
Exists in
master
and in
2 other branches
자동 요리 선택 화면에 페이지 기능 추가
Showing
3 changed files
with
109 additions
and
2 deletions
Show diff stats
app/gui/oven_control/autocookselectionwindow.cpp
@@ -12,6 +12,9 @@ | @@ -12,6 +12,9 @@ | ||
12 | #include "mainwindow.h" | 12 | #include "mainwindow.h" |
13 | #include "manualviewerdlg.h" | 13 | #include "manualviewerdlg.h" |
14 | 14 | ||
15 | +#define MAX_BUTTONS 30 | ||
16 | +#define BUTTONS_PER_PAGE 27 | ||
17 | + | ||
15 | AutoCookSelectionWindow::AutoCookSelectionWindow(QWidget *parent, Define::CookType type) : | 18 | AutoCookSelectionWindow::AutoCookSelectionWindow(QWidget *parent, Define::CookType type) : |
16 | QMainWindow(parent), | 19 | QMainWindow(parent), |
17 | ui(new Ui::AutoCookSelectionWindow), | 20 | ui(new Ui::AutoCookSelectionWindow), |
@@ -41,8 +44,12 @@ AutoCookSelectionWindow::AutoCookSelectionWindow(QWidget *parent, Define::CookTy | @@ -41,8 +44,12 @@ AutoCookSelectionWindow::AutoCookSelectionWindow(QWidget *parent, Define::CookTy | ||
41 | "border-image: url(:/images/button/288_ov.png);\n" | 44 | "border-image: url(:/images/button/288_ov.png);\n" |
42 | "}"); | 45 | "}"); |
43 | 46 | ||
47 | + int cnt = book.list.size(); | ||
48 | + if (cnt > MAX_BUTTONS) | ||
49 | + cnt = BUTTONS_PER_PAGE; | ||
50 | + | ||
44 | QWidget *last = this; | 51 | QWidget *last = this; |
45 | - for (int idx = 0; idx < book.list.size(); idx++) | 52 | + for (int idx = 0; idx < cnt; idx++) |
46 | { | 53 | { |
47 | int x = 12 + (idx % 3) * 294; | 54 | int x = 12 + (idx % 3) * 294; |
48 | int y = 615 + (idx / 3) * 80; | 55 | int y = 615 + (idx / 3) * 80; |
@@ -58,10 +65,24 @@ AutoCookSelectionWindow::AutoCookSelectionWindow(QWidget *parent, Define::CookTy | @@ -58,10 +65,24 @@ AutoCookSelectionWindow::AutoCookSelectionWindow(QWidget *parent, Define::CookTy | ||
58 | 65 | ||
59 | setTabOrder(last, pb); | 66 | setTabOrder(last, pb); |
60 | 67 | ||
68 | + button.append(pb); | ||
69 | + | ||
61 | last = pb; | 70 | last = pb; |
62 | } | 71 | } |
63 | 72 | ||
64 | - setTabOrder(last, ui->backButton); | 73 | + if (book.list.size() > MAX_BUTTONS) { |
74 | + ui->bullets->setBulletPixmap(":/images/auto_popup/bullet.png"); | ||
75 | + ui->bullets->setCurrentBulletPixmap(":/images/auto_popup/bullet_selected.png"); | ||
76 | + ui->bullets->setMaximum(book.list.size() / BUTTONS_PER_PAGE); | ||
77 | + } else { | ||
78 | + ui->bullets->hide(); | ||
79 | + ui->prev->hide(); | ||
80 | + ui->next->hide(); | ||
81 | + } | ||
82 | + | ||
83 | + setTabOrder(last, ui->prev); | ||
84 | + setTabOrder(ui->prev, ui->next); | ||
85 | + setTabOrder(ui->next, ui->backButton); | ||
65 | setTabOrder(ui->backButton, ui->configButton); | 86 | setTabOrder(ui->backButton, ui->configButton); |
66 | setTabOrder(ui->configButton, ui->washButton); | 87 | setTabOrder(ui->configButton, ui->washButton); |
67 | setTabOrder(ui->washButton, ui->helpButton); | 88 | setTabOrder(ui->washButton, ui->helpButton); |
@@ -116,6 +137,8 @@ void AutoCookSelectionWindow::onCookSelected(int idx) | @@ -116,6 +137,8 @@ void AutoCookSelectionWindow::onCookSelected(int idx) | ||
116 | { | 137 | { |
117 | setFocus(); | 138 | setFocus(); |
118 | 139 | ||
140 | + idx += ui->bullets->currentIndex() * BUTTONS_PER_PAGE; | ||
141 | + | ||
119 | AutoCookConfigWindow *w = new AutoCookConfigWindow(this, book.get(idx)); | 142 | AutoCookConfigWindow *w = new AutoCookConfigWindow(this, book.get(idx)); |
120 | w->setWindowModality(Qt::WindowModal); | 143 | w->setWindowModality(Qt::WindowModal); |
121 | w->showFullScreen(); | 144 | w->showFullScreen(); |
@@ -170,3 +193,31 @@ void AutoCookSelectionWindow::onEncoderClicked(QWidget *clicked) | @@ -170,3 +193,31 @@ void AutoCookSelectionWindow::onEncoderClicked(QWidget *clicked) | ||
170 | if (b) | 193 | if (b) |
171 | b->click(); | 194 | b->click(); |
172 | } | 195 | } |
196 | + | ||
197 | +void AutoCookSelectionWindow::list() | ||
198 | +{ | ||
199 | + int startAt = ui->bullets->currentIndex() * BUTTONS_PER_PAGE; | ||
200 | + for (int i = 0; i < button.size(); i++) { | ||
201 | + QPushButton *pb = button.at(i); | ||
202 | + | ||
203 | + int cookIdx = startAt + i; | ||
204 | + if (cookIdx >= book.list.size()) | ||
205 | + pb->hide(); | ||
206 | + else { | ||
207 | + pb->setText(book.list.at(cookIdx)); | ||
208 | + pb->show(); | ||
209 | + } | ||
210 | + } | ||
211 | +} | ||
212 | + | ||
213 | +void AutoCookSelectionWindow::on_prev_clicked() | ||
214 | +{ | ||
215 | + ui->bullets->setCurrentIndex(ui->bullets->currentIndex() - 1); | ||
216 | + list(); | ||
217 | +} | ||
218 | + | ||
219 | +void AutoCookSelectionWindow::on_next_clicked() | ||
220 | +{ | ||
221 | + ui->bullets->setCurrentIndex(ui->bullets->currentIndex() + 1); | ||
222 | + list(); | ||
223 | +} |
app/gui/oven_control/autocookselectionwindow.h
@@ -34,10 +34,15 @@ private slots: | @@ -34,10 +34,15 @@ private slots: | ||
34 | 34 | ||
35 | void on_helpButton_clicked(); | 35 | void on_helpButton_clicked(); |
36 | 36 | ||
37 | + void on_prev_clicked(); | ||
38 | + | ||
39 | + void on_next_clicked(); | ||
40 | + | ||
37 | private: | 41 | private: |
38 | Ui::AutoCookSelectionWindow *ui; | 42 | Ui::AutoCookSelectionWindow *ui; |
39 | Define::CookType type; | 43 | Define::CookType type; |
40 | CookBook book; | 44 | CookBook book; |
45 | + QList<QPushButton *> button; | ||
41 | 46 | ||
42 | bool autoCookWindowOpened; | 47 | bool autoCookWindowOpened; |
43 | 48 | ||
@@ -46,6 +51,7 @@ private: | @@ -46,6 +51,7 @@ private: | ||
46 | void onEncoderLeft(); | 51 | void onEncoderLeft(); |
47 | void onEncoderRight(); | 52 | void onEncoderRight(); |
48 | void onEncoderClicked(QWidget *clicked); | 53 | void onEncoderClicked(QWidget *clicked); |
54 | + void list(); | ||
49 | }; | 55 | }; |
50 | 56 | ||
51 | #endif // AUTOCOOKSELECTIONWINDOW_H | 57 | #endif // AUTOCOOKSELECTIONWINDOW_H |
app/gui/oven_control/autocookselectionwindow.ui
@@ -231,10 +231,60 @@ QPushButton:pressed, QPushButton:focus { border-image: url(:/images/bottom_bar/h | @@ -231,10 +231,60 @@ QPushButton:pressed, QPushButton:focus { border-image: url(:/images/bottom_bar/h | ||
231 | <set>Qt::AlignCenter</set> | 231 | <set>Qt::AlignCenter</set> |
232 | </property> | 232 | </property> |
233 | </widget> | 233 | </widget> |
234 | + <widget class="QPushButton" name="prev"> | ||
235 | + <property name="geometry"> | ||
236 | + <rect> | ||
237 | + <x>254</x> | ||
238 | + <y>1335</y> | ||
239 | + <width>125</width> | ||
240 | + <height>105</height> | ||
241 | + </rect> | ||
242 | + </property> | ||
243 | + <property name="styleSheet"> | ||
244 | + <string notr="true">QPushButton { border: none; background-repeat: no-repeat; background-position: center; background-image: url(:/images/auto_popup/prev.png); } | ||
245 | +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/auto_popup/prev_ov.png); }</string> | ||
246 | + </property> | ||
247 | + </widget> | ||
248 | + <widget class="BulletIndicator" name="bullets" native="true"> | ||
249 | + <property name="geometry"> | ||
250 | + <rect> | ||
251 | + <x>325</x> | ||
252 | + <y>1335</y> | ||
253 | + <width>250</width> | ||
254 | + <height>105</height> | ||
255 | + </rect> | ||
256 | + </property> | ||
257 | + </widget> | ||
258 | + <widget class="QPushButton" name="next"> | ||
259 | + <property name="geometry"> | ||
260 | + <rect> | ||
261 | + <x>529</x> | ||
262 | + <y>1335</y> | ||
263 | + <width>125</width> | ||
264 | + <height>105</height> | ||
265 | + </rect> | ||
266 | + </property> | ||
267 | + <property name="styleSheet"> | ||
268 | + <string notr="true">QPushButton { border: none; background-repeat: no-repeat; background-position: center; background-image: url(:/images/auto_popup/next.png); } | ||
269 | +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/auto_popup/next_ov.png); }</string> | ||
270 | + </property> | ||
271 | + </widget> | ||
272 | + <zorder>upperStack</zorder> | ||
273 | + <zorder>bottomBar</zorder> | ||
274 | + <zorder>cookTypeIcon</zorder> | ||
275 | + <zorder>bullets</zorder> | ||
276 | + <zorder>next</zorder> | ||
277 | + <zorder>prev</zorder> | ||
234 | </widget> | 278 | </widget> |
235 | </widget> | 279 | </widget> |
236 | <customwidgets> | 280 | <customwidgets> |
237 | <customwidget> | 281 | <customwidget> |
282 | + <class>BulletIndicator</class> | ||
283 | + <extends>QWidget</extends> | ||
284 | + <header>bulletindicator.h</header> | ||
285 | + <container>1</container> | ||
286 | + </customwidget> | ||
287 | + <customwidget> | ||
238 | <class>Clock</class> | 288 | <class>Clock</class> |
239 | <extends>QWidget</extends> | 289 | <extends>QWidget</extends> |
240 | <header>clock.h</header> | 290 | <header>clock.h</header> |