Commit 11c6117822bda7947098ebee9b658da6aded0588
1 parent
ec8811c603
Exists in
master
and in
2 other branches
자동 요리 세부 사항 구현
- 요리 다시 선택하기 기능 추가
Showing
23 changed files
with
599 additions
and
26 deletions
Show diff stats
app/gui/oven_control/autocookconfigwindow.cpp
... | ... | @@ -11,6 +11,7 @@ |
11 | 11 | #include "configwindow.h" |
12 | 12 | #include "washwindow.h" |
13 | 13 | #include "mainwindow.h" |
14 | +#include "autocookselectionpopup.h" | |
14 | 15 | |
15 | 16 | AutoCookConfigWindow::AutoCookConfigWindow(QWidget *parent, Cook cook) : |
16 | 17 | QMainWindow(parent), |
... | ... | @@ -63,6 +64,9 @@ AutoCookConfigWindow::AutoCookConfigWindow(QWidget *parent, Cook cook) : |
63 | 64 | ui->configSlider_5 |
64 | 65 | }); |
65 | 66 | |
67 | + foreach (Slider *s, findChildren<Slider *>()) | |
68 | + connect(s, SIGNAL(sliderMoved(int)), SLOT(updateConfig())); | |
69 | + | |
66 | 70 | setupUi(); |
67 | 71 | |
68 | 72 | afterThreeSecsTimer.setSingleShot(true); |
... | ... | @@ -75,8 +79,6 @@ AutoCookConfigWindow::AutoCookConfigWindow(QWidget *parent, Cook cook) : |
75 | 79 | foreach (QWidget *w, findChildren<QWidget *>()) |
76 | 80 | w->installEventFilter(this); |
77 | 81 | |
78 | - installEventFilter(this); | |
79 | - | |
80 | 82 | setFocus(); |
81 | 83 | |
82 | 84 | afterThreeSecsTimer.start(); |
... | ... | @@ -162,6 +164,22 @@ void AutoCookConfigWindow::afterThreeSecs() |
162 | 164 | start(); |
163 | 165 | } |
164 | 166 | |
167 | +void AutoCookConfigWindow::changeCook(Cook cook) | |
168 | +{ | |
169 | + if (this->cook.root == cook.root) | |
170 | + return; | |
171 | + | |
172 | + this->cook = cook; | |
173 | + | |
174 | + setupUi(); | |
175 | +} | |
176 | + | |
177 | +void AutoCookConfigWindow::connectNewWindow(AutoCookWindow *w) | |
178 | +{ | |
179 | + connect(w, SIGNAL(back()), &afterThreeSecsTimer, SLOT(start())); | |
180 | + connect(w, SIGNAL(newWindow(AutoCookWindow*)), SLOT(connectNewWindow(AutoCookWindow*))); | |
181 | +} | |
182 | + | |
165 | 183 | void AutoCookConfigWindow::onEncoderLeft() |
166 | 184 | { |
167 | 185 | focusPreviousChild(); |
... | ... | @@ -222,6 +240,12 @@ void AutoCookConfigWindow::setupUi() |
222 | 240 | else |
223 | 241 | { |
224 | 242 | ConfigWidget cw = configWidgets.at(idx); |
243 | + cw.button->show(); | |
244 | + cw.minimum->show(); | |
245 | + cw.maximum->show(); | |
246 | + cw.current->show(); | |
247 | + cw.slider->show(); | |
248 | + | |
225 | 249 | cw.button->setStyleSheet( |
226 | 250 | "QPushButton { image: url(" |
227 | 251 | + Define::icon(config.type) |
... | ... | @@ -254,8 +278,6 @@ void AutoCookConfigWindow::setupUi() |
254 | 278 | cw.slider->setValue(config.current); |
255 | 279 | cw.slider->blockSignals(false); |
256 | 280 | cw.slider->bigTickInterval = 1; |
257 | - | |
258 | - connect(cw.slider, SIGNAL(sliderMoved(int)), SLOT(updateConfig())); | |
259 | 281 | } |
260 | 282 | } |
261 | 283 | |
... | ... | @@ -309,6 +331,7 @@ void AutoCookConfigWindow::start() |
309 | 331 | w->raise(); |
310 | 332 | |
311 | 333 | connect(w, SIGNAL(back()), &afterThreeSecsTimer, SLOT(start())); |
334 | + connect(w, SIGNAL(newWindow(AutoCookWindow*)), SLOT(connectNewWindow(AutoCookWindow*))); | |
312 | 335 | } |
313 | 336 | |
314 | 337 | void AutoCookConfigWindow::addFavorite() |
... | ... | @@ -386,3 +409,19 @@ void AutoCookConfigWindow::on_configButton_5_clicked() |
386 | 409 | { |
387 | 410 | ui->configSlider_5->setFocus(); |
388 | 411 | } |
412 | + | |
413 | +void AutoCookConfigWindow::on_selectCookButton_clicked() | |
414 | +{ | |
415 | + AutoCookSelectionPopup *p = new AutoCookSelectionPopup(this, cook.type); | |
416 | + p->showFullScreen(); | |
417 | + p->raise(); | |
418 | + | |
419 | + connect(p, SIGNAL(selected(Cook)), SLOT(changeCook(Cook))); | |
420 | + | |
421 | + if (afterThreeSecsTimer.isActive()) | |
422 | + { | |
423 | + afterThreeSecsTimer.stop(); | |
424 | + connect(p, SIGNAL(selected(Cook)), &afterThreeSecsTimer, SLOT(start())); | |
425 | + connect(p, SIGNAL(canceled()), &afterThreeSecsTimer, SLOT(start())); | |
426 | + } | |
427 | +} | ... | ... |
app/gui/oven_control/autocookconfigwindow.h
... | ... | @@ -11,6 +11,7 @@ |
11 | 11 | //#include "cook.h" |
12 | 12 | #include "cookbook.h" |
13 | 13 | #include "slider.h" |
14 | +#include "autocookwindow.h" | |
14 | 15 | |
15 | 16 | namespace Ui { |
16 | 17 | class AutoCookConfigWindow; |
... | ... | @@ -60,6 +61,8 @@ private slots: |
60 | 61 | void start(); |
61 | 62 | void addFavorite(); |
62 | 63 | void afterThreeSecs(); |
64 | + void changeCook(Cook cook); | |
65 | + void connectNewWindow(AutoCookWindow *w); | |
63 | 66 | |
64 | 67 | void on_backButton_clicked(); |
65 | 68 | void on_configButton_clicked(); |
... | ... | @@ -70,6 +73,7 @@ private slots: |
70 | 73 | void on_configButton_3_clicked(); |
71 | 74 | void on_configButton_4_clicked(); |
72 | 75 | void on_configButton_5_clicked(); |
76 | + void on_selectCookButton_clicked(); | |
73 | 77 | }; |
74 | 78 | |
75 | 79 | #endif // AUTOCOOKCONFIGWINDOW_H | ... | ... |
app/gui/oven_control/autocookselectionpopup.cpp
... | ... | @@ -0,0 +1,178 @@ |
1 | +#include "autocookselectionpopup.h" | |
2 | +#include "ui_autocookselectionpopup.h" | |
3 | + | |
4 | +#include <QSignalMapper> | |
5 | +#include <QKeyEvent> | |
6 | + | |
7 | +#include "soundplayer.h" | |
8 | + | |
9 | +AutoCookSelectionPopup::AutoCookSelectionPopup(QWidget *parent, Define::CookType type) : | |
10 | + QWidget(parent), | |
11 | + ui(new Ui::AutoCookSelectionPopup), | |
12 | + type(type), book(CookBook(type)) | |
13 | +{ | |
14 | + ui->setupUi(this); | |
15 | + | |
16 | + QSignalMapper *m = new QSignalMapper(this); | |
17 | + m->setMapping(ui->selection1, 0); | |
18 | + m->setMapping(ui->selection2, 1); | |
19 | + m->setMapping(ui->selection3, 2); | |
20 | + m->setMapping(ui->selection4, 3); | |
21 | + m->setMapping(ui->selection5, 4); | |
22 | + m->setMapping(ui->selection6, 5); | |
23 | + connect(m, SIGNAL(mapped(int)), SLOT(on_clicked(int))); | |
24 | + | |
25 | + connect(ui->selection1, SIGNAL(clicked()), m, SLOT(map())); | |
26 | + connect(ui->selection2, SIGNAL(clicked()), m, SLOT(map())); | |
27 | + connect(ui->selection3, SIGNAL(clicked()), m, SLOT(map())); | |
28 | + connect(ui->selection4, SIGNAL(clicked()), m, SLOT(map())); | |
29 | + connect(ui->selection5, SIGNAL(clicked()), m, SLOT(map())); | |
30 | + connect(ui->selection6, SIGNAL(clicked()), m, SLOT(map())); | |
31 | + | |
32 | + ui->bullets->setBulletPixmap(":/images/auto_popup/bullet.png"); | |
33 | + ui->bullets->setCurrentBulletPixmap(":/images/auto_popup/bullet_selected.png"); | |
34 | + ui->bullets->setMaximum((book.list.size() - 1) / 6); | |
35 | + | |
36 | + list(); | |
37 | + | |
38 | + foreach (QPushButton *button, findChildren<QPushButton *>()) | |
39 | + connect(button, &QPushButton::pressed, SoundPlayer::playClick); | |
40 | + | |
41 | + setFocus(); | |
42 | +} | |
43 | + | |
44 | +AutoCookSelectionPopup::~AutoCookSelectionPopup() | |
45 | +{ | |
46 | + delete ui; | |
47 | +} | |
48 | + | |
49 | +void AutoCookSelectionPopup::keyPressEvent(QKeyEvent *event) | |
50 | +{ | |
51 | + switch (event->key()) | |
52 | + { | |
53 | + case 0x01000030: // Turn left | |
54 | + onEncoderLeft(); | |
55 | + break; | |
56 | + case 0x01000031: // Push | |
57 | + pushed = focusWidget(); | |
58 | + break; | |
59 | + case 0x01000032: // Turn right | |
60 | + onEncoderRight(); | |
61 | + break; | |
62 | + } | |
63 | +} | |
64 | + | |
65 | +void AutoCookSelectionPopup::keyReleaseEvent(QKeyEvent *event) | |
66 | +{ | |
67 | + switch (event->key()) | |
68 | + { | |
69 | + case 0x01000030: // Turn left | |
70 | + onEncoderLeft(); | |
71 | + break; | |
72 | + case 0x01000031: // Push | |
73 | + if (focusWidget() == pushed) | |
74 | + onEncoderClicked(pushed); | |
75 | + | |
76 | + pushed = NULL; | |
77 | + break; | |
78 | + case 0x01000032: // Turn right | |
79 | + onEncoderRight(); | |
80 | + break; | |
81 | + } | |
82 | +} | |
83 | + | |
84 | +void AutoCookSelectionPopup::onEncoderLeft() | |
85 | +{ | |
86 | + QWidget *focused = focusWidget(); | |
87 | + if (focused == NULL || focused == this || focused == ui->selection1) | |
88 | + ui->next->setFocus(); | |
89 | + else | |
90 | + focusPreviousChild(); | |
91 | +} | |
92 | + | |
93 | +void AutoCookSelectionPopup::onEncoderRight() | |
94 | +{ | |
95 | + QWidget *focused = focusWidget(); | |
96 | + if (focused == NULL || focused == this || focused == ui->next) | |
97 | + ui->selection1->setFocus(); | |
98 | + else | |
99 | + focusNextChild(); | |
100 | +} | |
101 | + | |
102 | +void AutoCookSelectionPopup::onEncoderClicked(QWidget *clicked) | |
103 | +{ | |
104 | + QPushButton *b = qobject_cast<QPushButton *>(clicked); | |
105 | + if (b) | |
106 | + b->click(); | |
107 | +} | |
108 | + | |
109 | +void AutoCookSelectionPopup::list() | |
110 | +{ | |
111 | + int startAt = ui->bullets->currentIndex() * 6; | |
112 | + for (int i = 0; i < 6; i++) | |
113 | + { | |
114 | + QPushButton *b; | |
115 | + switch (i) | |
116 | + { | |
117 | + case 0: | |
118 | + b = ui->selection1; | |
119 | + break; | |
120 | + case 1: | |
121 | + b = ui->selection2; | |
122 | + break; | |
123 | + case 2: | |
124 | + b = ui->selection3; | |
125 | + break; | |
126 | + case 3: | |
127 | + b = ui->selection4; | |
128 | + break; | |
129 | + case 4: | |
130 | + b = ui->selection5; | |
131 | + break; | |
132 | + case 5: | |
133 | + b = ui->selection6; | |
134 | + break; | |
135 | + } | |
136 | + | |
137 | + int idx = startAt + i; | |
138 | + if (idx >= book.list.size()) | |
139 | + b->hide(); | |
140 | + else | |
141 | + { | |
142 | + b->show(); | |
143 | + b->setText(book.list.at(idx)); | |
144 | + } | |
145 | + } | |
146 | +} | |
147 | + | |
148 | +void AutoCookSelectionPopup::on_clicked(int index) | |
149 | +{ | |
150 | + index += ui->bullets->currentIndex() * 6; | |
151 | + | |
152 | + emit selected(book.get(index)); | |
153 | + close(); | |
154 | +} | |
155 | + | |
156 | +void AutoCookSelectionPopup::on_prev_clicked() | |
157 | +{ | |
158 | + ui->bullets->setCurrentIndex(ui->bullets->currentIndex() - 1); | |
159 | + list(); | |
160 | +} | |
161 | + | |
162 | +void AutoCookSelectionPopup::on_next_clicked() | |
163 | +{ | |
164 | + ui->bullets->setCurrentIndex(ui->bullets->currentIndex() + 1); | |
165 | + list(); | |
166 | +} | |
167 | + | |
168 | +void AutoCookSelectionPopup::on_upperClose_clicked() | |
169 | +{ | |
170 | + emit canceled(); | |
171 | + close(); | |
172 | +} | |
173 | + | |
174 | +void AutoCookSelectionPopup::on_lowerClose_clicked() | |
175 | +{ | |
176 | + emit canceled(); | |
177 | + close(); | |
178 | +} | ... | ... |
app/gui/oven_control/autocookselectionpopup.h
... | ... | @@ -0,0 +1,53 @@ |
1 | +#ifndef AUTOCOOKSELECTIONPOPUP_H | |
2 | +#define AUTOCOOKSELECTIONPOPUP_H | |
3 | + | |
4 | +#include <QWidget> | |
5 | + | |
6 | +#include "cookbook.h" | |
7 | + | |
8 | +namespace Ui { | |
9 | +class AutoCookSelectionPopup; | |
10 | +} | |
11 | + | |
12 | +class AutoCookSelectionPopup : public QWidget | |
13 | +{ | |
14 | + Q_OBJECT | |
15 | + | |
16 | +public: | |
17 | + explicit AutoCookSelectionPopup(QWidget *parent, Define::CookType type); | |
18 | + ~AutoCookSelectionPopup(); | |
19 | + | |
20 | +protected: | |
21 | + void keyPressEvent(QKeyEvent *event); | |
22 | + void keyReleaseEvent(QKeyEvent *event); | |
23 | + | |
24 | +private: | |
25 | + Ui::AutoCookSelectionPopup *ui; | |
26 | + | |
27 | + Define::CookType type; | |
28 | + CookBook book; | |
29 | + | |
30 | + QWidget *pushed = NULL; | |
31 | + | |
32 | + void onEncoderLeft(); | |
33 | + void onEncoderRight(); | |
34 | + void onEncoderClicked(QWidget *clicked); | |
35 | + | |
36 | +private slots: | |
37 | + void list(); | |
38 | + void on_clicked(int index); | |
39 | + | |
40 | + void on_prev_clicked(); | |
41 | + | |
42 | + void on_next_clicked(); | |
43 | + | |
44 | + void on_upperClose_clicked(); | |
45 | + | |
46 | + void on_lowerClose_clicked(); | |
47 | + | |
48 | +signals: | |
49 | + void selected(Cook); | |
50 | + void canceled(); | |
51 | +}; | |
52 | + | |
53 | +#endif // AUTOCOOKSELECTIONPOPUP_H | ... | ... |
app/gui/oven_control/autocookselectionpopup.ui
... | ... | @@ -0,0 +1,258 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<ui version="4.0"> | |
3 | + <class>AutoCookSelectionPopup</class> | |
4 | + <widget class="QWidget" name="AutoCookSelectionPopup"> | |
5 | + <property name="geometry"> | |
6 | + <rect> | |
7 | + <x>0</x> | |
8 | + <y>0</y> | |
9 | + <width>900</width> | |
10 | + <height>1600</height> | |
11 | + </rect> | |
12 | + </property> | |
13 | + <property name="windowTitle"> | |
14 | + <string>Form</string> | |
15 | + </property> | |
16 | + <property name="styleSheet"> | |
17 | + <string notr="true">#background { background-image: url(:/images/auto_popup/background.png); } | |
18 | +#pannel { background-image: url(:/images/auto_popup/pannel.png); } | |
19 | + | |
20 | +QPushButton { border: none; background-repeat: no-repeat; background-position: center; } | |
21 | +QPushButton[style="cook"] { background-image: url(:/images/auto_popup/button.png); } | |
22 | +QPushButton[style="cook"]:pressed, QPushButton[style="cook"]:focus { background-image: url(:/images/auto_popup/button_ov.png); }</string> | |
23 | + </property> | |
24 | + <widget class="QWidget" name="background" native="true"> | |
25 | + <property name="geometry"> | |
26 | + <rect> | |
27 | + <x>0</x> | |
28 | + <y>593</y> | |
29 | + <width>900</width> | |
30 | + <height>600</height> | |
31 | + </rect> | |
32 | + </property> | |
33 | + <widget class="QWidget" name="pannel" native="true"> | |
34 | + <property name="geometry"> | |
35 | + <rect> | |
36 | + <x>34</x> | |
37 | + <y>135</y> | |
38 | + <width>832</width> | |
39 | + <height>365</height> | |
40 | + </rect> | |
41 | + </property> | |
42 | + <widget class="QPushButton" name="prev"> | |
43 | + <property name="geometry"> | |
44 | + <rect> | |
45 | + <x>216</x> | |
46 | + <y>197</y> | |
47 | + <width>125</width> | |
48 | + <height>129</height> | |
49 | + </rect> | |
50 | + </property> | |
51 | + <property name="styleSheet"> | |
52 | + <string notr="true">QPushButton { background-image: url(:/images/auto_popup/prev.png); } | |
53 | +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/auto_popup/prev_ov.png); }</string> | |
54 | + </property> | |
55 | + </widget> | |
56 | + <widget class="QPushButton" name="next"> | |
57 | + <property name="geometry"> | |
58 | + <rect> | |
59 | + <x>491</x> | |
60 | + <y>197</y> | |
61 | + <width>125</width> | |
62 | + <height>129</height> | |
63 | + </rect> | |
64 | + </property> | |
65 | + <property name="styleSheet"> | |
66 | + <string notr="true">QPushButton { background-image: url(:/images/auto_popup/next.png); } | |
67 | +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/auto_popup/next_ov.png); }</string> | |
68 | + </property> | |
69 | + </widget> | |
70 | + <widget class="BulletIndicator" name="bullets" native="true"> | |
71 | + <property name="geometry"> | |
72 | + <rect> | |
73 | + <x>287</x> | |
74 | + <y>197</y> | |
75 | + <width>250</width> | |
76 | + <height>129</height> | |
77 | + </rect> | |
78 | + </property> | |
79 | + </widget> | |
80 | + <widget class="QPushButton" name="selection1"> | |
81 | + <property name="geometry"> | |
82 | + <rect> | |
83 | + <x>25</x> | |
84 | + <y>50</y> | |
85 | + <width>261</width> | |
86 | + <height>64</height> | |
87 | + </rect> | |
88 | + </property> | |
89 | + <property name="font"> | |
90 | + <font> | |
91 | + <pointsize>10</pointsize> | |
92 | + <weight>75</weight> | |
93 | + <bold>true</bold> | |
94 | + </font> | |
95 | + </property> | |
96 | + <property name="style" stdset="0"> | |
97 | + <string>cook</string> | |
98 | + </property> | |
99 | + </widget> | |
100 | + <widget class="QPushButton" name="selection2"> | |
101 | + <property name="geometry"> | |
102 | + <rect> | |
103 | + <x>286</x> | |
104 | + <y>50</y> | |
105 | + <width>261</width> | |
106 | + <height>64</height> | |
107 | + </rect> | |
108 | + </property> | |
109 | + <property name="font"> | |
110 | + <font> | |
111 | + <pointsize>10</pointsize> | |
112 | + <weight>75</weight> | |
113 | + <bold>true</bold> | |
114 | + </font> | |
115 | + </property> | |
116 | + <property name="style" stdset="0"> | |
117 | + <string>cook</string> | |
118 | + </property> | |
119 | + </widget> | |
120 | + <widget class="QPushButton" name="selection3"> | |
121 | + <property name="geometry"> | |
122 | + <rect> | |
123 | + <x>547</x> | |
124 | + <y>50</y> | |
125 | + <width>261</width> | |
126 | + <height>64</height> | |
127 | + </rect> | |
128 | + </property> | |
129 | + <property name="font"> | |
130 | + <font> | |
131 | + <pointsize>10</pointsize> | |
132 | + <weight>75</weight> | |
133 | + <bold>true</bold> | |
134 | + </font> | |
135 | + </property> | |
136 | + <property name="style" stdset="0"> | |
137 | + <string>cook</string> | |
138 | + </property> | |
139 | + </widget> | |
140 | + <widget class="QPushButton" name="selection6"> | |
141 | + <property name="geometry"> | |
142 | + <rect> | |
143 | + <x>547</x> | |
144 | + <y>125</y> | |
145 | + <width>261</width> | |
146 | + <height>64</height> | |
147 | + </rect> | |
148 | + </property> | |
149 | + <property name="font"> | |
150 | + <font> | |
151 | + <pointsize>10</pointsize> | |
152 | + <weight>75</weight> | |
153 | + <bold>true</bold> | |
154 | + </font> | |
155 | + </property> | |
156 | + <property name="style" stdset="0"> | |
157 | + <string>cook</string> | |
158 | + </property> | |
159 | + </widget> | |
160 | + <widget class="QPushButton" name="selection4"> | |
161 | + <property name="geometry"> | |
162 | + <rect> | |
163 | + <x>25</x> | |
164 | + <y>125</y> | |
165 | + <width>261</width> | |
166 | + <height>64</height> | |
167 | + </rect> | |
168 | + </property> | |
169 | + <property name="font"> | |
170 | + <font> | |
171 | + <pointsize>10</pointsize> | |
172 | + <weight>75</weight> | |
173 | + <bold>true</bold> | |
174 | + </font> | |
175 | + </property> | |
176 | + <property name="style" stdset="0"> | |
177 | + <string>cook</string> | |
178 | + </property> | |
179 | + </widget> | |
180 | + <widget class="QPushButton" name="selection5"> | |
181 | + <property name="geometry"> | |
182 | + <rect> | |
183 | + <x>286</x> | |
184 | + <y>125</y> | |
185 | + <width>261</width> | |
186 | + <height>64</height> | |
187 | + </rect> | |
188 | + </property> | |
189 | + <property name="font"> | |
190 | + <font> | |
191 | + <pointsize>10</pointsize> | |
192 | + <weight>75</weight> | |
193 | + <bold>true</bold> | |
194 | + </font> | |
195 | + </property> | |
196 | + <property name="style" stdset="0"> | |
197 | + <string>cook</string> | |
198 | + </property> | |
199 | + </widget> | |
200 | + <zorder>bullets</zorder> | |
201 | + <zorder>prev</zorder> | |
202 | + <zorder>next</zorder> | |
203 | + <zorder>selection1</zorder> | |
204 | + <zorder>selection2</zorder> | |
205 | + <zorder>selection3</zorder> | |
206 | + <zorder>selection6</zorder> | |
207 | + <zorder>selection4</zorder> | |
208 | + <zorder>selection5</zorder> | |
209 | + </widget> | |
210 | + </widget> | |
211 | + <widget class="QPushButton" name="upperClose"> | |
212 | + <property name="geometry"> | |
213 | + <rect> | |
214 | + <x>0</x> | |
215 | + <y>0</y> | |
216 | + <width>900</width> | |
217 | + <height>593</height> | |
218 | + </rect> | |
219 | + </property> | |
220 | + <property name="focusPolicy"> | |
221 | + <enum>Qt::NoFocus</enum> | |
222 | + </property> | |
223 | + </widget> | |
224 | + <widget class="QPushButton" name="lowerClose"> | |
225 | + <property name="geometry"> | |
226 | + <rect> | |
227 | + <x>0</x> | |
228 | + <y>1193</y> | |
229 | + <width>900</width> | |
230 | + <height>407</height> | |
231 | + </rect> | |
232 | + </property> | |
233 | + <property name="focusPolicy"> | |
234 | + <enum>Qt::NoFocus</enum> | |
235 | + </property> | |
236 | + </widget> | |
237 | + </widget> | |
238 | + <customwidgets> | |
239 | + <customwidget> | |
240 | + <class>BulletIndicator</class> | |
241 | + <extends>QWidget</extends> | |
242 | + <header>bulletindicator.h</header> | |
243 | + <container>1</container> | |
244 | + </customwidget> | |
245 | + </customwidgets> | |
246 | + <tabstops> | |
247 | + <tabstop>selection1</tabstop> | |
248 | + <tabstop>selection2</tabstop> | |
249 | + <tabstop>selection3</tabstop> | |
250 | + <tabstop>selection4</tabstop> | |
251 | + <tabstop>selection5</tabstop> | |
252 | + <tabstop>selection6</tabstop> | |
253 | + <tabstop>prev</tabstop> | |
254 | + <tabstop>next</tabstop> | |
255 | + </tabstops> | |
256 | + <resources/> | |
257 | + <connections/> | |
258 | +</ui> | ... | ... |
app/gui/oven_control/autocookwindow.cpp
... | ... | @@ -14,6 +14,7 @@ |
14 | 14 | #include "mainwindow.h" |
15 | 15 | #include "config.h" |
16 | 16 | #include "errorpopupdlg.h" |
17 | +#include "autocookselectionpopup.h" | |
17 | 18 | |
18 | 19 | AutoCookWindow::AutoCookWindow(QWidget *parent, Cook cook) : |
19 | 20 | QMainWindow(parent), |
... | ... | @@ -667,6 +668,8 @@ void AutoCookWindow::startProcess(int process) |
667 | 668 | w->showFullScreen(); |
668 | 669 | w->raise(); |
669 | 670 | |
671 | + emit newWindow(w); | |
672 | + | |
670 | 673 | break; |
671 | 674 | } |
672 | 675 | case Define::MakeCrisper: |
... | ... | @@ -739,6 +742,18 @@ void AutoCookWindow::checkProcess() |
739 | 742 | updateView(); |
740 | 743 | } |
741 | 744 | |
745 | +void AutoCookWindow::changeCook(Cook cook) | |
746 | +{ | |
747 | + close(); | |
748 | + | |
749 | + AutoCookWindow *w = new AutoCookWindow(parentWidget(), cook); | |
750 | + w->setWindowModality(Qt::WindowModal); | |
751 | + w->showFullScreen(); | |
752 | + w->raise(); | |
753 | + | |
754 | + emit newWindow(w); | |
755 | +} | |
756 | + | |
742 | 757 | void AutoCookWindow::returnToCurrentStep() |
743 | 758 | { |
744 | 759 | selectedStepIndex = autocook.currentStepIndex; |
... | ... | @@ -904,7 +919,14 @@ void AutoCookWindow::monitor() |
904 | 919 | |
905 | 920 | void AutoCookWindow::on_selectCookButton_clicked() |
906 | 921 | { |
922 | + if (!autocook.done()) | |
923 | + return; | |
924 | + | |
925 | + AutoCookSelectionPopup *p = new AutoCookSelectionPopup(this, cook.type); | |
926 | + p->showFullScreen(); | |
927 | + p->raise(); | |
907 | 928 | |
929 | + connect(p, SIGNAL(selected(Cook)), SLOT(changeCook(Cook))); | |
908 | 930 | } |
909 | 931 | |
910 | 932 | void AutoCookWindow::on_homeButton_clicked() | ... | ... |
app/gui/oven_control/autocookwindow.h
... | ... | @@ -92,6 +92,7 @@ private slots: |
92 | 92 | void checkCook(); |
93 | 93 | void startProcess(int process); |
94 | 94 | void checkProcess(); |
95 | + void changeCook(Cook cook); | |
95 | 96 | |
96 | 97 | void returnToCurrentStep(); |
97 | 98 | void showCurrentHumidity(); |
... | ... | @@ -120,6 +121,7 @@ private slots: |
120 | 121 | |
121 | 122 | signals: |
122 | 123 | void back(); |
124 | + void newWindow(AutoCookWindow *); | |
123 | 125 | }; |
124 | 126 | |
125 | 127 | #endif // AUTOCOOKWINDOW_H | ... | ... |
app/gui/oven_control/bulletindicator.cpp
... | ... | @@ -26,7 +26,7 @@ BulletIndicator::BulletIndicator(QWidget *parent) : QWidget(parent) |
26 | 26 | updatePosition(); |
27 | 27 | } |
28 | 28 | |
29 | -void BulletIndicator::setBulletPixmap(QPixmap &pixmap) | |
29 | +void BulletIndicator::setBulletPixmap(const QPixmap &pixmap) | |
30 | 30 | { |
31 | 31 | bulletPixmap = pixmap; |
32 | 32 | |
... | ... | @@ -39,7 +39,13 @@ void BulletIndicator::setBulletPixmap(QPixmap &pixmap) |
39 | 39 | updatePosition(); |
40 | 40 | } |
41 | 41 | |
42 | -void BulletIndicator::setCurrentBulletPixmap(QPixmap &pixmap) | |
42 | +void BulletIndicator::setBulletPixmap(const QString &path) | |
43 | +{ | |
44 | + QPixmap pix(path); | |
45 | + setBulletPixmap(pix); | |
46 | +} | |
47 | + | |
48 | +void BulletIndicator::setCurrentBulletPixmap(const QPixmap &pixmap) | |
43 | 49 | { |
44 | 50 | currentBulletPixmap = pixmap; |
45 | 51 | |
... | ... | @@ -50,6 +56,12 @@ void BulletIndicator::setCurrentBulletPixmap(QPixmap &pixmap) |
50 | 56 | updatePosition(); |
51 | 57 | } |
52 | 58 | |
59 | +void BulletIndicator::setCurrentBulletPixmap(const QString &path) | |
60 | +{ | |
61 | + QPixmap pix(path); | |
62 | + setCurrentBulletPixmap(pix); | |
63 | +} | |
64 | + | |
53 | 65 | void BulletIndicator::setCurrentIndex(int index) |
54 | 66 | { |
55 | 67 | if (index == cur || index < 0 || index > max) |
... | ... | @@ -65,7 +77,7 @@ void BulletIndicator::setCurrentIndex(int index) |
65 | 77 | |
66 | 78 | void BulletIndicator::setMaximum(int maximum) |
67 | 79 | { |
68 | - if (maximum == max || maximum < 1) | |
80 | + if (maximum == max || maximum < 0) | |
69 | 81 | return; |
70 | 82 | |
71 | 83 | if (bullets.size() <= maximum) |
... | ... | @@ -82,23 +94,11 @@ void BulletIndicator::setMaximum(int maximum) |
82 | 94 | } |
83 | 95 | |
84 | 96 | if (maximum > max) |
85 | - { | |
86 | 97 | for (int i = max + 1; i <= maximum; i++) |
87 | - { | |
88 | - QLabel *l = bullets.at(i); | |
89 | - if (l->isHidden()) | |
90 | - l->show(); | |
91 | - } | |
92 | - } | |
98 | + bullets.at(i)->show(); | |
93 | 99 | else if (maximum < max) |
94 | - { | |
95 | 100 | for (int i = maximum + 1; i <= max; i++) |
96 | - { | |
97 | - QLabel *l = bullets.at(i); | |
98 | - if (l->isVisible()) | |
99 | - l->hide(); | |
100 | - } | |
101 | - } | |
101 | + bullets.at(i)->hide(); | |
102 | 102 | |
103 | 103 | max = maximum; |
104 | 104 | ... | ... |
app/gui/oven_control/bulletindicator.h
... | ... | @@ -10,8 +10,10 @@ class BulletIndicator : public QWidget |
10 | 10 | public: |
11 | 11 | explicit BulletIndicator(QWidget *parent = 0); |
12 | 12 | |
13 | - void setBulletPixmap(QPixmap &pixmap); | |
14 | - void setCurrentBulletPixmap(QPixmap &pixmap); | |
13 | + void setBulletPixmap(const QPixmap &pixmap); | |
14 | + void setBulletPixmap(const QString &path); | |
15 | + void setCurrentBulletPixmap(const QPixmap &pixmap); | |
16 | + void setCurrentBulletPixmap(const QString &path); | |
15 | 17 | |
16 | 18 | int maximum() { return max; } |
17 | 19 | int currentIndex() { return cur; } | ... | ... |
app/gui/oven_control/images/auto_popup/background.png
158 KB
app/gui/oven_control/images/auto_popup/bullet.png
3.02 KB
app/gui/oven_control/images/auto_popup/bullet_selected.png
2.87 KB
app/gui/oven_control/images/auto_popup/button.png
7.57 KB
app/gui/oven_control/images/auto_popup/button_ov.png
9.28 KB
app/gui/oven_control/images/auto_popup/next.png
3.4 KB
app/gui/oven_control/images/auto_popup/next_ov.png
3.46 KB
app/gui/oven_control/images/auto_popup/pannel.png
33.1 KB
app/gui/oven_control/images/auto_popup/prev.png
3.44 KB
app/gui/oven_control/images/auto_popup/prev_ov.png
3.41 KB
app/gui/oven_control/images/symbol/demo.png
7.87 KB
app/gui/oven_control/images/symbol/half_energy.png
6.41 KB
app/gui/oven_control/oven_control.pro
... | ... | @@ -118,7 +118,8 @@ SOURCES += main.cpp\ |
118 | 118 | reservedtimepopup.cpp \ |
119 | 119 | configdoormonitoring.cpp \ |
120 | 120 | config1digitsetandenablesetdlg.cpp \ |
121 | - slider.cpp | |
121 | + slider.cpp \ | |
122 | + autocookselectionpopup.cpp | |
122 | 123 | |
123 | 124 | HEADERS += mainwindow.h \ |
124 | 125 | cook.h \ |
... | ... | @@ -226,7 +227,8 @@ HEADERS += mainwindow.h \ |
226 | 227 | reservedtimepopup.h \ |
227 | 228 | configdoormonitoring.h \ |
228 | 229 | config1digitsetandenablesetdlg.h \ |
229 | - slider.h | |
230 | + slider.h \ | |
231 | + autocookselectionpopup.h | |
230 | 232 | |
231 | 233 | FORMS += mainwindow.ui \ |
232 | 234 | manualcookwindow.ui \ |
... | ... | @@ -300,7 +302,8 @@ FORMS += mainwindow.ui \ |
300 | 302 | reservetimepopup.ui \ |
301 | 303 | reservedtimepopup.ui \ |
302 | 304 | configdoormonitoring.ui \ |
303 | - config1digitsetandenablesetdlg.ui | |
305 | + config1digitsetandenablesetdlg.ui \ | |
306 | + autocookselectionpopup.ui | |
304 | 307 | |
305 | 308 | RESOURCES += \ |
306 | 309 | resources.qrc | ... | ... |
app/gui/oven_control/resources.qrc
... | ... | @@ -572,5 +572,17 @@ |
572 | 572 | <file>images/config/pannel_fav.png</file> |
573 | 573 | <file>images/config/pannel_fav_ov.png</file> |
574 | 574 | <file>images/etc/main_btn_04_ov.png</file> |
575 | + <file>images/auto_popup/background.png</file> | |
576 | + <file>images/auto_popup/bullet.png</file> | |
577 | + <file>images/auto_popup/bullet_selected.png</file> | |
578 | + <file>images/auto_popup/button.png</file> | |
579 | + <file>images/auto_popup/button_ov.png</file> | |
580 | + <file>images/auto_popup/next.png</file> | |
581 | + <file>images/auto_popup/next_ov.png</file> | |
582 | + <file>images/auto_popup/pannel.png</file> | |
583 | + <file>images/auto_popup/prev.png</file> | |
584 | + <file>images/auto_popup/prev_ov.png</file> | |
585 | + <file>images/symbol/demo.png</file> | |
586 | + <file>images/symbol/half_energy.png</file> | |
575 | 587 | </qresource> |
576 | 588 | </RCC> | ... | ... |