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,6 +11,7 @@ | ||
11 | #include "configwindow.h" | 11 | #include "configwindow.h" |
12 | #include "washwindow.h" | 12 | #include "washwindow.h" |
13 | #include "mainwindow.h" | 13 | #include "mainwindow.h" |
14 | +#include "autocookselectionpopup.h" | ||
14 | 15 | ||
15 | AutoCookConfigWindow::AutoCookConfigWindow(QWidget *parent, Cook cook) : | 16 | AutoCookConfigWindow::AutoCookConfigWindow(QWidget *parent, Cook cook) : |
16 | QMainWindow(parent), | 17 | QMainWindow(parent), |
@@ -63,6 +64,9 @@ AutoCookConfigWindow::AutoCookConfigWindow(QWidget *parent, Cook cook) : | @@ -63,6 +64,9 @@ AutoCookConfigWindow::AutoCookConfigWindow(QWidget *parent, Cook cook) : | ||
63 | ui->configSlider_5 | 64 | ui->configSlider_5 |
64 | }); | 65 | }); |
65 | 66 | ||
67 | + foreach (Slider *s, findChildren<Slider *>()) | ||
68 | + connect(s, SIGNAL(sliderMoved(int)), SLOT(updateConfig())); | ||
69 | + | ||
66 | setupUi(); | 70 | setupUi(); |
67 | 71 | ||
68 | afterThreeSecsTimer.setSingleShot(true); | 72 | afterThreeSecsTimer.setSingleShot(true); |
@@ -75,8 +79,6 @@ AutoCookConfigWindow::AutoCookConfigWindow(QWidget *parent, Cook cook) : | @@ -75,8 +79,6 @@ AutoCookConfigWindow::AutoCookConfigWindow(QWidget *parent, Cook cook) : | ||
75 | foreach (QWidget *w, findChildren<QWidget *>()) | 79 | foreach (QWidget *w, findChildren<QWidget *>()) |
76 | w->installEventFilter(this); | 80 | w->installEventFilter(this); |
77 | 81 | ||
78 | - installEventFilter(this); | ||
79 | - | ||
80 | setFocus(); | 82 | setFocus(); |
81 | 83 | ||
82 | afterThreeSecsTimer.start(); | 84 | afterThreeSecsTimer.start(); |
@@ -162,6 +164,22 @@ void AutoCookConfigWindow::afterThreeSecs() | @@ -162,6 +164,22 @@ void AutoCookConfigWindow::afterThreeSecs() | ||
162 | start(); | 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 | void AutoCookConfigWindow::onEncoderLeft() | 183 | void AutoCookConfigWindow::onEncoderLeft() |
166 | { | 184 | { |
167 | focusPreviousChild(); | 185 | focusPreviousChild(); |
@@ -222,6 +240,12 @@ void AutoCookConfigWindow::setupUi() | @@ -222,6 +240,12 @@ void AutoCookConfigWindow::setupUi() | ||
222 | else | 240 | else |
223 | { | 241 | { |
224 | ConfigWidget cw = configWidgets.at(idx); | 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 | cw.button->setStyleSheet( | 249 | cw.button->setStyleSheet( |
226 | "QPushButton { image: url(" | 250 | "QPushButton { image: url(" |
227 | + Define::icon(config.type) | 251 | + Define::icon(config.type) |
@@ -254,8 +278,6 @@ void AutoCookConfigWindow::setupUi() | @@ -254,8 +278,6 @@ void AutoCookConfigWindow::setupUi() | ||
254 | cw.slider->setValue(config.current); | 278 | cw.slider->setValue(config.current); |
255 | cw.slider->blockSignals(false); | 279 | cw.slider->blockSignals(false); |
256 | cw.slider->bigTickInterval = 1; | 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,6 +331,7 @@ void AutoCookConfigWindow::start() | ||
309 | w->raise(); | 331 | w->raise(); |
310 | 332 | ||
311 | connect(w, SIGNAL(back()), &afterThreeSecsTimer, SLOT(start())); | 333 | connect(w, SIGNAL(back()), &afterThreeSecsTimer, SLOT(start())); |
334 | + connect(w, SIGNAL(newWindow(AutoCookWindow*)), SLOT(connectNewWindow(AutoCookWindow*))); | ||
312 | } | 335 | } |
313 | 336 | ||
314 | void AutoCookConfigWindow::addFavorite() | 337 | void AutoCookConfigWindow::addFavorite() |
@@ -386,3 +409,19 @@ void AutoCookConfigWindow::on_configButton_5_clicked() | @@ -386,3 +409,19 @@ void AutoCookConfigWindow::on_configButton_5_clicked() | ||
386 | { | 409 | { |
387 | ui->configSlider_5->setFocus(); | 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,6 +11,7 @@ | ||
11 | //#include "cook.h" | 11 | //#include "cook.h" |
12 | #include "cookbook.h" | 12 | #include "cookbook.h" |
13 | #include "slider.h" | 13 | #include "slider.h" |
14 | +#include "autocookwindow.h" | ||
14 | 15 | ||
15 | namespace Ui { | 16 | namespace Ui { |
16 | class AutoCookConfigWindow; | 17 | class AutoCookConfigWindow; |
@@ -60,6 +61,8 @@ private slots: | @@ -60,6 +61,8 @@ private slots: | ||
60 | void start(); | 61 | void start(); |
61 | void addFavorite(); | 62 | void addFavorite(); |
62 | void afterThreeSecs(); | 63 | void afterThreeSecs(); |
64 | + void changeCook(Cook cook); | ||
65 | + void connectNewWindow(AutoCookWindow *w); | ||
63 | 66 | ||
64 | void on_backButton_clicked(); | 67 | void on_backButton_clicked(); |
65 | void on_configButton_clicked(); | 68 | void on_configButton_clicked(); |
@@ -70,6 +73,7 @@ private slots: | @@ -70,6 +73,7 @@ private slots: | ||
70 | void on_configButton_3_clicked(); | 73 | void on_configButton_3_clicked(); |
71 | void on_configButton_4_clicked(); | 74 | void on_configButton_4_clicked(); |
72 | void on_configButton_5_clicked(); | 75 | void on_configButton_5_clicked(); |
76 | + void on_selectCookButton_clicked(); | ||
73 | }; | 77 | }; |
74 | 78 | ||
75 | #endif // AUTOCOOKCONFIGWINDOW_H | 79 | #endif // AUTOCOOKCONFIGWINDOW_H |
app/gui/oven_control/autocookselectionpopup.cpp
@@ -0,0 +1,178 @@ | @@ -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 @@ | @@ -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 @@ | @@ -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,6 +14,7 @@ | ||
14 | #include "mainwindow.h" | 14 | #include "mainwindow.h" |
15 | #include "config.h" | 15 | #include "config.h" |
16 | #include "errorpopupdlg.h" | 16 | #include "errorpopupdlg.h" |
17 | +#include "autocookselectionpopup.h" | ||
17 | 18 | ||
18 | AutoCookWindow::AutoCookWindow(QWidget *parent, Cook cook) : | 19 | AutoCookWindow::AutoCookWindow(QWidget *parent, Cook cook) : |
19 | QMainWindow(parent), | 20 | QMainWindow(parent), |
@@ -667,6 +668,8 @@ void AutoCookWindow::startProcess(int process) | @@ -667,6 +668,8 @@ void AutoCookWindow::startProcess(int process) | ||
667 | w->showFullScreen(); | 668 | w->showFullScreen(); |
668 | w->raise(); | 669 | w->raise(); |
669 | 670 | ||
671 | + emit newWindow(w); | ||
672 | + | ||
670 | break; | 673 | break; |
671 | } | 674 | } |
672 | case Define::MakeCrisper: | 675 | case Define::MakeCrisper: |
@@ -739,6 +742,18 @@ void AutoCookWindow::checkProcess() | @@ -739,6 +742,18 @@ void AutoCookWindow::checkProcess() | ||
739 | updateView(); | 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 | void AutoCookWindow::returnToCurrentStep() | 757 | void AutoCookWindow::returnToCurrentStep() |
743 | { | 758 | { |
744 | selectedStepIndex = autocook.currentStepIndex; | 759 | selectedStepIndex = autocook.currentStepIndex; |
@@ -904,7 +919,14 @@ void AutoCookWindow::monitor() | @@ -904,7 +919,14 @@ void AutoCookWindow::monitor() | ||
904 | 919 | ||
905 | void AutoCookWindow::on_selectCookButton_clicked() | 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 | void AutoCookWindow::on_homeButton_clicked() | 932 | void AutoCookWindow::on_homeButton_clicked() |
app/gui/oven_control/autocookwindow.h
@@ -92,6 +92,7 @@ private slots: | @@ -92,6 +92,7 @@ private slots: | ||
92 | void checkCook(); | 92 | void checkCook(); |
93 | void startProcess(int process); | 93 | void startProcess(int process); |
94 | void checkProcess(); | 94 | void checkProcess(); |
95 | + void changeCook(Cook cook); | ||
95 | 96 | ||
96 | void returnToCurrentStep(); | 97 | void returnToCurrentStep(); |
97 | void showCurrentHumidity(); | 98 | void showCurrentHumidity(); |
@@ -120,6 +121,7 @@ private slots: | @@ -120,6 +121,7 @@ private slots: | ||
120 | 121 | ||
121 | signals: | 122 | signals: |
122 | void back(); | 123 | void back(); |
124 | + void newWindow(AutoCookWindow *); | ||
123 | }; | 125 | }; |
124 | 126 | ||
125 | #endif // AUTOCOOKWINDOW_H | 127 | #endif // AUTOCOOKWINDOW_H |
app/gui/oven_control/bulletindicator.cpp
@@ -26,7 +26,7 @@ BulletIndicator::BulletIndicator(QWidget *parent) : QWidget(parent) | @@ -26,7 +26,7 @@ BulletIndicator::BulletIndicator(QWidget *parent) : QWidget(parent) | ||
26 | updatePosition(); | 26 | updatePosition(); |
27 | } | 27 | } |
28 | 28 | ||
29 | -void BulletIndicator::setBulletPixmap(QPixmap &pixmap) | 29 | +void BulletIndicator::setBulletPixmap(const QPixmap &pixmap) |
30 | { | 30 | { |
31 | bulletPixmap = pixmap; | 31 | bulletPixmap = pixmap; |
32 | 32 | ||
@@ -39,7 +39,13 @@ void BulletIndicator::setBulletPixmap(QPixmap &pixmap) | @@ -39,7 +39,13 @@ void BulletIndicator::setBulletPixmap(QPixmap &pixmap) | ||
39 | updatePosition(); | 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 | currentBulletPixmap = pixmap; | 50 | currentBulletPixmap = pixmap; |
45 | 51 | ||
@@ -50,6 +56,12 @@ void BulletIndicator::setCurrentBulletPixmap(QPixmap &pixmap) | @@ -50,6 +56,12 @@ void BulletIndicator::setCurrentBulletPixmap(QPixmap &pixmap) | ||
50 | updatePosition(); | 56 | updatePosition(); |
51 | } | 57 | } |
52 | 58 | ||
59 | +void BulletIndicator::setCurrentBulletPixmap(const QString &path) | ||
60 | +{ | ||
61 | + QPixmap pix(path); | ||
62 | + setCurrentBulletPixmap(pix); | ||
63 | +} | ||
64 | + | ||
53 | void BulletIndicator::setCurrentIndex(int index) | 65 | void BulletIndicator::setCurrentIndex(int index) |
54 | { | 66 | { |
55 | if (index == cur || index < 0 || index > max) | 67 | if (index == cur || index < 0 || index > max) |
@@ -65,7 +77,7 @@ void BulletIndicator::setCurrentIndex(int index) | @@ -65,7 +77,7 @@ void BulletIndicator::setCurrentIndex(int index) | ||
65 | 77 | ||
66 | void BulletIndicator::setMaximum(int maximum) | 78 | void BulletIndicator::setMaximum(int maximum) |
67 | { | 79 | { |
68 | - if (maximum == max || maximum < 1) | 80 | + if (maximum == max || maximum < 0) |
69 | return; | 81 | return; |
70 | 82 | ||
71 | if (bullets.size() <= maximum) | 83 | if (bullets.size() <= maximum) |
@@ -82,23 +94,11 @@ void BulletIndicator::setMaximum(int maximum) | @@ -82,23 +94,11 @@ void BulletIndicator::setMaximum(int maximum) | ||
82 | } | 94 | } |
83 | 95 | ||
84 | if (maximum > max) | 96 | if (maximum > max) |
85 | - { | ||
86 | for (int i = max + 1; i <= maximum; i++) | 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 | else if (maximum < max) | 99 | else if (maximum < max) |
94 | - { | ||
95 | for (int i = maximum + 1; i <= max; i++) | 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 | max = maximum; | 103 | max = maximum; |
104 | 104 |
app/gui/oven_control/bulletindicator.h
@@ -10,8 +10,10 @@ class BulletIndicator : public QWidget | @@ -10,8 +10,10 @@ class BulletIndicator : public QWidget | ||
10 | public: | 10 | public: |
11 | explicit BulletIndicator(QWidget *parent = 0); | 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 | int maximum() { return max; } | 18 | int maximum() { return max; } |
17 | int currentIndex() { return cur; } | 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,7 +118,8 @@ SOURCES += main.cpp\ | ||
118 | reservedtimepopup.cpp \ | 118 | reservedtimepopup.cpp \ |
119 | configdoormonitoring.cpp \ | 119 | configdoormonitoring.cpp \ |
120 | config1digitsetandenablesetdlg.cpp \ | 120 | config1digitsetandenablesetdlg.cpp \ |
121 | - slider.cpp | 121 | + slider.cpp \ |
122 | + autocookselectionpopup.cpp | ||
122 | 123 | ||
123 | HEADERS += mainwindow.h \ | 124 | HEADERS += mainwindow.h \ |
124 | cook.h \ | 125 | cook.h \ |
@@ -226,7 +227,8 @@ HEADERS += mainwindow.h \ | @@ -226,7 +227,8 @@ HEADERS += mainwindow.h \ | ||
226 | reservedtimepopup.h \ | 227 | reservedtimepopup.h \ |
227 | configdoormonitoring.h \ | 228 | configdoormonitoring.h \ |
228 | config1digitsetandenablesetdlg.h \ | 229 | config1digitsetandenablesetdlg.h \ |
229 | - slider.h | 230 | + slider.h \ |
231 | + autocookselectionpopup.h | ||
230 | 232 | ||
231 | FORMS += mainwindow.ui \ | 233 | FORMS += mainwindow.ui \ |
232 | manualcookwindow.ui \ | 234 | manualcookwindow.ui \ |
@@ -300,7 +302,8 @@ FORMS += mainwindow.ui \ | @@ -300,7 +302,8 @@ FORMS += mainwindow.ui \ | ||
300 | reservetimepopup.ui \ | 302 | reservetimepopup.ui \ |
301 | reservedtimepopup.ui \ | 303 | reservedtimepopup.ui \ |
302 | configdoormonitoring.ui \ | 304 | configdoormonitoring.ui \ |
303 | - config1digitsetandenablesetdlg.ui | 305 | + config1digitsetandenablesetdlg.ui \ |
306 | + autocookselectionpopup.ui | ||
304 | 307 | ||
305 | RESOURCES += \ | 308 | RESOURCES += \ |
306 | resources.qrc | 309 | resources.qrc |
app/gui/oven_control/resources.qrc
@@ -572,5 +572,17 @@ | @@ -572,5 +572,17 @@ | ||
572 | <file>images/config/pannel_fav.png</file> | 572 | <file>images/config/pannel_fav.png</file> |
573 | <file>images/config/pannel_fav_ov.png</file> | 573 | <file>images/config/pannel_fav_ov.png</file> |
574 | <file>images/etc/main_btn_04_ov.png</file> | 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 | </qresource> | 587 | </qresource> |
576 | </RCC> | 588 | </RCC> |