Commit 80c5eb48bc4f8b21fcb56ed8e8cf8c8974611dcf
1 parent
ec04831f57
Exists in
master
and in
2 other branches
configwindow 엔코더 1차 적용
- 자동 방법 사용
Showing
7 changed files
with
186 additions
and
6 deletions
Show diff stats
app/gui/oven_control/configpanelbutton.cpp
| ... | ... | @@ -4,6 +4,7 @@ |
| 4 | 4 | #include <QPixmap> |
| 5 | 5 | #include <QPainter> |
| 6 | 6 | #include <QDebug> |
| 7 | +#include <QFocusEvent> | |
| 7 | 8 | |
| 8 | 9 | #include "soundplayer.h" |
| 9 | 10 | |
| ... | ... | @@ -35,6 +36,11 @@ ConfigPanelButton::~ConfigPanelButton() |
| 35 | 36 | delete ui; |
| 36 | 37 | } |
| 37 | 38 | |
| 39 | +bool ConfigPanelButton::isFavoriteFocused() | |
| 40 | +{ | |
| 41 | + return (focusWidget() == ui->favoriteButton); | |
| 42 | +} | |
| 43 | + | |
| 38 | 44 | void ConfigPanelButton::setText(const QString &text) |
| 39 | 45 | { |
| 40 | 46 | if (text_ == text) |
| ... | ... | @@ -107,6 +113,19 @@ void ConfigPanelButton::setFavoriteCheck(bool checked){ |
| 107 | 113 | ui->favoriteButton->setChecked(checked); |
| 108 | 114 | } |
| 109 | 115 | |
| 116 | +void ConfigPanelButton::focusInEvent(QFocusEvent *event) | |
| 117 | +{ | |
| 118 | + switch (event->reason()) | |
| 119 | + { | |
| 120 | + case Qt::TabFocusReason: | |
| 121 | + ui->pushButton->setFocus(); | |
| 122 | + break; | |
| 123 | + case Qt::BacktabFocusReason: | |
| 124 | + ui->favoriteButton->setFocus(); | |
| 125 | + break; | |
| 126 | + } | |
| 127 | +} | |
| 128 | + | |
| 110 | 129 | void ConfigPanelButton::on_favoriteButton_clicked(bool checked) |
| 111 | 130 | { |
| 112 | 131 | emit checkButtonClicked(btnid,checked); | ... | ... |
app/gui/oven_control/configpanelbutton.h
| ... | ... | @@ -18,6 +18,8 @@ public: |
| 18 | 18 | const QString &text() { return text_; } |
| 19 | 19 | const QString &value() { return value_; } |
| 20 | 20 | |
| 21 | + bool isFavoriteFocused(); | |
| 22 | + | |
| 21 | 23 | public slots: |
| 22 | 24 | void setText(const QString &text); |
| 23 | 25 | void setValue(const QString &value); |
| ... | ... | @@ -26,6 +28,9 @@ public slots: |
| 26 | 28 | bool isFavoriteChecked(); |
| 27 | 29 | void setFavoriteCheck(bool checked); |
| 28 | 30 | |
| 31 | +protected: | |
| 32 | + void focusInEvent(QFocusEvent *event); | |
| 33 | + | |
| 29 | 34 | private: |
| 30 | 35 | Ui::ConfigPanelButton *ui; |
| 31 | 36 | ... | ... |
app/gui/oven_control/configpanelbutton.ui
| ... | ... | @@ -81,11 +81,11 @@ QPushButton:focus { background-image: url(:/images/config/pannel_ov.png); }</str |
| 81 | 81 | </rect> |
| 82 | 82 | </property> |
| 83 | 83 | <property name="focusPolicy"> |
| 84 | - <enum>Qt::NoFocus</enum> | |
| 84 | + <enum>Qt::TabFocus</enum> | |
| 85 | 85 | </property> |
| 86 | 86 | <property name="styleSheet"> |
| 87 | 87 | <string notr="true">QPushButton { background-image: url(:/images/config/088_fava_02.png); } |
| 88 | -QPushButton:checked { background-image: url(:/images/config/088_fava_01.png); }</string> | |
| 88 | +QPushButton:checked, QPushButton:focus { background-image: url(:/images/config/088_fava_01.png); }</string> | |
| 89 | 89 | </property> |
| 90 | 90 | <property name="text"> |
| 91 | 91 | <string/> | ... | ... |
app/gui/oven_control/configwindow.cpp
| ... | ... | @@ -59,6 +59,137 @@ void ConfigWindow::on_pushButton_clicked() |
| 59 | 59 | } |
| 60 | 60 | } |
| 61 | 61 | |
| 62 | +void ConfigWindow::prevFocus(){ | |
| 63 | + if(focusWidget() == ui->helpButton) { | |
| 64 | + qDebug() << "help"; | |
| 65 | + ui->washButton->setFocus(); | |
| 66 | + } | |
| 67 | + else if(focusWidget() == ui->washButton){ | |
| 68 | + ui->backButton->setFocus(); | |
| 69 | + } | |
| 70 | + else if(focusWidget() == ui->backButton){ | |
| 71 | + m_vectorMenuList[m_vectorMenuList.size()-1]->setFocus(); | |
| 72 | + nextFocus(); | |
| 73 | + nextFocus(); | |
| 74 | + //prevFocus(); | |
| 75 | + //focusPreviousChild(); | |
| 76 | + //qDebug << focusWidget()->wind | |
| 77 | + } | |
| 78 | + else if(focusWidget() == ui->scrollArea){ | |
| 79 | + ui->pushButton_3->setFocus(); | |
| 80 | + } | |
| 81 | + else if(focusWidget() == ui->pushButton){ | |
| 82 | + ui->helpButton->setFocus(); | |
| 83 | + } | |
| 84 | + else if(focusWidget() == ui->pushButton_8){ | |
| 85 | + ui->pushButton->setFocus(); | |
| 86 | + } | |
| 87 | + else if(focusWidget() == ui->pushButton_7){ | |
| 88 | + ui->pushButton_8->setFocus(); | |
| 89 | + } | |
| 90 | + else if(focusWidget() == ui->pushButton_2){ | |
| 91 | + ui->pushButton_7->setFocus(); | |
| 92 | + } | |
| 93 | + else if(focusWidget() == ui->pushButton_4){ | |
| 94 | + ui->pushButton_2->setFocus(); | |
| 95 | + } | |
| 96 | + else if(focusWidget() == ui->pushButton_5){ | |
| 97 | + ui->pushButton_4->setFocus(); | |
| 98 | + } | |
| 99 | + else if(focusWidget() == ui->pushButton_6){ | |
| 100 | + ui->pushButton_5->setFocus(); | |
| 101 | + } | |
| 102 | + else if(focusWidget() == ui->pushButton_3){ | |
| 103 | + ui->pushButton_6->setFocus(); | |
| 104 | + } | |
| 105 | + else focusPreviousChild(); | |
| 106 | +} | |
| 107 | + | |
| 108 | +void ConfigWindow::nextFocus(){ | |
| 109 | + if(focusWidget() == ui->helpButton) { | |
| 110 | + qDebug() << "help"; | |
| 111 | + ui->pushButton->setFocus(); | |
| 112 | + } | |
| 113 | + else if(focusWidget() == ui->backButton){ | |
| 114 | + ui->washButton->setFocus(); | |
| 115 | + } | |
| 116 | + else if(focusWidget() == ui->washButton){ | |
| 117 | + ui->helpButton->setFocus(); | |
| 118 | + } | |
| 119 | + else if(focusWidget() == ui->pushButton){ | |
| 120 | + ui->pushButton_8->setFocus(); | |
| 121 | + } | |
| 122 | + else if(focusWidget() == ui->pushButton_8){ | |
| 123 | + ui->pushButton_7->setFocus(); | |
| 124 | + } | |
| 125 | + else if(focusWidget() == ui->pushButton_7){ | |
| 126 | + ui->pushButton_2->setFocus(); | |
| 127 | + } | |
| 128 | + else if(focusWidget() == ui->pushButton_2){ | |
| 129 | + ui->pushButton_4->setFocus(); | |
| 130 | + } | |
| 131 | + else if(focusWidget() == ui->pushButton_4){ | |
| 132 | + ui->pushButton_5->setFocus(); | |
| 133 | + } | |
| 134 | + else if(focusWidget() == ui->pushButton_5){ | |
| 135 | + ui->pushButton_6->setFocus(); | |
| 136 | + } | |
| 137 | + else if(focusWidget() == ui->pushButton_6){ | |
| 138 | + ui->pushButton_3->setFocus(); | |
| 139 | + } | |
| 140 | + else if(focusWidget() == ui->pushButton_3){ | |
| 141 | + ui->scrollArea->setFocus(); | |
| 142 | + } | |
| 143 | + else if(m_vectorMenuList[m_vectorMenuList.size() -1]->isFavoriteFocused()){ | |
| 144 | + qDebug() << "last Favorite Focused"; | |
| 145 | + ui->backButton->setFocus(); | |
| 146 | + } | |
| 147 | + else focusNextChild(); | |
| 148 | +} | |
| 149 | + | |
| 150 | +void ConfigWindow::keyReleaseEvent(QKeyEvent *event){ | |
| 151 | + switch (event->key()) | |
| 152 | + { | |
| 153 | + case 0x01000030: // Turn left | |
| 154 | + //focusPreviousChild(); | |
| 155 | + prevFocus(); | |
| 156 | + qDebug() << "turn left"; | |
| 157 | + break; | |
| 158 | + case 0x01000031: // Push | |
| 159 | + { | |
| 160 | + QPushButton *btn = qobject_cast<QPushButton*>(focusWidget()); | |
| 161 | + if(btn != NULL){ | |
| 162 | + btn->click(); | |
| 163 | + } | |
| 164 | + qDebug() << "pushed "; | |
| 165 | + break; | |
| 166 | + } | |
| 167 | + case 0x01000032: // Turn right | |
| 168 | + nextFocus(); | |
| 169 | + qDebug() << "Turn Right"; | |
| 170 | + break; | |
| 171 | + } | |
| 172 | +} | |
| 173 | + | |
| 174 | +void ConfigWindow::keyPressEvent(QKeyEvent *event){ | |
| 175 | + switch (event->key()) | |
| 176 | + { | |
| 177 | + case 0x01000030: // Turn left | |
| 178 | + //focusPreviousChild(); | |
| 179 | + prevFocus(); | |
| 180 | + qDebug() << "turn left"; | |
| 181 | + break; | |
| 182 | + case 0x01000031: // Push | |
| 183 | + | |
| 184 | + qDebug() << "pushed "; | |
| 185 | + break; | |
| 186 | + case 0x01000032: // Turn right | |
| 187 | + nextFocus(); | |
| 188 | + qDebug() << "Turn Right"; | |
| 189 | + break; | |
| 190 | + } | |
| 191 | +} | |
| 192 | + | |
| 62 | 193 | void ConfigWindow::on_backButton_clicked() |
| 63 | 194 | { |
| 64 | 195 | Config* cfg = Config::getInstance(); |
| ... | ... | @@ -187,6 +318,8 @@ void ConfigWindow::reloadUi(void){ |
| 187 | 318 | } |
| 188 | 319 | m_vectorFavorMenuList.clear(); |
| 189 | 320 | |
| 321 | + | |
| 322 | + | |
| 190 | 323 | if(m_nCurConfigPos != config_menu_favorite){ |
| 191 | 324 | for(i=0 ; i < m_arrMaxMenuCount[m_nCurConfigPos] ;i++){ |
| 192 | 325 | pcb = new ConfigPanelButton(this,m_arrConfigListInfos[m_nCurConfigPos][i]); | ... | ... |
app/gui/oven_control/configwindow.h
| ... | ... | @@ -44,6 +44,9 @@ private: |
| 44 | 44 | {config_software_info,config_hotline_chef,config_hotline_service,config_steam_wash,config_demo_mode,config_enter_engineer_mode} |
| 45 | 45 | }; |
| 46 | 46 | |
| 47 | + void nextFocus(); | |
| 48 | + void prevFocus(); | |
| 49 | + | |
| 47 | 50 | public: |
| 48 | 51 | explicit ConfigWindow(QWidget *parent = 0); |
| 49 | 52 | ~ConfigWindow(); |
| ... | ... | @@ -77,11 +80,16 @@ public slots: |
| 77 | 80 | void onConfigCheckBtnClicked(uint16_t id, bool checked); |
| 78 | 81 | void onDeleteFavoriteBtnClicked(uint16_t id); |
| 79 | 82 | |
| 83 | +protected: | |
| 84 | + void keyReleaseEvent(QKeyEvent* event); | |
| 85 | + void keyPressEvent(QKeyEvent* event); | |
| 86 | + | |
| 80 | 87 | private: |
| 81 | 88 | Ui::ConfigWindow *ui; |
| 82 | 89 | QVector<ConfigPanelButton *> m_vectorMenuList; |
| 83 | 90 | QVector<ConfigFavoriteButton*> m_vectorFavorMenuList; |
| 84 | 91 | CONFIG_MENU_POS m_nCurConfigPos; |
| 92 | + | |
| 85 | 93 | }; |
| 86 | 94 | |
| 87 | 95 | #endif // CONFIGWINDOW_H | ... | ... |
app/gui/oven_control/configwindow.ui
| ... | ... | @@ -441,7 +441,7 @@ QPushButton:pressed, QPushButton:focus ,QPushButton:checked{ background-image: u |
| 441 | 441 | </property> |
| 442 | 442 | <property name="styleSheet"> |
| 443 | 443 | <string notr="true">QPushButton { border-image: url(:/images/bottom_bar/back.png); } |
| 444 | -QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); }</string> | |
| 444 | +QPushButton:pressed, QPushButton:focus { border-image: url(:/images/bottom_bar/back_ov.png); }</string> | |
| 445 | 445 | </property> |
| 446 | 446 | <property name="text"> |
| 447 | 447 | <string/> |
| ... | ... | @@ -458,7 +458,7 @@ QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); }</str |
| 458 | 458 | </property> |
| 459 | 459 | <property name="styleSheet"> |
| 460 | 460 | <string notr="true">QPushButton { border-image: url(:/images/bottom_bar/wash.png); } |
| 461 | -QPushButton:pressed { border-image: url(:/images/bottom_bar/wash_ov.png); }</string> | |
| 461 | +QPushButton:pressed, QPushButton:focus { border-image: url(:/images/bottom_bar/wash_ov.png); }</string> | |
| 462 | 462 | </property> |
| 463 | 463 | <property name="text"> |
| 464 | 464 | <string/> |
| ... | ... | @@ -475,7 +475,7 @@ QPushButton:pressed { border-image: url(:/images/bottom_bar/wash_ov.png); }</str |
| 475 | 475 | </property> |
| 476 | 476 | <property name="styleSheet"> |
| 477 | 477 | <string notr="true">QPushButton { border-image: url(:/images/bottom_bar/help.png); } |
| 478 | -QPushButton:pressed { border-image: url(:/images/bottom_bar/help_ov.png); }</string> | |
| 478 | +QPushButton:pressed , QPushButton:focus { border-image: url(:/images/bottom_bar/help_ov.png); }</string> | |
| 479 | 479 | </property> |
| 480 | 480 | <property name="text"> |
| 481 | 481 | <string/> |
| ... | ... | @@ -491,6 +491,9 @@ QPushButton:pressed { border-image: url(:/images/bottom_bar/help_ov.png); }</str |
| 491 | 491 | <height>600</height> |
| 492 | 492 | </rect> |
| 493 | 493 | </property> |
| 494 | + <property name="focusPolicy"> | |
| 495 | + <enum>Qt::TabFocus</enum> | |
| 496 | + </property> | |
| 494 | 497 | <property name="styleSheet"> |
| 495 | 498 | <string notr="true">background-color : transparent;</string> |
| 496 | 499 | </property> |
| ... | ... | @@ -558,6 +561,19 @@ QPushButton:pressed { border-image: url(:/images/bottom_bar/help_ov.png); }</str |
| 558 | 561 | <header>washwarnicon.h</header> |
| 559 | 562 | </customwidget> |
| 560 | 563 | </customwidgets> |
| 564 | + <tabstops> | |
| 565 | + <tabstop>pushButton</tabstop> | |
| 566 | + <tabstop>backButton</tabstop> | |
| 567 | + <tabstop>pushButton_8</tabstop> | |
| 568 | + <tabstop>washButton</tabstop> | |
| 569 | + <tabstop>pushButton_7</tabstop> | |
| 570 | + <tabstop>helpButton</tabstop> | |
| 571 | + <tabstop>pushButton_2</tabstop> | |
| 572 | + <tabstop>pushButton_4</tabstop> | |
| 573 | + <tabstop>pushButton_5</tabstop> | |
| 574 | + <tabstop>pushButton_6</tabstop> | |
| 575 | + <tabstop>pushButton_3</tabstop> | |
| 576 | + </tabstops> | |
| 561 | 577 | <resources/> |
| 562 | 578 | <connections/> |
| 563 | 579 | </ui> | ... | ... |
app/gui/oven_control/electricmodelsettingwindow.cpp