Commit 40f5d047f8a7f59138448914b37e51a5f249c122

Authored by 고영탁
1 parent 80c5eb48bc
Exists in master and in 2 other branches fhd, fhd-demo

엔코더 작업 진행 중

 - 설정, 음향관리, 시스템관리 엔코더 적용
 - 키보드 사용 설정은 제외
app/gui/oven_control/configbacklightdlg.cpp
@@ -19,6 +19,8 @@ ConfigBackLightDlg::ConfigBackLightDlg(QWidget *parent) : @@ -19,6 +19,8 @@ ConfigBackLightDlg::ConfigBackLightDlg(QWidget *parent) :
19 ui->setupUi(this); 19 ui->setupUi(this);
20 this->setWindowFlags( Qt::FramelessWindowHint); 20 this->setWindowFlags( Qt::FramelessWindowHint);
21 this->setAttribute( Qt::WA_DeleteOnClose); 21 this->setAttribute( Qt::WA_DeleteOnClose);
  22 + qApp->setActiveWindow(this);
  23 + this->setFocus();
22 24
23 foreach (QPushButton *button, findChildren<QPushButton *>()) 25 foreach (QPushButton *button, findChildren<QPushButton *>())
24 connect(button, &QPushButton::pressed, SoundPlayer::playClick); 26 connect(button, &QPushButton::pressed, SoundPlayer::playClick);
@@ -28,6 +30,11 @@ ConfigBackLightDlg::ConfigBackLightDlg(QWidget *parent) : @@ -28,6 +30,11 @@ ConfigBackLightDlg::ConfigBackLightDlg(QWidget *parent) :
28 m_nSelBackLight = item.d32; 30 m_nSelBackLight = item.d32;
29 ui->ctrProgressLight->setMaxProgress(0,MAX_LIGHT); 31 ui->ctrProgressLight->setMaxProgress(0,MAX_LIGHT);
30 ui->ctrProgressLight->setCurrentProgress(m_nSelBackLight); 32 ui->ctrProgressLight->setCurrentProgress(m_nSelBackLight);
  33 + m_vectorTabOrder.append(this);
  34 + m_vectorTabOrder.append(ui->ctrBtnPlus);
  35 + m_vectorTabOrder.append(ui->ctrBtnMinus);
  36 + m_vectorTabOrder.append(ui->ctrBtnOk);
  37 + m_vectorTabOrder.append(ui->ctrBtnCancel);
31 } 38 }
32 39
33 ConfigBackLightDlg::~ConfigBackLightDlg() 40 ConfigBackLightDlg::~ConfigBackLightDlg()
@@ -78,3 +85,100 @@ void ConfigBackLightDlg::on_ctrBtnMinus_clicked() @@ -78,3 +85,100 @@ void ConfigBackLightDlg::on_ctrBtnMinus_clicked()
78 85
79 Backlight::set(m_nSelBackLight); 86 Backlight::set(m_nSelBackLight);
80 } 87 }
  88 +
  89 +void ConfigBackLightDlg::keyPressEvent(QKeyEvent *event){
  90 + int i = 0;
  91 + switch (event->key())
  92 + {
  93 + case 0x01000030: // Turn left
  94 + for(i = 0; i < m_vectorTabOrder.size();i++){
  95 + if(focusWidget() == m_vectorTabOrder[i]) break;
  96 + }
  97 +
  98 + if(i==0){
  99 + i = m_vectorTabOrder.size()-1;
  100 + m_vectorTabOrder[i]->setFocus();
  101 + }
  102 + else if(i < m_vectorTabOrder.size()) {
  103 + i = i - 1;
  104 + m_vectorTabOrder[i]->setFocus();
  105 + }
  106 + else{
  107 + i=0;
  108 + m_vectorTabOrder[i]->setFocus();
  109 + }
  110 + break;
  111 + case 0x01000031: // Push
  112 +
  113 + break;
  114 + case 0x01000032: // Turn right
  115 + for(i = 0; i < m_vectorTabOrder.size();i++){
  116 + if(focusWidget() == m_vectorTabOrder[i]) break;
  117 + }
  118 +
  119 + if(i<m_vectorTabOrder.size()-1){
  120 + i+=1;
  121 + m_vectorTabOrder[i]->setFocus();
  122 + }
  123 + else if(i== (m_vectorTabOrder.size()-1)){
  124 + i=0;
  125 + m_vectorTabOrder[i]->setFocus();
  126 + }
  127 + else{
  128 + i=0;
  129 + m_vectorTabOrder[i]->setFocus();
  130 + }
  131 + break;
  132 + }
  133 +}
  134 +
  135 +void ConfigBackLightDlg::keyReleaseEvent(QKeyEvent *event){
  136 + int i = 0;
  137 + switch (event->key())
  138 + {
  139 + case 0x01000030: // Turn left
  140 + for(i = 0; i < m_vectorTabOrder.size();i++){
  141 + if(focusWidget() == m_vectorTabOrder[i]) break;
  142 + }
  143 +
  144 + if(i==0){
  145 + i = m_vectorTabOrder.size()-1;
  146 + m_vectorTabOrder[i]->setFocus();
  147 + }
  148 + else if(i < m_vectorTabOrder.size()) {
  149 + i = i - 1;
  150 + m_vectorTabOrder[i]->setFocus();
  151 + }
  152 + else{
  153 + i=0;
  154 + m_vectorTabOrder[i]->setFocus();
  155 + }
  156 + break;
  157 + case 0x01000031: // Push
  158 + {
  159 + QPushButton *btn = qobject_cast<QPushButton*>(focusWidget());
  160 + if(btn != NULL){
  161 + btn->click();
  162 + }
  163 + break;
  164 + }
  165 + case 0x01000032: // Turn right
  166 + for(i = 0; i < m_vectorTabOrder.size();i++){
  167 + if(focusWidget() == m_vectorTabOrder[i]) break;
  168 + }
  169 +
  170 + if(i<m_vectorTabOrder.size()-1){
  171 + i+=1;
  172 + m_vectorTabOrder[i]->setFocus();
  173 + }
  174 + else if(i== (m_vectorTabOrder.size()-1)){
  175 + i=0;
  176 + m_vectorTabOrder[i]->setFocus();
  177 + }
  178 + else{
  179 + i=0;
  180 + m_vectorTabOrder[i]->setFocus();
  181 + }
  182 + break;
  183 + }
  184 +}
app/gui/oven_control/configbacklightdlg.h
@@ -2,6 +2,8 @@ @@ -2,6 +2,8 @@
2 #define CONFIGBACKLIGHTDLG_H 2 #define CONFIGBACKLIGHTDLG_H
3 3
4 #include <QDialog> 4 #include <QDialog>
  5 +#include <QKeyEvent>
  6 +#include <QVector>
5 7
6 namespace Ui { 8 namespace Ui {
7 class ConfigBackLightDlg; 9 class ConfigBackLightDlg;
@@ -26,9 +28,14 @@ private slots: @@ -26,9 +28,14 @@ private slots:
26 28
27 void on_ctrBtnMinus_clicked(); 29 void on_ctrBtnMinus_clicked();
28 30
  31 +protected:
  32 + void keyReleaseEvent(QKeyEvent* event);
  33 + void keyPressEvent(QKeyEvent* event);
  34 +
29 private: 35 private:
30 Ui::ConfigBackLightDlg *ui; 36 Ui::ConfigBackLightDlg *ui;
31 int m_nSelBackLight; 37 int m_nSelBackLight;
  38 + QVector<QWidget*> m_vectorTabOrder;
32 }; 39 };
33 40
34 #endif // CONFIGBACKLIGHTDLG_H 41 #endif // CONFIGBACKLIGHTDLG_H
app/gui/oven_control/configfavoritebutton.cpp
@@ -23,6 +23,15 @@ void ConfigFavoriteButton::setText(const QString &amp;text){ @@ -23,6 +23,15 @@ void ConfigFavoriteButton::setText(const QString &amp;text){
23 ui->pushButton->setText(text); 23 ui->pushButton->setText(text);
24 } 24 }
25 25
  26 +QWidget *ConfigFavoriteButton::getBtn()
  27 +{
  28 + return ui->pushButton;
  29 +}
  30 +
  31 +QWidget* ConfigFavoriteButton::getDelBtn(){
  32 + return ui->favoriteButton;
  33 +}
  34 +
26 35
27 36
28 void ConfigFavoriteButton::on_favoriteButton_clicked() 37 void ConfigFavoriteButton::on_favoriteButton_clicked()
app/gui/oven_control/configfavoritebutton.h
@@ -16,6 +16,9 @@ public: @@ -16,6 +16,9 @@ public:
16 ~ConfigFavoriteButton(); 16 ~ConfigFavoriteButton();
17 void setText(const QString &text); 17 void setText(const QString &text);
18 18
  19 + QWidget* getBtn();
  20 + QWidget* getDelBtn();
  21 +
19 22
20 private: 23 private:
21 Ui::ConfigFavoriteButton *ui; 24 Ui::ConfigFavoriteButton *ui;
app/gui/oven_control/configfileprocessdlg.cpp
@@ -14,6 +14,8 @@ ConfigFileProcessDlg::ConfigFileProcessDlg(QWidget *parent, ConfigType type, boo @@ -14,6 +14,8 @@ ConfigFileProcessDlg::ConfigFileProcessDlg(QWidget *parent, ConfigType type, boo
14 setAttribute(Qt::WA_NoSystemBackground); 14 setAttribute(Qt::WA_NoSystemBackground);
15 setAttribute(Qt::WA_TranslucentBackground); 15 setAttribute(Qt::WA_TranslucentBackground);
16 setAttribute(Qt::WA_DeleteOnClose); 16 setAttribute(Qt::WA_DeleteOnClose);
  17 + qApp->setActiveWindow(this);
  18 + this->setFocus();
17 19
18 foreach (QPushButton *button, findChildren<QPushButton *>()) 20 foreach (QPushButton *button, findChildren<QPushButton *>())
19 connect(button, &QPushButton::pressed, SoundPlayer::playClick); 21 connect(button, &QPushButton::pressed, SoundPlayer::playClick);
@@ -53,3 +55,42 @@ void ConfigFileProcessDlg::on_ctrBtnCancel_clicked() @@ -53,3 +55,42 @@ void ConfigFileProcessDlg::on_ctrBtnCancel_clicked()
53 { 55 {
54 deleteLater(); 56 deleteLater();
55 } 57 }
  58 +
  59 +
  60 +void ConfigFileProcessDlg::keyPressEvent(QKeyEvent *event){
  61 + switch (event->key())
  62 + {
  63 + case 0x01000030: // Turn left
  64 + if(focusWidget() == ui->ctrBtnOk) ui->ctrBtnCancel->setFocus();
  65 + else ui->ctrBtnOk->setFocus();
  66 + break;
  67 + case 0x01000031: // Push
  68 + break;
  69 + case 0x01000032: // Turn right
  70 + if(focusWidget() == ui->ctrBtnOk) ui->ctrBtnCancel->setFocus();
  71 + else ui->ctrBtnOk->setFocus();
  72 + break;
  73 + }
  74 +}
  75 +
  76 +void ConfigFileProcessDlg::keyReleaseEvent(QKeyEvent *event){
  77 + switch (event->key())
  78 + {
  79 + case 0x01000030: // Turn left
  80 + if(focusWidget() == ui->ctrBtnOk) ui->ctrBtnCancel->setFocus();
  81 + else ui->ctrBtnOk->setFocus();
  82 + break;
  83 + case 0x01000031: // Push
  84 + {
  85 + QPushButton *btn = qobject_cast<QPushButton*>(focusWidget());
  86 + if(btn != NULL){
  87 + btn->click();
  88 + }
  89 + break;
  90 + }
  91 + case 0x01000032: // Turn right
  92 + if(focusWidget() == ui->ctrBtnOk) ui->ctrBtnCancel->setFocus();
  93 + else ui->ctrBtnOk->setFocus();
  94 + break;
  95 + }
  96 +}
app/gui/oven_control/configfileprocessdlg.h
@@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
2 #define CONFIGFILEPROCESSDLG_H 2 #define CONFIGFILEPROCESSDLG_H
3 3
4 #include <QDialog> 4 #include <QDialog>
  5 +#include <QKeyEvent>
5 #include "config.h" 6 #include "config.h"
6 7
7 using namespace Define; 8 using namespace Define;
@@ -23,6 +24,10 @@ private slots: @@ -23,6 +24,10 @@ private slots:
23 24
24 void on_ctrBtnCancel_clicked(); 25 void on_ctrBtnCancel_clicked();
25 26
  27 +protected:
  28 + void keyReleaseEvent(QKeyEvent* event);
  29 + void keyPressEvent(QKeyEvent* event);
  30 +
26 private: 31 private:
27 Ui::ConfigFileProcessDlg *ui; 32 Ui::ConfigFileProcessDlg *ui;
28 ConfigType m_nCfgtype; 33 ConfigType m_nCfgtype;
app/gui/oven_control/configlanguagedlg.cpp
@@ -10,8 +10,11 @@ ConfigLanguageDlg::ConfigLanguageDlg(QWidget *parent) : @@ -10,8 +10,11 @@ ConfigLanguageDlg::ConfigLanguageDlg(QWidget *parent) :
10 ui(new Ui::ConfigLanguageDlg) 10 ui(new Ui::ConfigLanguageDlg)
11 { 11 {
12 ui->setupUi(this); 12 ui->setupUi(this);
13 - this->setWindowFlags( Qt::FramelessWindowHint); 13 + this->setWindowFlags(Qt::FramelessWindowHint);
14 this->setAttribute( Qt::WA_DeleteOnClose); 14 this->setAttribute( Qt::WA_DeleteOnClose);
  15 + qApp->setActiveWindow(this);
  16 + this->setFocus();
  17 +
15 18
16 foreach (QPushButton *button, findChildren<QPushButton *>()) 19 foreach (QPushButton *button, findChildren<QPushButton *>())
17 connect(button, &QPushButton::pressed, SoundPlayer::playClick); 20 connect(button, &QPushButton::pressed, SoundPlayer::playClick);
@@ -38,6 +41,13 @@ ConfigLanguageDlg::ConfigLanguageDlg(QWidget *parent) : @@ -38,6 +41,13 @@ ConfigLanguageDlg::ConfigLanguageDlg(QWidget *parent) :
38 41
39 connect(m_pSignalMapper,SIGNAL(mapped(int)),this,SLOT(onConfigBtnClicked(int))); 42 connect(m_pSignalMapper,SIGNAL(mapped(int)),this,SLOT(onConfigBtnClicked(int)));
40 43
  44 + m_vectorTabOrder.append(this);
  45 + m_vectorTabOrder.append(ui->pushButton_1);
  46 + m_vectorTabOrder.append(ui->pushButton_2);
  47 + m_vectorTabOrder.append(ui->pushButton_3);
  48 + m_vectorTabOrder.append(ui->ctrBtnOk);
  49 + m_vectorTabOrder.append(ui->ctrBtnCancel);
  50 + reloadUi();
41 } 51 }
42 52
43 ConfigLanguageDlg::~ConfigLanguageDlg() 53 ConfigLanguageDlg::~ConfigLanguageDlg()
@@ -78,3 +88,100 @@ void ConfigLanguageDlg::reloadUi(){ @@ -78,3 +88,100 @@ void ConfigLanguageDlg::reloadUi(){
78 break; 88 break;
79 } 89 }
80 } 90 }
  91 +
  92 +void ConfigLanguageDlg::keyPressEvent(QKeyEvent *event){
  93 + int i = 0;
  94 + switch (event->key())
  95 + {
  96 + case 0x01000030: // Turn left
  97 + for(i = 0; i < m_vectorTabOrder.size();i++){
  98 + if(focusWidget() == m_vectorTabOrder[i]) break;
  99 + }
  100 +
  101 + if(i==0){
  102 + i = m_vectorTabOrder.size()-1;
  103 + m_vectorTabOrder[i]->setFocus();
  104 + }
  105 + else if(i < m_vectorTabOrder.size()) {
  106 + i = i - 1;
  107 + m_vectorTabOrder[i]->setFocus();
  108 + }
  109 + else{
  110 + i=0;
  111 + m_vectorTabOrder[i]->setFocus();
  112 + }
  113 + break;
  114 + case 0x01000031: // Push
  115 +
  116 + break;
  117 + case 0x01000032: // Turn right
  118 + for(i = 0; i < m_vectorTabOrder.size();i++){
  119 + if(focusWidget() == m_vectorTabOrder[i]) break;
  120 + }
  121 +
  122 + if(i<m_vectorTabOrder.size()-1){
  123 + i+=1;
  124 + m_vectorTabOrder[i]->setFocus();
  125 + }
  126 + else if(i== (m_vectorTabOrder.size()-1)){
  127 + i=0;
  128 + m_vectorTabOrder[i]->setFocus();
  129 + }
  130 + else{
  131 + i=0;
  132 + m_vectorTabOrder[i]->setFocus();
  133 + }
  134 + break;
  135 + }
  136 +}
  137 +
  138 +void ConfigLanguageDlg::keyReleaseEvent(QKeyEvent *event){
  139 + int i = 0;
  140 + switch (event->key())
  141 + {
  142 + case 0x01000030: // Turn left
  143 + for(i = 0; i < m_vectorTabOrder.size();i++){
  144 + if(focusWidget() == m_vectorTabOrder[i]) break;
  145 + }
  146 +
  147 + if(i==0){
  148 + i = m_vectorTabOrder.size()-1;
  149 + m_vectorTabOrder[i]->setFocus();
  150 + }
  151 + else if(i < m_vectorTabOrder.size()) {
  152 + i = i - 1;
  153 + m_vectorTabOrder[i]->setFocus();
  154 + }
  155 + else{
  156 + i=0;
  157 + m_vectorTabOrder[i]->setFocus();
  158 + }
  159 + break;
  160 + case 0x01000031: // Push
  161 + {
  162 + QPushButton *btn = qobject_cast<QPushButton*>(focusWidget());
  163 + if(btn != NULL){
  164 + btn->click();
  165 + }
  166 + break;
  167 + }
  168 + case 0x01000032: // Turn right
  169 + for(i = 0; i < m_vectorTabOrder.size();i++){
  170 + if(focusWidget() == m_vectorTabOrder[i]) break;
  171 + }
  172 +
  173 + if(i<m_vectorTabOrder.size()-1){
  174 + i+=1;
  175 + m_vectorTabOrder[i]->setFocus();
  176 + }
  177 + else if(i== (m_vectorTabOrder.size()-1)){
  178 + i=0;
  179 + m_vectorTabOrder[i]->setFocus();
  180 + }
  181 + else{
  182 + i=0;
  183 + m_vectorTabOrder[i]->setFocus();
  184 + }
  185 + break;
  186 + }
  187 +}
app/gui/oven_control/configlanguagedlg.h
@@ -3,6 +3,8 @@ @@ -3,6 +3,8 @@
3 3
4 #include <QDialog> 4 #include <QDialog>
5 #include <QSignalMapper> 5 #include <QSignalMapper>
  6 +#include <QKeyEvent>
  7 +#include <QVector>
6 8
7 namespace Ui { 9 namespace Ui {
8 class ConfigLanguageDlg; 10 class ConfigLanguageDlg;
@@ -24,10 +26,15 @@ private slots: @@ -24,10 +26,15 @@ private slots:
24 26
25 void onConfigBtnClicked(const int sel); 27 void onConfigBtnClicked(const int sel);
26 28
  29 +protected:
  30 + void keyReleaseEvent(QKeyEvent* event);
  31 + void keyPressEvent(QKeyEvent* event);
  32 +
27 private: 33 private:
28 Ui::ConfigLanguageDlg *ui; 34 Ui::ConfigLanguageDlg *ui;
29 QSignalMapper *m_pSignalMapper; 35 QSignalMapper *m_pSignalMapper;
30 int m_nCurSelLang; 36 int m_nCurSelLang;
  37 + QVector<QWidget*> m_vectorTabOrder;
31 }; 38 };
32 39
33 #endif // CONFIGLANGUAGEDLG_H 40 #endif // CONFIGLANGUAGEDLG_H
app/gui/oven_control/configlanguagedlg.ui
@@ -10,6 +10,9 @@ @@ -10,6 +10,9 @@
10 <height>1600</height> 10 <height>1600</height>
11 </rect> 11 </rect>
12 </property> 12 </property>
  13 + <property name="focusPolicy">
  14 + <enum>Qt::StrongFocus</enum>
  15 + </property>
13 <property name="autoFillBackground"> 16 <property name="autoFillBackground">
14 <bool>false</bool> 17 <bool>false</bool>
15 </property> 18 </property>
@@ -55,6 +58,9 @@ QLabel{ @@ -55,6 +58,9 @@ QLabel{
55 <height>450</height> 58 <height>450</height>
56 </size> 59 </size>
57 </property> 60 </property>
  61 + <property name="focusPolicy">
  62 + <enum>Qt::TabFocus</enum>
  63 + </property>
58 <layout class="QVBoxLayout" name="verticalLayout_3" stretch="92,0,264,88"> 64 <layout class="QVBoxLayout" name="verticalLayout_3" stretch="92,0,264,88">
59 <item> 65 <item>
60 <widget class="QLabel" name="label"> 66 <widget class="QLabel" name="label">
@@ -252,6 +258,14 @@ QLabel{ @@ -252,6 +258,14 @@ QLabel{
252 </layout> 258 </layout>
253 </widget> 259 </widget>
254 </widget> 260 </widget>
  261 + <tabstops>
  262 + <tabstop>pushButton_1</tabstop>
  263 + <tabstop>ctrBtnOk</tabstop>
  264 + <tabstop>pushButton_2</tabstop>
  265 + <tabstop>ctrBtnCancel</tabstop>
  266 + <tabstop>pushButton_3</tabstop>
  267 + <tabstop>centralwidget</tabstop>
  268 + </tabstops>
255 <resources/> 269 <resources/>
256 <connections/> 270 <connections/>
257 </ui> 271 </ui>
app/gui/oven_control/configmastervolumedlg.cpp
@@ -16,6 +16,8 @@ ConfigVolumeDlg::ConfigVolumeDlg(QWidget *parent, ConfigType type) : @@ -16,6 +16,8 @@ ConfigVolumeDlg::ConfigVolumeDlg(QWidget *parent, ConfigType type) :
16 ui->setupUi(this); 16 ui->setupUi(this);
17 this->setWindowFlags( Qt::FramelessWindowHint); 17 this->setWindowFlags( Qt::FramelessWindowHint);
18 this->setAttribute( Qt::WA_DeleteOnClose); 18 this->setAttribute( Qt::WA_DeleteOnClose);
  19 + qApp->setActiveWindow(this);
  20 + this->setFocus();
19 21
20 foreach (QPushButton *button, findChildren<QPushButton *>()) 22 foreach (QPushButton *button, findChildren<QPushButton *>())
21 connect(button, &QPushButton::pressed, SoundPlayer::playClick); 23 connect(button, &QPushButton::pressed, SoundPlayer::playClick);
@@ -30,6 +32,12 @@ ConfigVolumeDlg::ConfigVolumeDlg(QWidget *parent, ConfigType type) : @@ -30,6 +32,12 @@ ConfigVolumeDlg::ConfigVolumeDlg(QWidget *parent, ConfigType type) :
30 item = cfg->getConfigValue(m_cfgType); 32 item = cfg->getConfigValue(m_cfgType);
31 m_nPrevVol = m_nCurVol = item.d32; 33 m_nPrevVol = m_nCurVol = item.d32;
32 ui->ctrProgressLight->setMaxProgress(m_nCurVol,MAX_VOL); 34 ui->ctrProgressLight->setMaxProgress(m_nCurVol,MAX_VOL);
  35 +
  36 + m_vectorTabOrder.append(this);
  37 + m_vectorTabOrder.append(ui->ctrBtnMinus);
  38 + m_vectorTabOrder.append(ui->ctrBtnPlus);
  39 + m_vectorTabOrder.append(ui->ctrBtnOk);
  40 + m_vectorTabOrder.append(ui->ctrBtnCancel);
33 } 41 }
34 42
35 ConfigVolumeDlg::~ConfigVolumeDlg() 43 ConfigVolumeDlg::~ConfigVolumeDlg()
@@ -74,3 +82,100 @@ void ConfigVolumeDlg::on_ctrBtnPlus_clicked() @@ -74,3 +82,100 @@ void ConfigVolumeDlg::on_ctrBtnPlus_clicked()
74 82
75 SoundPlayer::playClick(); 83 SoundPlayer::playClick();
76 } 84 }
  85 +
  86 +void ConfigVolumeDlg::keyPressEvent(QKeyEvent *event){
  87 + int i = 0;
  88 + switch (event->key())
  89 + {
  90 + case 0x01000030: // Turn left
  91 + for(i = 0; i < m_vectorTabOrder.size();i++){
  92 + if(focusWidget() == m_vectorTabOrder[i]) break;
  93 + }
  94 +
  95 + if(i==0){
  96 + i = m_vectorTabOrder.size()-1;
  97 + m_vectorTabOrder[i]->setFocus();
  98 + }
  99 + else if(i < m_vectorTabOrder.size()) {
  100 + i = i - 1;
  101 + m_vectorTabOrder[i]->setFocus();
  102 + }
  103 + else{
  104 + i=0;
  105 + m_vectorTabOrder[i]->setFocus();
  106 + }
  107 + break;
  108 + case 0x01000031: // Push
  109 +
  110 + break;
  111 + case 0x01000032: // Turn right
  112 + for(i = 0; i < m_vectorTabOrder.size();i++){
  113 + if(focusWidget() == m_vectorTabOrder[i]) break;
  114 + }
  115 +
  116 + if(i<m_vectorTabOrder.size()-1){
  117 + i+=1;
  118 + m_vectorTabOrder[i]->setFocus();
  119 + }
  120 + else if(i== (m_vectorTabOrder.size()-1)){
  121 + i=0;
  122 + m_vectorTabOrder[i]->setFocus();
  123 + }
  124 + else{
  125 + i=0;
  126 + m_vectorTabOrder[i]->setFocus();
  127 + }
  128 + break;
  129 + }
  130 +}
  131 +
  132 +void ConfigVolumeDlg::keyReleaseEvent(QKeyEvent *event){
  133 + int i = 0;
  134 + switch (event->key())
  135 + {
  136 + case 0x01000030: // Turn left
  137 + for(i = 0; i < m_vectorTabOrder.size();i++){
  138 + if(focusWidget() == m_vectorTabOrder[i]) break;
  139 + }
  140 +
  141 + if(i==0){
  142 + i = m_vectorTabOrder.size()-1;
  143 + m_vectorTabOrder[i]->setFocus();
  144 + }
  145 + else if(i < m_vectorTabOrder.size()) {
  146 + i = i - 1;
  147 + m_vectorTabOrder[i]->setFocus();
  148 + }
  149 + else{
  150 + i=0;
  151 + m_vectorTabOrder[i]->setFocus();
  152 + }
  153 + break;
  154 + case 0x01000031: // Push
  155 + {
  156 + QPushButton *btn = qobject_cast<QPushButton*>(focusWidget());
  157 + if(btn != NULL){
  158 + btn->click();
  159 + }
  160 + break;
  161 + }
  162 + case 0x01000032: // Turn right
  163 + for(i = 0; i < m_vectorTabOrder.size();i++){
  164 + if(focusWidget() == m_vectorTabOrder[i]) break;
  165 + }
  166 +
  167 + if(i<m_vectorTabOrder.size()-1){
  168 + i+=1;
  169 + m_vectorTabOrder[i]->setFocus();
  170 + }
  171 + else if(i== (m_vectorTabOrder.size()-1)){
  172 + i=0;
  173 + m_vectorTabOrder[i]->setFocus();
  174 + }
  175 + else{
  176 + i=0;
  177 + m_vectorTabOrder[i]->setFocus();
  178 + }
  179 + break;
  180 + }
  181 +}
app/gui/oven_control/configmastervolumedlg.h
@@ -2,6 +2,8 @@ @@ -2,6 +2,8 @@
2 #define CONFIGMASTERVOLUMEDLG_H 2 #define CONFIGMASTERVOLUMEDLG_H
3 3
4 #include <QDialog> 4 #include <QDialog>
  5 +#include <QKeyEvent>
  6 +#include <QVector>
5 #include "config.h" 7 #include "config.h"
6 8
7 using namespace Define; 9 using namespace Define;
@@ -27,11 +29,16 @@ private slots: @@ -27,11 +29,16 @@ private slots:
27 29
28 void on_ctrBtnPlus_clicked(); 30 void on_ctrBtnPlus_clicked();
29 31
  32 +protected:
  33 + void keyReleaseEvent(QKeyEvent* event);
  34 + void keyPressEvent(QKeyEvent* event);
  35 +
30 private: 36 private:
31 Ui::ConfigMasterVolumeDlg *ui; 37 Ui::ConfigMasterVolumeDlg *ui;
32 int m_nCurVol; 38 int m_nCurVol;
33 int m_nPrevVol; 39 int m_nPrevVol;
34 ConfigType m_cfgType; 40 ConfigType m_cfgType;
  41 + QVector<QWidget*> m_vectorTabOrder;
35 }; 42 };
36 43
37 #endif // CONFIGMASTERVOLUMEDLG_H 44 #endif // CONFIGMASTERVOLUMEDLG_H
app/gui/oven_control/configpanelbutton.cpp
@@ -41,6 +41,15 @@ bool ConfigPanelButton::isFavoriteFocused() @@ -41,6 +41,15 @@ bool ConfigPanelButton::isFavoriteFocused()
41 return (focusWidget() == ui->favoriteButton); 41 return (focusWidget() == ui->favoriteButton);
42 } 42 }
43 43
  44 +QWidget *ConfigPanelButton::getFavoriteBtn()
  45 +{
  46 + return ui->favoriteButton;
  47 +}
  48 +
  49 +QWidget* ConfigPanelButton::getBtn(){
  50 + return ui->pushButton;
  51 +}
  52 +
44 void ConfigPanelButton::setText(const QString &text) 53 void ConfigPanelButton::setText(const QString &text)
45 { 54 {
46 if (text_ == text) 55 if (text_ == text)
app/gui/oven_control/configpanelbutton.h
@@ -19,6 +19,8 @@ public: @@ -19,6 +19,8 @@ public:
19 const QString &value() { return value_; } 19 const QString &value() { return value_; }
20 20
21 bool isFavoriteFocused(); 21 bool isFavoriteFocused();
  22 + QWidget* getFavoriteBtn();
  23 + QWidget* getBtn();
22 24
23 public slots: 25 public slots:
24 void setText(const QString &text); 26 void setText(const QString &text);
app/gui/oven_control/configresttimeformatdlg.cpp
@@ -16,6 +16,8 @@ configResttimeFormatDlg::configResttimeFormatDlg(QWidget *parent) : @@ -16,6 +16,8 @@ configResttimeFormatDlg::configResttimeFormatDlg(QWidget *parent) :
16 ui->setupUi(this); 16 ui->setupUi(this);
17 this->setWindowFlags( Qt::FramelessWindowHint); 17 this->setWindowFlags( Qt::FramelessWindowHint);
18 this->setAttribute( Qt::WA_DeleteOnClose); 18 this->setAttribute( Qt::WA_DeleteOnClose);
  19 + qApp->setActiveWindow(this);
  20 + this->setFocus();
19 21
20 foreach (QPushButton *button, findChildren<QPushButton *>()) 22 foreach (QPushButton *button, findChildren<QPushButton *>())
21 connect(button, &QPushButton::pressed, SoundPlayer::playClick); 23 connect(button, &QPushButton::pressed, SoundPlayer::playClick);
@@ -33,6 +35,12 @@ configResttimeFormatDlg::configResttimeFormatDlg(QWidget *parent) : @@ -33,6 +35,12 @@ configResttimeFormatDlg::configResttimeFormatDlg(QWidget *parent) :
33 connect(ui->pushButton_2,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map())); 35 connect(ui->pushButton_2,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map()));
34 36
35 connect(m_pSignalMapper,SIGNAL(mapped(int)),this,SLOT(onConfigBtnClicked(int))); 37 connect(m_pSignalMapper,SIGNAL(mapped(int)),this,SLOT(onConfigBtnClicked(int)));
  38 +
  39 + m_vectorTabOrder.append(this);
  40 + m_vectorTabOrder.append(ui->pushButton_1);
  41 + m_vectorTabOrder.append(ui->pushButton_2);
  42 + m_vectorTabOrder.append(ui->ctrBtnOk);
  43 + m_vectorTabOrder.append(ui->ctrBtnCancel);
36 } 44 }
37 45
38 configResttimeFormatDlg::~configResttimeFormatDlg() 46 configResttimeFormatDlg::~configResttimeFormatDlg()
@@ -71,3 +79,100 @@ void configResttimeFormatDlg::reloadUi(){ @@ -71,3 +79,100 @@ void configResttimeFormatDlg::reloadUi(){
71 } 79 }
72 } 80 }
73 81
  82 +void configResttimeFormatDlg::keyPressEvent(QKeyEvent *event){
  83 + int i = 0;
  84 + switch (event->key())
  85 + {
  86 + case 0x01000030: // Turn left
  87 + for(i = 0; i < m_vectorTabOrder.size();i++){
  88 + if(focusWidget() == m_vectorTabOrder[i]) break;
  89 + }
  90 +
  91 + if(i==0){
  92 + i = m_vectorTabOrder.size()-1;
  93 + m_vectorTabOrder[i]->setFocus();
  94 + }
  95 + else if(i < m_vectorTabOrder.size()) {
  96 + i = i - 1;
  97 + m_vectorTabOrder[i]->setFocus();
  98 + }
  99 + else{
  100 + i=0;
  101 + m_vectorTabOrder[i]->setFocus();
  102 + }
  103 + break;
  104 + case 0x01000031: // Push
  105 +
  106 + break;
  107 + case 0x01000032: // Turn right
  108 + for(i = 0; i < m_vectorTabOrder.size();i++){
  109 + if(focusWidget() == m_vectorTabOrder[i]) break;
  110 + }
  111 +
  112 + if(i<m_vectorTabOrder.size()-1){
  113 + i+=1;
  114 + m_vectorTabOrder[i]->setFocus();
  115 + }
  116 + else if(i== (m_vectorTabOrder.size()-1)){
  117 + i=0;
  118 + m_vectorTabOrder[i]->setFocus();
  119 + }
  120 + else{
  121 + i=0;
  122 + m_vectorTabOrder[i]->setFocus();
  123 + }
  124 + break;
  125 + }
  126 +}
  127 +
  128 +void configResttimeFormatDlg::keyReleaseEvent(QKeyEvent *event){
  129 + int i = 0;
  130 + switch (event->key())
  131 + {
  132 + case 0x01000030: // Turn left
  133 + for(i = 0; i < m_vectorTabOrder.size();i++){
  134 + if(focusWidget() == m_vectorTabOrder[i]) break;
  135 + }
  136 +
  137 + if(i==0){
  138 + i = m_vectorTabOrder.size()-1;
  139 + m_vectorTabOrder[i]->setFocus();
  140 + }
  141 + else if(i < m_vectorTabOrder.size()) {
  142 + i = i - 1;
  143 + m_vectorTabOrder[i]->setFocus();
  144 + }
  145 + else{
  146 + i=0;
  147 + m_vectorTabOrder[i]->setFocus();
  148 + }
  149 + break;
  150 + case 0x01000031: // Push
  151 + {
  152 + QPushButton *btn = qobject_cast<QPushButton*>(focusWidget());
  153 + if(btn != NULL){
  154 + btn->click();
  155 + }
  156 + break;
  157 + }
  158 + case 0x01000032: // Turn right
  159 + for(i = 0; i < m_vectorTabOrder.size();i++){
  160 + if(focusWidget() == m_vectorTabOrder[i]) break;
  161 + }
  162 +
  163 + if(i<m_vectorTabOrder.size()-1){
  164 + i+=1;
  165 + m_vectorTabOrder[i]->setFocus();
  166 + }
  167 + else if(i== (m_vectorTabOrder.size()-1)){
  168 + i=0;
  169 + m_vectorTabOrder[i]->setFocus();
  170 + }
  171 + else{
  172 + i=0;
  173 + m_vectorTabOrder[i]->setFocus();
  174 + }
  175 + break;
  176 + }
  177 +}
  178 +
app/gui/oven_control/configresttimeformatdlg.h
@@ -3,6 +3,8 @@ @@ -3,6 +3,8 @@
3 3
4 #include <QDialog> 4 #include <QDialog>
5 #include <QSignalMapper> 5 #include <QSignalMapper>
  6 +#include <QKeyEvent>
  7 +#include <QVector>
6 8
7 namespace Ui { 9 namespace Ui {
8 class configResttimeFormatDlg; 10 class configResttimeFormatDlg;
@@ -26,10 +28,15 @@ private slots: @@ -26,10 +28,15 @@ private slots:
26 public slots: 28 public slots:
27 void onConfigBtnClicked(const int sel); 29 void onConfigBtnClicked(const int sel);
28 30
  31 +protected:
  32 + void keyReleaseEvent(QKeyEvent* event);
  33 + void keyPressEvent(QKeyEvent* event);
  34 +
29 private: 35 private:
30 Ui::configResttimeFormatDlg *ui; 36 Ui::configResttimeFormatDlg *ui;
31 QSignalMapper *m_pSignalMapper; 37 QSignalMapper *m_pSignalMapper;
32 int m_nCurSel; 38 int m_nCurSel;
  39 + QVector<QWidget*> m_vectorTabOrder;
33 }; 40 };
34 41
35 #endif // CONFIGRESTTIMEFORMATDLG_H 42 #endif // CONFIGRESTTIMEFORMATDLG_H
app/gui/oven_control/configsoundselelectdlg.cpp
@@ -15,6 +15,8 @@ ConfigSoundSelelectDlg::ConfigSoundSelelectDlg(QWidget *parent, ConfigType cfgty @@ -15,6 +15,8 @@ ConfigSoundSelelectDlg::ConfigSoundSelelectDlg(QWidget *parent, ConfigType cfgty
15 setWindowFlags(Qt::Widget | Qt::FramelessWindowHint); 15 setWindowFlags(Qt::Widget | Qt::FramelessWindowHint);
16 setAttribute(Qt::WA_NoSystemBackground); 16 setAttribute(Qt::WA_NoSystemBackground);
17 setAttribute(Qt::WA_TranslucentBackground); 17 setAttribute(Qt::WA_TranslucentBackground);
  18 + qApp->setActiveWindow(this);
  19 + this->setFocus();
18 20
19 foreach (QPushButton *button, findChildren<QPushButton *>()) 21 foreach (QPushButton *button, findChildren<QPushButton *>())
20 connect(button, &QPushButton::pressed, SoundPlayer::playClick); 22 connect(button, &QPushButton::pressed, SoundPlayer::playClick);
@@ -72,6 +74,19 @@ ConfigSoundSelelectDlg::ConfigSoundSelelectDlg(QWidget *parent, ConfigType cfgty @@ -72,6 +74,19 @@ ConfigSoundSelelectDlg::ConfigSoundSelelectDlg(QWidget *parent, ConfigType cfgty
72 connect(ui->pushButton_10,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map())); 74 connect(ui->pushButton_10,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map()));
73 75
74 connect(m_pSignalMapper,SIGNAL(mapped(int)),this,SLOT(onConfigBtnClicked(int))); 76 connect(m_pSignalMapper,SIGNAL(mapped(int)),this,SLOT(onConfigBtnClicked(int)));
  77 +
  78 + m_vectorTabOrder.append(ui->pushButton_1);
  79 + m_vectorTabOrder.append(ui->pushButton_2);
  80 + m_vectorTabOrder.append(ui->pushButton_3);
  81 + m_vectorTabOrder.append(ui->pushButton_4);
  82 + m_vectorTabOrder.append(ui->pushButton_5);
  83 + m_vectorTabOrder.append(ui->pushButton_6);
  84 + m_vectorTabOrder.append(ui->pushButton_7);
  85 + m_vectorTabOrder.append(ui->pushButton_8);
  86 + m_vectorTabOrder.append(ui->pushButton_9);
  87 + m_vectorTabOrder.append(ui->pushButton_10);
  88 + m_vectorTabOrder.append(ui->ctrBtnOk);
  89 + m_vectorTabOrder.append(ui->ctrBtnCancel);
75 } 90 }
76 91
77 ConfigSoundSelelectDlg::~ConfigSoundSelelectDlg() 92 ConfigSoundSelelectDlg::~ConfigSoundSelelectDlg()
@@ -133,3 +148,101 @@ void ConfigSoundSelelectDlg::reloadUi(){ @@ -133,3 +148,101 @@ void ConfigSoundSelelectDlg::reloadUi(){
133 void ConfigSoundSelelectDlg::onConfigBtnClicked(const int sel){ 148 void ConfigSoundSelelectDlg::onConfigBtnClicked(const int sel){
134 m_nCurSel = sel; 149 m_nCurSel = sel;
135 } 150 }
  151 +
  152 +
  153 +void ConfigSoundSelelectDlg::keyPressEvent(QKeyEvent *event){
  154 + int i = 0;
  155 + switch (event->key())
  156 + {
  157 + case 0x01000030: // Turn left
  158 + for(i = 0; i < m_vectorTabOrder.size();i++){
  159 + if(focusWidget() == m_vectorTabOrder[i]) break;
  160 + }
  161 +
  162 + if(i==0){
  163 + i = m_vectorTabOrder.size()-1;
  164 + m_vectorTabOrder[i]->setFocus();
  165 + }
  166 + else if(i < m_vectorTabOrder.size()) {
  167 + i = i - 1;
  168 + m_vectorTabOrder[i]->setFocus();
  169 + }
  170 + else{
  171 + i=0;
  172 + m_vectorTabOrder[i]->setFocus();
  173 + }
  174 + break;
  175 + case 0x01000031: // Push
  176 +
  177 + break;
  178 + case 0x01000032: // Turn right
  179 + for(i = 0; i < m_vectorTabOrder.size();i++){
  180 + if(focusWidget() == m_vectorTabOrder[i]) break;
  181 + }
  182 +
  183 + if(i<m_vectorTabOrder.size()-1){
  184 + i+=1;
  185 + m_vectorTabOrder[i]->setFocus();
  186 + }
  187 + else if(i== (m_vectorTabOrder.size()-1)){
  188 + i=0;
  189 + m_vectorTabOrder[i]->setFocus();
  190 + }
  191 + else{
  192 + i=0;
  193 + m_vectorTabOrder[i]->setFocus();
  194 + }
  195 + break;
  196 + }
  197 +}
  198 +
  199 +void ConfigSoundSelelectDlg::keyReleaseEvent(QKeyEvent *event){
  200 + int i = 0;
  201 + switch (event->key())
  202 + {
  203 + case 0x01000030: // Turn left
  204 + for(i = 0; i < m_vectorTabOrder.size();i++){
  205 + if(focusWidget() == m_vectorTabOrder[i]) break;
  206 + }
  207 +
  208 + if(i==0){
  209 + i = m_vectorTabOrder.size()-1;
  210 + m_vectorTabOrder[i]->setFocus();
  211 + }
  212 + else if(i < m_vectorTabOrder.size()) {
  213 + i = i - 1;
  214 + m_vectorTabOrder[i]->setFocus();
  215 + }
  216 + else{
  217 + i=0;
  218 + m_vectorTabOrder[i]->setFocus();
  219 + }
  220 + break;
  221 + case 0x01000031: // Push
  222 + {
  223 + QPushButton *btn = qobject_cast<QPushButton*>(focusWidget());
  224 + if(btn != NULL){
  225 + btn->click();
  226 + }
  227 + break;
  228 + }
  229 + case 0x01000032: // Turn right
  230 + for(i = 0; i < m_vectorTabOrder.size();i++){
  231 + if(focusWidget() == m_vectorTabOrder[i]) break;
  232 + }
  233 +
  234 + if(i<m_vectorTabOrder.size()-1){
  235 + i+=1;
  236 + m_vectorTabOrder[i]->setFocus();
  237 + }
  238 + else if(i== (m_vectorTabOrder.size()-1)){
  239 + i=0;
  240 + m_vectorTabOrder[i]->setFocus();
  241 + }
  242 + else{
  243 + i=0;
  244 + m_vectorTabOrder[i]->setFocus();
  245 + }
  246 + break;
  247 + }
  248 +}
app/gui/oven_control/configsoundselelectdlg.h
@@ -4,6 +4,8 @@ @@ -4,6 +4,8 @@
4 #include <QDialog> 4 #include <QDialog>
5 #include <QSignalMapper> 5 #include <QSignalMapper>
6 #include <config.h> 6 #include <config.h>
  7 +#include <QKeyEvent>
  8 +#include <QVector>
7 9
8 using namespace Define; 10 using namespace Define;
9 11
@@ -29,11 +31,16 @@ private slots: @@ -29,11 +31,16 @@ private slots:
29 public slots: 31 public slots:
30 void onConfigBtnClicked(const int sel); 32 void onConfigBtnClicked(const int sel);
31 33
  34 +protected:
  35 + void keyPressEvent(QKeyEvent* event);
  36 + void keyReleaseEvent(QKeyEvent* event);
  37 +
32 private: 38 private:
33 Ui::ConfigSoundSelelectDlg *ui; 39 Ui::ConfigSoundSelelectDlg *ui;
34 QSignalMapper *m_pSignalMapper; 40 QSignalMapper *m_pSignalMapper;
35 ConfigType m_nCfgType; 41 ConfigType m_nCfgType;
36 uint32_t m_nCurSel; 42 uint32_t m_nCurSel;
  43 + QVector<QWidget*> m_vectorTabOrder;
37 }; 44 };
38 45
39 #endif // CONFIGSOUNDSELELECTDLG_H 46 #endif // CONFIGSOUNDSELELECTDLG_H
app/gui/oven_control/configtemptypedlg.cpp
@@ -16,6 +16,8 @@ ConfigTempTypeDlg::ConfigTempTypeDlg(QWidget *parent) : @@ -16,6 +16,8 @@ ConfigTempTypeDlg::ConfigTempTypeDlg(QWidget *parent) :
16 ui->setupUi(this); 16 ui->setupUi(this);
17 this->setWindowFlags( Qt::FramelessWindowHint); 17 this->setWindowFlags( Qt::FramelessWindowHint);
18 this->setAttribute( Qt::WA_DeleteOnClose); 18 this->setAttribute( Qt::WA_DeleteOnClose);
  19 + qApp->setActiveWindow(this);
  20 + this->setFocus();
19 21
20 foreach (QPushButton *button, findChildren<QPushButton *>()) 22 foreach (QPushButton *button, findChildren<QPushButton *>())
21 connect(button, &QPushButton::pressed, SoundPlayer::playClick); 23 connect(button, &QPushButton::pressed, SoundPlayer::playClick);
@@ -33,6 +35,11 @@ ConfigTempTypeDlg::ConfigTempTypeDlg(QWidget *parent) : @@ -33,6 +35,11 @@ ConfigTempTypeDlg::ConfigTempTypeDlg(QWidget *parent) :
33 connect(ui->pushButton_2,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map())); 35 connect(ui->pushButton_2,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map()));
34 36
35 connect(m_pSignalMapper,SIGNAL(mapped(int)),this,SLOT(onConfigBtnClicked(int))); 37 connect(m_pSignalMapper,SIGNAL(mapped(int)),this,SLOT(onConfigBtnClicked(int)));
  38 + m_vectorTabOrder.append(this);
  39 + m_vectorTabOrder.append(ui->pushButton_1);
  40 + m_vectorTabOrder.append(ui->pushButton_2);
  41 + m_vectorTabOrder.append(ui->ctrBtnOk);
  42 + m_vectorTabOrder.append(ui->ctrBtnCancel);
36 } 43 }
37 44
38 ConfigTempTypeDlg::~ConfigTempTypeDlg() 45 ConfigTempTypeDlg::~ConfigTempTypeDlg()
@@ -71,3 +78,100 @@ void ConfigTempTypeDlg::reloadUi(){ @@ -71,3 +78,100 @@ void ConfigTempTypeDlg::reloadUi(){
71 } 78 }
72 } 79 }
73 80
  81 +void ConfigTempTypeDlg::keyPressEvent(QKeyEvent *event){
  82 + int i = 0;
  83 + switch (event->key())
  84 + {
  85 + case 0x01000030: // Turn left
  86 + for(i = 0; i < m_vectorTabOrder.size();i++){
  87 + if(focusWidget() == m_vectorTabOrder[i]) break;
  88 + }
  89 +
  90 + if(i==0){
  91 + i = m_vectorTabOrder.size()-1;
  92 + m_vectorTabOrder[i]->setFocus();
  93 + }
  94 + else if(i < m_vectorTabOrder.size()) {
  95 + i = i - 1;
  96 + m_vectorTabOrder[i]->setFocus();
  97 + }
  98 + else{
  99 + i=0;
  100 + m_vectorTabOrder[i]->setFocus();
  101 + }
  102 + break;
  103 + case 0x01000031: // Push
  104 +
  105 + break;
  106 + case 0x01000032: // Turn right
  107 + for(i = 0; i < m_vectorTabOrder.size();i++){
  108 + if(focusWidget() == m_vectorTabOrder[i]) break;
  109 + }
  110 +
  111 + if(i<m_vectorTabOrder.size()-1){
  112 + i+=1;
  113 + m_vectorTabOrder[i]->setFocus();
  114 + }
  115 + else if(i== (m_vectorTabOrder.size()-1)){
  116 + i=0;
  117 + m_vectorTabOrder[i]->setFocus();
  118 + }
  119 + else{
  120 + i=0;
  121 + m_vectorTabOrder[i]->setFocus();
  122 + }
  123 + break;
  124 + }
  125 +}
  126 +
  127 +void ConfigTempTypeDlg::keyReleaseEvent(QKeyEvent *event){
  128 + int i = 0;
  129 + switch (event->key())
  130 + {
  131 + case 0x01000030: // Turn left
  132 + for(i = 0; i < m_vectorTabOrder.size();i++){
  133 + if(focusWidget() == m_vectorTabOrder[i]) break;
  134 + }
  135 +
  136 + if(i==0){
  137 + i = m_vectorTabOrder.size()-1;
  138 + m_vectorTabOrder[i]->setFocus();
  139 + }
  140 + else if(i < m_vectorTabOrder.size()) {
  141 + i = i - 1;
  142 + m_vectorTabOrder[i]->setFocus();
  143 + }
  144 + else{
  145 + i=0;
  146 + m_vectorTabOrder[i]->setFocus();
  147 + }
  148 + break;
  149 + case 0x01000031: // Push
  150 + {
  151 + QPushButton *btn = qobject_cast<QPushButton*>(focusWidget());
  152 + if(btn != NULL){
  153 + btn->click();
  154 + }
  155 + break;
  156 + }
  157 + case 0x01000032: // Turn right
  158 + for(i = 0; i < m_vectorTabOrder.size();i++){
  159 + if(focusWidget() == m_vectorTabOrder[i]) break;
  160 + }
  161 +
  162 + if(i<m_vectorTabOrder.size()-1){
  163 + i+=1;
  164 + m_vectorTabOrder[i]->setFocus();
  165 + }
  166 + else if(i== (m_vectorTabOrder.size()-1)){
  167 + i=0;
  168 + m_vectorTabOrder[i]->setFocus();
  169 + }
  170 + else{
  171 + i=0;
  172 + m_vectorTabOrder[i]->setFocus();
  173 + }
  174 + break;
  175 + }
  176 +}
  177 +
app/gui/oven_control/configtemptypedlg.h
@@ -3,6 +3,8 @@ @@ -3,6 +3,8 @@
3 3
4 #include <QDialog> 4 #include <QDialog>
5 #include <QSignalMapper> 5 #include <QSignalMapper>
  6 +#include <QVector>
  7 +#include <QKeyEvent>
6 8
7 namespace Ui { 9 namespace Ui {
8 class ConfigTempTypeDlg; 10 class ConfigTempTypeDlg;
@@ -14,6 +16,10 @@ class ConfigTempTypeDlg : public QDialog @@ -14,6 +16,10 @@ class ConfigTempTypeDlg : public QDialog
14 16
15 void reloadUi(void); 17 void reloadUi(void);
16 18
  19 +protected:
  20 + void keyReleaseEvent(QKeyEvent* event);
  21 + void keyPressEvent(QKeyEvent* event);
  22 +
17 public: 23 public:
18 explicit ConfigTempTypeDlg(QWidget *parent = 0); 24 explicit ConfigTempTypeDlg(QWidget *parent = 0);
19 ~ConfigTempTypeDlg(); 25 ~ConfigTempTypeDlg();
@@ -30,6 +36,7 @@ private: @@ -30,6 +36,7 @@ private:
30 Ui::ConfigTempTypeDlg *ui; 36 Ui::ConfigTempTypeDlg *ui;
31 QSignalMapper *m_pSignalMapper; 37 QSignalMapper *m_pSignalMapper;
32 int m_nCurSel; 38 int m_nCurSel;
  39 + QVector<QWidget*> m_vectorTabOrder;
33 }; 40 };
34 41
35 #endif // CONFIGTEMPTYPEDLG_H 42 #endif // CONFIGTEMPTYPEDLG_H
app/gui/oven_control/configtimeformatdlg.cpp
@@ -16,6 +16,8 @@ ConfigTimeFormatDlg::ConfigTimeFormatDlg(QWidget *parent) : @@ -16,6 +16,8 @@ ConfigTimeFormatDlg::ConfigTimeFormatDlg(QWidget *parent) :
16 ui->setupUi(this); 16 ui->setupUi(this);
17 this->setWindowFlags( Qt::FramelessWindowHint); 17 this->setWindowFlags( Qt::FramelessWindowHint);
18 this->setAttribute( Qt::WA_DeleteOnClose); 18 this->setAttribute( Qt::WA_DeleteOnClose);
  19 + qApp->setActiveWindow(this);
  20 + this->setFocus();
19 21
20 foreach (QPushButton *button, findChildren<QPushButton *>()) 22 foreach (QPushButton *button, findChildren<QPushButton *>())
21 connect(button, &QPushButton::pressed, SoundPlayer::playClick); 23 connect(button, &QPushButton::pressed, SoundPlayer::playClick);
@@ -34,6 +36,12 @@ ConfigTimeFormatDlg::ConfigTimeFormatDlg(QWidget *parent) : @@ -34,6 +36,12 @@ ConfigTimeFormatDlg::ConfigTimeFormatDlg(QWidget *parent) :
34 connect(ui->pushButton_2,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map())); 36 connect(ui->pushButton_2,SIGNAL(clicked(bool)),m_pSignalMapper,SLOT(map()));
35 37
36 connect(m_pSignalMapper,SIGNAL(mapped(int)),this,SLOT(onConfigBtnClicked(int))); 38 connect(m_pSignalMapper,SIGNAL(mapped(int)),this,SLOT(onConfigBtnClicked(int)));
  39 +
  40 + m_vectorTabOrder.append(this);
  41 + m_vectorTabOrder.append(ui->pushButton_1);
  42 + m_vectorTabOrder.append(ui->pushButton_2);
  43 + m_vectorTabOrder.append(ui->ctrBtnOk);
  44 + m_vectorTabOrder.append(ui->ctrBtnCancel);
37 } 45 }
38 46
39 ConfigTimeFormatDlg::~ConfigTimeFormatDlg() 47 ConfigTimeFormatDlg::~ConfigTimeFormatDlg()
@@ -73,3 +81,100 @@ void ConfigTimeFormatDlg::reloadUi(){ @@ -73,3 +81,100 @@ void ConfigTimeFormatDlg::reloadUi(){
73 break; 81 break;
74 } 82 }
75 } 83 }
  84 +
  85 +void ConfigTimeFormatDlg::keyPressEvent(QKeyEvent *event){
  86 + int i = 0;
  87 + switch (event->key())
  88 + {
  89 + case 0x01000030: // Turn left
  90 + for(i = 0; i < m_vectorTabOrder.size();i++){
  91 + if(focusWidget() == m_vectorTabOrder[i]) break;
  92 + }
  93 +
  94 + if(i==0){
  95 + i = m_vectorTabOrder.size()-1;
  96 + m_vectorTabOrder[i]->setFocus();
  97 + }
  98 + else if(i < m_vectorTabOrder.size()) {
  99 + i = i - 1;
  100 + m_vectorTabOrder[i]->setFocus();
  101 + }
  102 + else{
  103 + i=0;
  104 + m_vectorTabOrder[i]->setFocus();
  105 + }
  106 + break;
  107 + case 0x01000031: // Push
  108 +
  109 + break;
  110 + case 0x01000032: // Turn right
  111 + for(i = 0; i < m_vectorTabOrder.size();i++){
  112 + if(focusWidget() == m_vectorTabOrder[i]) break;
  113 + }
  114 +
  115 + if(i<m_vectorTabOrder.size()-1){
  116 + i+=1;
  117 + m_vectorTabOrder[i]->setFocus();
  118 + }
  119 + else if(i== (m_vectorTabOrder.size()-1)){
  120 + i=0;
  121 + m_vectorTabOrder[i]->setFocus();
  122 + }
  123 + else{
  124 + i=0;
  125 + m_vectorTabOrder[i]->setFocus();
  126 + }
  127 + break;
  128 + }
  129 +}
  130 +
  131 +void ConfigTimeFormatDlg::keyReleaseEvent(QKeyEvent *event){
  132 + int i = 0;
  133 + switch (event->key())
  134 + {
  135 + case 0x01000030: // Turn left
  136 + for(i = 0; i < m_vectorTabOrder.size();i++){
  137 + if(focusWidget() == m_vectorTabOrder[i]) break;
  138 + }
  139 +
  140 + if(i==0){
  141 + i = m_vectorTabOrder.size()-1;
  142 + m_vectorTabOrder[i]->setFocus();
  143 + }
  144 + else if(i < m_vectorTabOrder.size()) {
  145 + i = i - 1;
  146 + m_vectorTabOrder[i]->setFocus();
  147 + }
  148 + else{
  149 + i=0;
  150 + m_vectorTabOrder[i]->setFocus();
  151 + }
  152 + break;
  153 + case 0x01000031: // Push
  154 + {
  155 + QPushButton *btn = qobject_cast<QPushButton*>(focusWidget());
  156 + if(btn != NULL){
  157 + btn->click();
  158 + }
  159 + break;
  160 + }
  161 + case 0x01000032: // Turn right
  162 + for(i = 0; i < m_vectorTabOrder.size();i++){
  163 + if(focusWidget() == m_vectorTabOrder[i]) break;
  164 + }
  165 +
  166 + if(i<m_vectorTabOrder.size()-1){
  167 + i+=1;
  168 + m_vectorTabOrder[i]->setFocus();
  169 + }
  170 + else if(i== (m_vectorTabOrder.size()-1)){
  171 + i=0;
  172 + m_vectorTabOrder[i]->setFocus();
  173 + }
  174 + else{
  175 + i=0;
  176 + m_vectorTabOrder[i]->setFocus();
  177 + }
  178 + break;
  179 + }
  180 +}
app/gui/oven_control/configtimeformatdlg.h
@@ -3,6 +3,8 @@ @@ -3,6 +3,8 @@
3 3
4 #include <QDialog> 4 #include <QDialog>
5 #include <QSignalMapper> 5 #include <QSignalMapper>
  6 +#include <QKeyEvent>
  7 +#include <QVector>
6 8
7 namespace Ui { 9 namespace Ui {
8 class ConfigTimeFormatDlg; 10 class ConfigTimeFormatDlg;
@@ -27,10 +29,15 @@ private slots: @@ -27,10 +29,15 @@ private slots:
27 public slots: 29 public slots:
28 void onConfigBtnClicked(const int sel); 30 void onConfigBtnClicked(const int sel);
29 31
  32 +protected:
  33 + void keyReleaseEvent(QKeyEvent* event);
  34 + void keyPressEvent(QKeyEvent* event);
  35 +
30 private: 36 private:
31 Ui::ConfigTimeFormatDlg *ui; 37 Ui::ConfigTimeFormatDlg *ui;
32 QSignalMapper *m_pSignalMapper; 38 QSignalMapper *m_pSignalMapper;
33 int m_nCurSel; 39 int m_nCurSel;
  40 + QVector<QWidget*> m_vectorTabOrder;
34 }; 41 };
35 42
36 #endif // CONFIGTIMEFORMATDLG_H 43 #endif // CONFIGTIMEFORMATDLG_H
app/gui/oven_control/configwindow.cpp
@@ -60,100 +60,52 @@ void ConfigWindow::on_pushButton_clicked() @@ -60,100 +60,52 @@ void ConfigWindow::on_pushButton_clicked()
60 } 60 }
61 61
62 void ConfigWindow::prevFocus(){ 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(); 63 + int i = 0;
  64 + for(i = 0; i < m_vectorTabOrder.size();i++){
  65 + if(focusWidget() == m_vectorTabOrder[i]) break;
95 } 66 }
96 - else if(focusWidget() == ui->pushButton_5){  
97 - ui->pushButton_4->setFocus(); 67 +
  68 + if(i==0){
  69 + i = m_vectorTabOrder.size()-1;
  70 + m_vectorTabOrder[i]->setFocus();
98 } 71 }
99 - else if(focusWidget() == ui->pushButton_6){  
100 - ui->pushButton_5->setFocus(); 72 + else if(i < m_vectorTabOrder.size()) {
  73 + i = i - 1;
  74 + m_vectorTabOrder[i]->setFocus();
101 } 75 }
102 - else if(focusWidget() == ui->pushButton_3){  
103 - ui->pushButton_6->setFocus(); 76 + else{
  77 + i=0;
  78 + m_vectorTabOrder[i]->setFocus();
104 } 79 }
105 - else focusPreviousChild();  
106 } 80 }
107 81
108 void ConfigWindow::nextFocus(){ 82 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(); 83 + int i = 0;
  84 + for(i = 0; i < m_vectorTabOrder.size();i++){
  85 + if(focusWidget() == m_vectorTabOrder[i]) break;
136 } 86 }
137 - else if(focusWidget() == ui->pushButton_6){  
138 - ui->pushButton_3->setFocus(); 87 +
  88 + if(i<m_vectorTabOrder.size()-1){
  89 + i+=1;
  90 + m_vectorTabOrder[i]->setFocus();
139 } 91 }
140 - else if(focusWidget() == ui->pushButton_3){  
141 - ui->scrollArea->setFocus(); 92 + else if(i== (m_vectorTabOrder.size()-1)){
  93 + i=0;
  94 + m_vectorTabOrder[i]->setFocus();
142 } 95 }
143 - else if(m_vectorMenuList[m_vectorMenuList.size() -1]->isFavoriteFocused()){  
144 - qDebug() << "last Favorite Focused";  
145 - ui->backButton->setFocus(); 96 + else{
  97 + i=0;
  98 + m_vectorTabOrder[i]->setFocus();
146 } 99 }
147 - else focusNextChild(); 100 + return;
148 } 101 }
149 102
150 void ConfigWindow::keyReleaseEvent(QKeyEvent *event){ 103 void ConfigWindow::keyReleaseEvent(QKeyEvent *event){
151 switch (event->key()) 104 switch (event->key())
152 { 105 {
153 case 0x01000030: // Turn left 106 case 0x01000030: // Turn left
154 - //focusPreviousChild();  
155 prevFocus(); 107 prevFocus();
156 - qDebug() << "turn left"; 108 + ui->scrollArea->ensureWidgetVisible(m_vectorTabOrder[m_nTabIndex]);
157 break; 109 break;
158 case 0x01000031: // Push 110 case 0x01000031: // Push
159 { 111 {
@@ -166,6 +118,7 @@ void ConfigWindow::keyReleaseEvent(QKeyEvent *event){ @@ -166,6 +118,7 @@ void ConfigWindow::keyReleaseEvent(QKeyEvent *event){
166 } 118 }
167 case 0x01000032: // Turn right 119 case 0x01000032: // Turn right
168 nextFocus(); 120 nextFocus();
  121 + ui->scrollArea->ensureWidgetVisible(focusWidget());
169 qDebug() << "Turn Right"; 122 qDebug() << "Turn Right";
170 break; 123 break;
171 } 124 }
@@ -175,8 +128,8 @@ void ConfigWindow::keyPressEvent(QKeyEvent *event){ @@ -175,8 +128,8 @@ void ConfigWindow::keyPressEvent(QKeyEvent *event){
175 switch (event->key()) 128 switch (event->key())
176 { 129 {
177 case 0x01000030: // Turn left 130 case 0x01000030: // Turn left
178 - //focusPreviousChild();  
179 prevFocus(); 131 prevFocus();
  132 + ui->scrollArea->ensureWidgetVisible(focusWidget());
180 qDebug() << "turn left"; 133 qDebug() << "turn left";
181 break; 134 break;
182 case 0x01000031: // Push 135 case 0x01000031: // Push
@@ -185,6 +138,7 @@ void ConfigWindow::keyPressEvent(QKeyEvent *event){ @@ -185,6 +138,7 @@ void ConfigWindow::keyPressEvent(QKeyEvent *event){
185 break; 138 break;
186 case 0x01000032: // Turn right 139 case 0x01000032: // Turn right
187 nextFocus(); 140 nextFocus();
  141 + ui->scrollArea->ensureWidgetVisible(focusWidget());
188 qDebug() << "Turn Right"; 142 qDebug() << "Turn Right";
189 break; 143 break;
190 } 144 }
@@ -240,6 +194,7 @@ void ConfigWindow::reloadValue(){ @@ -240,6 +194,7 @@ void ConfigWindow::reloadValue(){
240 void ConfigWindow::onConfigBtnClicked(uint16_t id){ 194 void ConfigWindow::onConfigBtnClicked(uint16_t id){
241 Config *cfg = Config::getInstance(); 195 Config *cfg = Config::getInstance();
242 QDialog* dlg; 196 QDialog* dlg;
  197 + QWidget *focusedWidget = focusWidget();
243 switch(id){ 198 switch(id){
244 case config_loading_door_monitoring: 199 case config_loading_door_monitoring:
245 case config_cooking_door_monitoring: 200 case config_cooking_door_monitoring:
@@ -270,10 +225,9 @@ void ConfigWindow::onConfigBtnClicked(uint16_t id){ @@ -270,10 +225,9 @@ void ConfigWindow::onConfigBtnClicked(uint16_t id){
270 default: 225 default:
271 cfg->execConfigWindow(this,(Define::ConfigType)id); 226 cfg->execConfigWindow(this,(Define::ConfigType)id);
272 if(m_nCurConfigPos != config_menu_favorite) reloadValue(); 227 if(m_nCurConfigPos != config_menu_favorite) reloadValue();
273 - if(id==config_sound_factory_reset) reloadUi();  
274 break; 228 break;
275 } 229 }
276 - 230 + focusedWidget->setFocus();
277 } 231 }
278 232
279 233
@@ -318,6 +272,17 @@ void ConfigWindow::reloadUi(void){ @@ -318,6 +272,17 @@ void ConfigWindow::reloadUi(void){
318 } 272 }
319 m_vectorFavorMenuList.clear(); 273 m_vectorFavorMenuList.clear();
320 274
  275 + m_vectorTabOrder.clear();
  276 + m_vectorTabOrder.append(this);
  277 + m_vectorTabOrder.append(ui->pushButton);
  278 + m_vectorTabOrder.append(ui->pushButton_8);
  279 + m_vectorTabOrder.append(ui->pushButton_7);
  280 + m_vectorTabOrder.append(ui->pushButton_2);
  281 + m_vectorTabOrder.append(ui->pushButton_4);
  282 + m_vectorTabOrder.append(ui->pushButton_5);
  283 + m_vectorTabOrder.append(ui->pushButton_6);
  284 + m_vectorTabOrder.append(ui->pushButton_3);
  285 +
321 286
322 287
323 if(m_nCurConfigPos != config_menu_favorite){ 288 if(m_nCurConfigPos != config_menu_favorite){
@@ -330,6 +295,8 @@ void ConfigWindow::reloadUi(void){ @@ -330,6 +295,8 @@ void ConfigWindow::reloadUi(void){
330 pcb->setValue(strtemp); 295 pcb->setValue(strtemp);
331 pcb->showFavoriteButton(); 296 pcb->showFavoriteButton();
332 pcb->setFavoriteCheck(cfg->isFavorite(m_arrConfigListInfos[m_nCurConfigPos][i])); 297 pcb->setFavoriteCheck(cfg->isFavorite(m_arrConfigListInfos[m_nCurConfigPos][i]));
  298 + m_vectorTabOrder.append(pcb->getFavoriteBtn());
  299 + m_vectorTabOrder.append(pcb->getBtn());
333 ui->scrollAreaMenuLayout->addWidget(pcb); 300 ui->scrollAreaMenuLayout->addWidget(pcb);
334 m_vectorMenuList.append(pcb); 301 m_vectorMenuList.append(pcb);
335 connect(pcb ,SIGNAL(clicked(uint16_t)),SLOT(onConfigBtnClicked(uint16_t))); 302 connect(pcb ,SIGNAL(clicked(uint16_t)),SLOT(onConfigBtnClicked(uint16_t)));
@@ -343,12 +310,17 @@ void ConfigWindow::reloadUi(void){ @@ -343,12 +310,17 @@ void ConfigWindow::reloadUi(void){
343 fpcb = new ConfigFavoriteButton(this,idx); 310 fpcb = new ConfigFavoriteButton(this,idx);
344 strtemp = cfg->getTitleString((ConfigType)idx); 311 strtemp = cfg->getTitleString((ConfigType)idx);
345 fpcb->setText(strtemp); 312 fpcb->setText(strtemp);
  313 + m_vectorTabOrder.append(fpcb->getBtn());
  314 + m_vectorTabOrder.append(fpcb->getDelBtn());
346 ui->scrollAreaMenuLayout->addWidget(fpcb); 315 ui->scrollAreaMenuLayout->addWidget(fpcb);
347 m_vectorFavorMenuList.append(fpcb); 316 m_vectorFavorMenuList.append(fpcb);
348 connect(fpcb,SIGNAL(clicked(uint16_t)),SLOT(onConfigBtnClicked(uint16_t))); 317 connect(fpcb,SIGNAL(clicked(uint16_t)),SLOT(onConfigBtnClicked(uint16_t)));
349 connect(fpcb,SIGNAL(delBtnClicked(uint16_t)),SLOT(onDeleteFavoriteBtnClicked(uint16_t))); 318 connect(fpcb,SIGNAL(delBtnClicked(uint16_t)),SLOT(onDeleteFavoriteBtnClicked(uint16_t)));
350 } 319 }
351 } 320 }
  321 + m_vectorTabOrder.append(ui->backButton);
  322 + m_vectorTabOrder.append(ui->washButton);
  323 + m_vectorTabOrder.append(ui->helpButton);
352 324
353 ui->scrollAreaMenu->adjustSize(); //Display 전 Contents 사이즈 수정 깜빡임 제거함. 325 ui->scrollAreaMenu->adjustSize(); //Display 전 Contents 사이즈 수정 깜빡임 제거함.
354 326
app/gui/oven_control/configwindow.h
@@ -32,12 +32,12 @@ class ConfigWindow : public QMainWindow @@ -32,12 +32,12 @@ class ConfigWindow : public QMainWindow
32 32
33 private: 33 private:
34 const uint16_t m_arrMaxMenuCount[7] ={ 34 const uint16_t m_arrMaxMenuCount[7] ={
35 - 6,8,9,2,3,0,6 35 + 6,8,8,2,3,0,6
36 }; 36 };
37 const Define::ConfigType m_arrConfigListInfos[7][20] = { 37 const Define::ConfigType m_arrConfigListInfos[7][20] = {
38 {config_language,config_datetime, config_temptype,config_backlight, config_time_type,config_resttime_format,}, 38 {config_language,config_datetime, config_temptype,config_backlight, config_time_type,config_resttime_format,},
39 {config_marster_vol,config_keypad_sound1,config_keypad_sound2,config_request_loadexec,config_programstep_finish,config_cooktime_finish,config_stoperror_distinguish,config_sound_factory_reset}, 39 {config_marster_vol,config_keypad_sound1,config_keypad_sound2,config_request_loadexec,config_programstep_finish,config_cooktime_finish,config_stoperror_distinguish,config_sound_factory_reset},
40 - {config_haccp_data_download,config_info_data_download,config_service_data_download,config_program_download,config_program_upload ,config_program_initialize,config_ip,config_set_download,config_set_upload}, 40 + {config_info_data_download,config_service_data_download,config_program_download,config_program_upload ,config_program_initialize,config_ip,config_set_download,config_set_upload},
41 {config_set_half_energy,config_set_auto_darkness,}, 41 {config_set_half_energy,config_set_auto_darkness,},
42 {config_duty_wash,config_loading_door_monitoring,config_cooking_door_monitoring}, 42 {config_duty_wash,config_loading_door_monitoring,config_cooking_door_monitoring},
43 {config_invalid,}, 43 {config_invalid,},
@@ -88,8 +88,9 @@ private: @@ -88,8 +88,9 @@ private:
88 Ui::ConfigWindow *ui; 88 Ui::ConfigWindow *ui;
89 QVector<ConfigPanelButton *> m_vectorMenuList; 89 QVector<ConfigPanelButton *> m_vectorMenuList;
90 QVector<ConfigFavoriteButton*> m_vectorFavorMenuList; 90 QVector<ConfigFavoriteButton*> m_vectorFavorMenuList;
  91 + QVector<QWidget*> m_vectorTabOrder;
91 CONFIG_MENU_POS m_nCurConfigPos; 92 CONFIG_MENU_POS m_nCurConfigPos;
92 - 93 + int m_nTabIndex = 0;
93 }; 94 };
94 95
95 #endif // CONFIGWINDOW_H 96 #endif // CONFIGWINDOW_H
app/gui/oven_control/fileprocessdlg.cpp
@@ -209,6 +209,9 @@ FileProcessDlg::FileProcessDlg(QWidget *parent, ConfigType type, bool isDown) : @@ -209,6 +209,9 @@ FileProcessDlg::FileProcessDlg(QWidget *parent, ConfigType type, bool isDown) :
209 setAttribute(Qt::WA_DeleteOnClose); 209 setAttribute(Qt::WA_DeleteOnClose);
210 setAttribute(Qt::WA_TranslucentBackground); 210 setAttribute(Qt::WA_TranslucentBackground);
211 setWindowFlags(Qt::FramelessWindowHint); 211 setWindowFlags(Qt::FramelessWindowHint);
  212 + qApp->setActiveWindow(this);
  213 + this->setFocus();
  214 + ui->ctrBtnCancel->setFocus();
212 215
213 ui->ctrWjProcess->setMinimum(0); 216 ui->ctrWjProcess->setMinimum(0);
214 ui->ctrWjProcess->setMaximum(100); 217 ui->ctrWjProcess->setMaximum(100);
@@ -706,3 +709,21 @@ void FileProcessDlg::haccpdataDownload(){ @@ -706,3 +709,21 @@ void FileProcessDlg::haccpdataDownload(){
706 ui->ctrLbRemainTime->setText(tr("남은 예상 시간 : 완료")); 709 ui->ctrLbRemainTime->setText(tr("남은 예상 시간 : 완료"));
707 QTimer::singleShot(1000,this,SLOT(close())); 710 QTimer::singleShot(1000,this,SLOT(close()));
708 } 711 }
  712 +
  713 +void FileProcessDlg::keyPressEvent(QKeyEvent *event){
  714 +
  715 +}
  716 +
  717 +void FileProcessDlg::keyReleaseEvent(QKeyEvent *event){
  718 + switch (event->key())
  719 + {
  720 + case 0x01000031: // Push
  721 + {
  722 + QPushButton *btn = qobject_cast<QPushButton*>(focusWidget());
  723 + if(btn != NULL){
  724 + btn->click();
  725 + }
  726 + break;
  727 + }
  728 + }
  729 +}
app/gui/oven_control/fileprocessdlg.h
@@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
7 #include <QThread> 7 #include <QThread>
8 #include <QList> 8 #include <QList>
9 #include <QMutex> 9 #include <QMutex>
  10 +#include <QKeyEvent>
10 #include "config.h" 11 #include "config.h"
11 #include "servicedata.h" 12 #include "servicedata.h"
12 #include "historylistwindow.h" 13 #include "historylistwindow.h"
@@ -73,6 +74,10 @@ public slots: @@ -73,6 +74,10 @@ public slots:
73 void onProgressed(int progress,int sec); 74 void onProgressed(int progress,int sec);
74 void onProgressFinished(); 75 void onProgressFinished();
75 76
  77 +protected:
  78 + void keyPressEvent(QKeyEvent* event);
  79 + void keyReleaseEvent(QKeyEvent* event);
  80 +
76 private: 81 private:
77 Ui::FileProcessDlg *ui; 82 Ui::FileProcessDlg *ui;
78 ConfigType m_nCfgtype; 83 ConfigType m_nCfgtype;
app/gui/oven_control/usbcheckpopupdlg.cpp
@@ -12,7 +12,9 @@ UsbCheckPopupDlg::UsbCheckPopupDlg(QWidget *parent) : @@ -12,7 +12,9 @@ UsbCheckPopupDlg::UsbCheckPopupDlg(QWidget *parent) :
12 setWindowFlags(Qt::Widget | Qt::FramelessWindowHint); 12 setWindowFlags(Qt::Widget | Qt::FramelessWindowHint);
13 setAttribute(Qt::WA_NoSystemBackground); 13 setAttribute(Qt::WA_NoSystemBackground);
14 setAttribute(Qt::WA_TranslucentBackground); 14 setAttribute(Qt::WA_TranslucentBackground);
15 - 15 + qApp->setActiveWindow(this);
  16 + this->setFocus();
  17 + ui->ctrBtnYes->setFocus();
16 18
17 timer = new QTimer(this); 19 timer = new QTimer(this);
18 connect(timer,SIGNAL(timeout()),SLOT(usbCheckTimerFired())); 20 connect(timer,SIGNAL(timeout()),SLOT(usbCheckTimerFired()));
@@ -36,3 +38,38 @@ void UsbCheckPopupDlg::usbCheckTimerFired(){ @@ -36,3 +38,38 @@ void UsbCheckPopupDlg::usbCheckTimerFired(){
36 accept(); 38 accept();
37 } 39 }
38 } 40 }
  41 +
  42 +
  43 +void UsbCheckPopupDlg::keyPressEvent(QKeyEvent *event){
  44 + int i = 0;
  45 + switch (event->key())
  46 + {
  47 + case 0x01000030: // Turn left
  48 + break;
  49 + case 0x01000031: // Push
  50 + {
  51 + break;
  52 + }
  53 + case 0x01000032: // Turn right
  54 + break;
  55 + }
  56 +}
  57 +
  58 +void UsbCheckPopupDlg::keyReleaseEvent(QKeyEvent *event){
  59 + int i = 0;
  60 + switch (event->key())
  61 + {
  62 + case 0x01000030: // Turn left
  63 + break;
  64 + case 0x01000031: // Push
  65 + {
  66 + QPushButton *btn = qobject_cast<QPushButton*>(focusWidget());
  67 + if(btn != NULL){
  68 + btn->click();
  69 + }
  70 + break;
  71 + }
  72 + case 0x01000032: // Turn right
  73 + break;
  74 + }
  75 +}
app/gui/oven_control/usbcheckpopupdlg.h
@@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
3 3
4 #include <QDialog> 4 #include <QDialog>
5 #include <QTimer> 5 #include <QTimer>
  6 +#include <QKeyEvent>
6 7
7 namespace Ui { 8 namespace Ui {
8 class UsbCheckPopupDlg; 9 class UsbCheckPopupDlg;
@@ -20,6 +21,10 @@ private slots: @@ -20,6 +21,10 @@ private slots:
20 void on_ctrBtnYes_clicked(); 21 void on_ctrBtnYes_clicked();
21 void usbCheckTimerFired(); 22 void usbCheckTimerFired();
22 23
  24 +protected:
  25 + void keyReleaseEvent(QKeyEvent* event);
  26 + void keyPressEvent(QKeyEvent* event);
  27 +
23 private: 28 private:
24 Ui::UsbCheckPopupDlg *ui; 29 Ui::UsbCheckPopupDlg *ui;
25 QTimer *timer; 30 QTimer *timer;
app/gui/oven_control/yesnopopupdlg.cpp
@@ -10,17 +10,22 @@ YesNoPopupDlg::YesNoPopupDlg(QWidget *parent, QString strDesc) : @@ -10,17 +10,22 @@ YesNoPopupDlg::YesNoPopupDlg(QWidget *parent, QString strDesc) :
10 ui->setupUi(this); 10 ui->setupUi(this);
11 this->setAttribute( Qt::WA_DeleteOnClose); 11 this->setAttribute( Qt::WA_DeleteOnClose);
12 setWindowFlags(Qt::FramelessWindowHint); 12 setWindowFlags(Qt::FramelessWindowHint);
13 - setAttribute(Qt::WA_NoSystemBackground); 13 + setAttribute(Qt::WA_NoSystemBackground,false);
14 setAttribute(Qt::WA_TranslucentBackground); 14 setAttribute(Qt::WA_TranslucentBackground);
  15 + qApp->setActiveWindow(this);
  16 + this->setFocus();
  17 +
15 //setAttribute(Qt::WA_PaintOnScreen); 18 //setAttribute(Qt::WA_PaintOnScreen);
16 19
17 20
18 21
19 ui->ctrLbDesc->setText(strDesc); 22 ui->ctrLbDesc->setText(strDesc);
20 23
  24 +
21 //this->setAttribute( Qt::WA_DeleteOnClose); 25 //this->setAttribute( Qt::WA_DeleteOnClose);
22 foreach (QPushButton *button, findChildren<QPushButton *>()) 26 foreach (QPushButton *button, findChildren<QPushButton *>())
23 connect(button, &QPushButton::pressed, SoundPlayer::playClick); 27 connect(button, &QPushButton::pressed, SoundPlayer::playClick);
  28 + ui->ctrBtnYes->setFocus();
24 } 29 }
25 30
26 YesNoPopupDlg::~YesNoPopupDlg() 31 YesNoPopupDlg::~YesNoPopupDlg()
@@ -38,3 +43,42 @@ void YesNoPopupDlg::on_ctrBtnNo_clicked() @@ -38,3 +43,42 @@ void YesNoPopupDlg::on_ctrBtnNo_clicked()
38 { 43 {
39 this->reject(); 44 this->reject();
40 } 45 }
  46 +
  47 +void YesNoPopupDlg::keyPressEvent(QKeyEvent *event){
  48 + switch (event->key())
  49 + {
  50 + case 0x01000030: // Turn left
  51 + if(focusWidget() == ui->ctrBtnYes) ui->ctrBtnNo->setFocus();
  52 + else ui->ctrBtnYes->setFocus();
  53 + break;
  54 + case 0x01000031: // Push
  55 +
  56 + break;
  57 + case 0x01000032: // Turn right
  58 + if(focusWidget() == ui->ctrBtnYes) ui->ctrBtnNo->setFocus();
  59 + else ui->ctrBtnYes->setFocus();
  60 + break;
  61 + }
  62 +}
  63 +
  64 +void YesNoPopupDlg::keyReleaseEvent(QKeyEvent *event){
  65 + switch (event->key())
  66 + {
  67 + case 0x01000030: // Turn left
  68 + if(focusWidget() == ui->ctrBtnYes) ui->ctrBtnNo->setFocus();
  69 + else ui->ctrBtnYes->setFocus();
  70 + break;
  71 + case 0x01000031: // Push
  72 + {
  73 + QPushButton *btn = qobject_cast<QPushButton*>(focusWidget());
  74 + if(btn != NULL){
  75 + btn->click();
  76 + }
  77 + break;
  78 + }
  79 + case 0x01000032: // Turn right
  80 + if(focusWidget() == ui->ctrBtnYes) ui->ctrBtnNo->setFocus();
  81 + else ui->ctrBtnYes->setFocus();
  82 + break;
  83 + }
  84 +}
app/gui/oven_control/yesnopopupdlg.h
@@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
2 #define YESNOPOPUPDLG_H 2 #define YESNOPOPUPDLG_H
3 3
4 #include <QDialog> 4 #include <QDialog>
  5 +#include <QKeyEvent>
5 6
6 namespace Ui { 7 namespace Ui {
7 class YesNoPopupDlg; 8 class YesNoPopupDlg;
@@ -20,6 +21,10 @@ private slots: @@ -20,6 +21,10 @@ private slots:
20 21
21 void on_ctrBtnNo_clicked(); 22 void on_ctrBtnNo_clicked();
22 23
  24 +protected:
  25 + void keyPressEvent(QKeyEvent* event);
  26 + void keyReleaseEvent(QKeyEvent* event);
  27 +
23 private: 28 private:
24 Ui::YesNoPopupDlg *ui; 29 Ui::YesNoPopupDlg *ui;
25 }; 30 };
app/gui/oven_control/yesnopopupdlg.ui
@@ -54,7 +54,7 @@ @@ -54,7 +54,7 @@
54 border : none; 54 border : none;
55 color : white; 55 color : white;
56 } 56 }
57 -QPushButton::pressed {color : yellow}</string> 57 +QPushButton::pressed, QPushButton::focus{color : yellow}</string>
58 </property> 58 </property>
59 <property name="text"> 59 <property name="text">
60 <string>예</string> 60 <string>예</string>
@@ -81,7 +81,7 @@ QPushButton::pressed {color : yellow}&lt;/string&gt; @@ -81,7 +81,7 @@ QPushButton::pressed {color : yellow}&lt;/string&gt;
81 border : none; 81 border : none;
82 color : white; 82 color : white;
83 } 83 }
84 -QPushButton::pressed {color : yellow}</string> 84 +QPushButton::pressed, QPushButton::focus{color : yellow}</string>
85 </property> 85 </property>
86 <property name="text"> 86 <property name="text">
87 <string>아니오</string> 87 <string>아니오</string>