Commit 0ce283850eaeba1c59803c9ba388757ef3dee25f
1 parent
262c52a2a9
Exists in
master
and in
2 other branches
로터리 엔코더 임시 구현
Showing
3 changed files
with
80 additions
and
16 deletions
Show diff stats
app/gui/oven_control/mainwindow.cpp
... | ... | @@ -3,6 +3,7 @@ |
3 | 3 | |
4 | 4 | #include <QtDebug> |
5 | 5 | #include <QSignalMapper> |
6 | +#include <QKeyEvent> | |
6 | 7 | |
7 | 8 | #include "abstractoveninterface.h" |
8 | 9 | #include "manualcookwindow.h" |
... | ... | @@ -20,6 +21,8 @@ MainWindow::MainWindow(QWidget *parent) : |
20 | 21 | ui(new Ui::MainWindow) |
21 | 22 | { |
22 | 23 | ui->setupUi(this); |
24 | + | |
25 | + setFocus(); | |
23 | 26 | } |
24 | 27 | |
25 | 28 | MainWindow::~MainWindow() |
... | ... | @@ -27,6 +30,45 @@ MainWindow::~MainWindow() |
27 | 30 | delete ui; |
28 | 31 | } |
29 | 32 | |
33 | +static QPushButton *pushedChild = NULL; | |
34 | + | |
35 | +void MainWindow::keyPressEvent(QKeyEvent *event) | |
36 | +{ | |
37 | + switch (event->key()) | |
38 | + { | |
39 | + case 0x01000030: // Turn left | |
40 | + focusPreviousChild(); | |
41 | + break; | |
42 | + case 0x01000031: // Push | |
43 | + if (focusWidget() != this) | |
44 | + pushedChild = static_cast<QPushButton *>(focusWidget()); | |
45 | + break; | |
46 | + case 0x01000032: // Turn right | |
47 | + focusNextChild(); | |
48 | + break; | |
49 | + } | |
50 | +} | |
51 | + | |
52 | +void MainWindow::keyReleaseEvent(QKeyEvent *event) | |
53 | +{ | |
54 | + switch (event->key()) | |
55 | + { | |
56 | + case 0x01000030: // Turn left | |
57 | + focusPreviousChild(); | |
58 | + break; | |
59 | + case 0x01000031: // Push | |
60 | + if (focusWidget() == pushedChild) | |
61 | + pushedChild->click(); | |
62 | + | |
63 | + setFocus(); | |
64 | + pushedChild = NULL; | |
65 | + break; | |
66 | + case 0x01000032: // Turn right | |
67 | + focusNextChild(); | |
68 | + break; | |
69 | + } | |
70 | +} | |
71 | + | |
30 | 72 | void MainWindow::showManualCookWindow(Define::Mode mode) |
31 | 73 | { |
32 | 74 | ManualCookWindow *w = new ManualCookWindow(this, mode); | ... | ... |
app/gui/oven_control/mainwindow.h
... | ... | @@ -18,6 +18,10 @@ public: |
18 | 18 | explicit MainWindow(QWidget *parent = 0); |
19 | 19 | ~MainWindow(); |
20 | 20 | |
21 | +protected: | |
22 | + void keyPressEvent(QKeyEvent *event); | |
23 | + void keyReleaseEvent(QKeyEvent *event); | |
24 | + | |
21 | 25 | private slots: |
22 | 26 | void showManualCookWindow(Define::Mode mode); |
23 | 27 | void showAutoCookSelectionWindow(Define::CookType type); | ... | ... |
app/gui/oven_control/mainwindow.ui
... | ... | @@ -117,7 +117,7 @@ font-size: 30px; |
117 | 117 | </property> |
118 | 118 | <property name="styleSheet"> |
119 | 119 | <string notr="true">QPushButton { border-image: url(:/images/bottom_bar/config.png); } |
120 | -QPushButton:pressed { border-image: url(:/images/bottom_bar/config_ov.png); }</string> | |
120 | +QPushButton:pressed, QPushButton:focus { border-image: url(:/images/bottom_bar/config_ov.png); }</string> | |
121 | 121 | </property> |
122 | 122 | <property name="text"> |
123 | 123 | <string/> |
... | ... | @@ -146,7 +146,7 @@ QPushButton:pressed { border-image: url(:/images/bottom_bar/config_ov.png); }</s |
146 | 146 | </property> |
147 | 147 | <property name="styleSheet"> |
148 | 148 | <string notr="true">QPushButton { border-image: url(:/images/bottom_bar/help.png); } |
149 | -QPushButton:pressed { border-image: url(:/images/bottom_bar/help_ov.png); }</string> | |
149 | +QPushButton:pressed, QPushButton:focus { border-image: url(:/images/bottom_bar/help_ov.png); }</string> | |
150 | 150 | </property> |
151 | 151 | <property name="text"> |
152 | 152 | <string/> |
... | ... | @@ -170,7 +170,7 @@ QPushButton:pressed { border-image: url(:/images/bottom_bar/help_ov.png); }</str |
170 | 170 | </property> |
171 | 171 | <property name="styleSheet"> |
172 | 172 | <string notr="true">QPushButton { background-image: url(:/images/main_button/multi.png); } |
173 | -QPushButton:pressed { background-image: url(:/images/main_button/multi_ov.png); }</string> | |
173 | +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/main_button/multi_ov.png); }</string> | |
174 | 174 | </property> |
175 | 175 | <property name="text"> |
176 | 176 | <string>다중요리</string> |
... | ... | @@ -196,7 +196,7 @@ QPushButton:pressed { background-image: url(:/images/main_button/multi_ov.png); |
196 | 196 | </property> |
197 | 197 | <property name="styleSheet"> |
198 | 198 | <string notr="true">QPushButton { background-image: url(:/images/main_button/custom.png); } |
199 | -QPushButton:pressed { background-image: url(:/images/main_button/custom_ov.png); }</string> | |
199 | +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/main_button/custom_ov.png); }</string> | |
200 | 200 | </property> |
201 | 201 | <property name="text"> |
202 | 202 | <string>프로그래밍모드</string> |
... | ... | @@ -222,7 +222,7 @@ QPushButton:pressed { background-image: url(:/images/main_button/custom_ov.png); |
222 | 222 | </property> |
223 | 223 | <property name="styleSheet"> |
224 | 224 | <string notr="true">QPushButton { background-image: url(:/images/main_button/wash.png); } |
225 | -QPushButton:pressed { background-image: url(:/images/main_button/wash_ov.png); }</string> | |
225 | +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/main_button/wash_ov.png); }</string> | |
226 | 226 | </property> |
227 | 227 | <property name="text"> |
228 | 228 | <string>세척모드</string> |
... | ... | @@ -320,7 +320,7 @@ QPushButton:pressed { background-image: url(:/images/main_button/wash_ov.png); } |
320 | 320 | </property> |
321 | 321 | <property name="styleSheet"> |
322 | 322 | <string notr="true">QPushButton { background-image: url(:/images/cook_mode/big_dryheat.png); } |
323 | -QPushButton:pressed { background-image: url(:/images/cook_mode/big_dryheat_ov.png); }</string> | |
323 | +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/cook_mode/big_dryheat_ov.png); }</string> | |
324 | 324 | </property> |
325 | 325 | <property name="text"> |
326 | 326 | <string>건열</string> |
... | ... | @@ -340,7 +340,7 @@ QPushButton:pressed { background-image: url(:/images/cook_mode/big_dryheat_ov.pn |
340 | 340 | </property> |
341 | 341 | <property name="styleSheet"> |
342 | 342 | <string notr="true">QPushButton { background-image: url(:/images/cook_mode/big_combi.png); } |
343 | -QPushButton:pressed { background-image: url(:/images/cook_mode/big_combi_ov.png); }</string> | |
343 | +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/cook_mode/big_combi_ov.png); }</string> | |
344 | 344 | </property> |
345 | 345 | <property name="text"> |
346 | 346 | <string>콤비</string> |
... | ... | @@ -360,7 +360,7 @@ QPushButton:pressed { background-image: url(:/images/cook_mode/big_combi_ov.png) |
360 | 360 | </property> |
361 | 361 | <property name="styleSheet"> |
362 | 362 | <string notr="true">QPushButton { background-image: url(:/images/cook_mode/big_steam.png); } |
363 | -QPushButton:pressed { background-image: url(:/images/cook_mode/big_steam_ov.png); }</string> | |
363 | +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/cook_mode/big_steam_ov.png); }</string> | |
364 | 364 | </property> |
365 | 365 | <property name="text"> |
366 | 366 | <string>스팀</string> |
... | ... | @@ -386,7 +386,7 @@ QPushButton:pressed { background-image: url(:/images/cook_mode/big_steam_ov.png) |
386 | 386 | </property> |
387 | 387 | <property name="styleSheet"> |
388 | 388 | <string notr="true">QPushButton { background-image: url(:/images/cook_type/meat.png); } |
389 | -QPushButton:pressed { background-image: url(:/images/cook_type/meat_ov.png); }</string> | |
389 | +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/cook_type/meat_ov.png); }</string> | |
390 | 390 | </property> |
391 | 391 | <property name="text"> |
392 | 392 | <string>육류</string> |
... | ... | @@ -412,7 +412,7 @@ QPushButton:pressed { background-image: url(:/images/cook_type/meat_ov.png); }</ |
412 | 412 | </property> |
413 | 413 | <property name="styleSheet"> |
414 | 414 | <string notr="true">QPushButton { background-image: url(:/images/cook_type/desert.png); } |
415 | -QPushButton:pressed { background-image: url(:/images/cook_type/desert_ov.png); }</string> | |
415 | +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/cook_type/desert_ov.png); }</string> | |
416 | 416 | </property> |
417 | 417 | <property name="text"> |
418 | 418 | <string>디저트류</string> |
... | ... | @@ -438,7 +438,7 @@ QPushButton:pressed { background-image: url(:/images/cook_type/desert_ov.png); } |
438 | 438 | </property> |
439 | 439 | <property name="styleSheet"> |
440 | 440 | <string notr="true">QPushButton { background-image: url(:/images/cook_type/etc.png); } |
441 | -QPushButton:pressed { background-image: url(:/images/cook_type/etc_ov.png); }</string> | |
441 | +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/cook_type/etc_ov.png); }</string> | |
442 | 442 | </property> |
443 | 443 | <property name="text"> |
444 | 444 | <string>기타요리</string> |
... | ... | @@ -464,7 +464,7 @@ QPushButton:pressed { background-image: url(:/images/cook_type/etc_ov.png); }</s |
464 | 464 | </property> |
465 | 465 | <property name="styleSheet"> |
466 | 466 | <string notr="true">QPushButton { background-image: url(:/images/cook_type/vegetable.png); } |
467 | -QPushButton:pressed { background-image: url(:/images/cook_type/vegetable_ov.png); }</string> | |
467 | +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/cook_type/vegetable_ov.png); }</string> | |
468 | 468 | </property> |
469 | 469 | <property name="text"> |
470 | 470 | <string>채소및곡류</string> |
... | ... | @@ -490,7 +490,7 @@ QPushButton:pressed { background-image: url(:/images/cook_type/vegetable_ov.png) |
490 | 490 | </property> |
491 | 491 | <property name="styleSheet"> |
492 | 492 | <string notr="true">QPushButton { background-image: url(:/images/cook_type/poultry.png); } |
493 | -QPushButton:pressed { background-image: url(:/images/cook_type/poultry_ov.png); }</string> | |
493 | +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/cook_type/poultry_ov.png); }</string> | |
494 | 494 | </property> |
495 | 495 | <property name="text"> |
496 | 496 | <string>가금류</string> |
... | ... | @@ -516,7 +516,7 @@ QPushButton:pressed { background-image: url(:/images/cook_type/poultry_ov.png); |
516 | 516 | </property> |
517 | 517 | <property name="styleSheet"> |
518 | 518 | <string notr="true">QPushButton { background-image: url(:/images/cook_type/fish.png); } |
519 | -QPushButton:pressed { background-image: url(:/images/cook_type/fish_ov.png); }</string> | |
519 | +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/cook_type/fish_ov.png); }</string> | |
520 | 520 | </property> |
521 | 521 | <property name="text"> |
522 | 522 | <string>생선류</string> |
... | ... | @@ -542,7 +542,7 @@ QPushButton:pressed { background-image: url(:/images/cook_type/fish_ov.png); }</ |
542 | 542 | </property> |
543 | 543 | <property name="styleSheet"> |
544 | 544 | <string notr="true">QPushButton { background-image: url(:/images/cook_type/bread.png); } |
545 | -QPushButton:pressed { background-image: url(:/images/cook_type/bread_ov.png); }</string> | |
545 | +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/cook_type/bread_ov.png); }</string> | |
546 | 546 | </property> |
547 | 547 | <property name="text"> |
548 | 548 | <string>제과제빵류</string> |
... | ... | @@ -568,7 +568,7 @@ QPushButton:pressed { background-image: url(:/images/cook_type/bread_ov.png); }< |
568 | 568 | </property> |
569 | 569 | <property name="styleSheet"> |
570 | 570 | <string notr="true">QPushButton { background-image: url(:/images/cook_type/additional.png); } |
571 | -QPushButton:pressed { background-image: url(:/images/cook_type/additional_ov.png); }</string> | |
571 | +QPushButton:pressed, QPushButton:focus { background-image: url(:/images/cook_type/additional_ov.png); }</string> | |
572 | 572 | </property> |
573 | 573 | <property name="text"> |
574 | 574 | <string>부가기능</string> |
... | ... | @@ -689,6 +689,24 @@ QPushButton:pressed { background-image: url(:/images/cook_type/additional_ov.png |
689 | 689 | <container>1</container> |
690 | 690 | </customwidget> |
691 | 691 | </customwidgets> |
692 | + <tabstops> | |
693 | + <tabstop>steamButton</tabstop> | |
694 | + <tabstop>combiButton</tabstop> | |
695 | + <tabstop>dryheatButton</tabstop> | |
696 | + <tabstop>poultryButton</tabstop> | |
697 | + <tabstop>meatButton</tabstop> | |
698 | + <tabstop>fishButton</tabstop> | |
699 | + <tabstop>dessertButton</tabstop> | |
700 | + <tabstop>grainButton</tabstop> | |
701 | + <tabstop>breadButton</tabstop> | |
702 | + <tabstop>etcButton</tabstop> | |
703 | + <tabstop>primeButton</tabstop> | |
704 | + <tabstop>multiButton</tabstop> | |
705 | + <tabstop>programmingButton</tabstop> | |
706 | + <tabstop>washButton</tabstop> | |
707 | + <tabstop>configButton</tabstop> | |
708 | + <tabstop>helpButton</tabstop> | |
709 | + </tabstops> | |
692 | 710 | <resources/> |
693 | 711 | <connections/> |
694 | 712 | </ui> | ... | ... |