Commit 63a45681f34e203e092b342ed67a8d59c0d1b77e
1 parent
d16e913bdb
Exists in
master
and in
2 other branches
엔코더 기능 구현
- 키보드 적용
Showing
19 changed files
with
443 additions
and
24 deletions
Show diff stats
app/gui/oven_control/config1digitsetandenablesetdlg.cpp
1 | +#include <QKeyEvent> | |
1 | 2 | #include "config1digitsetandenablesetdlg.h" |
2 | 3 | #include "ui_config1digitsetandenablesetdlg.h" |
3 | 4 | #include "soundplayer.h" |
... | ... | @@ -19,6 +20,9 @@ Config1DigitSetAndEnableSetDlg::Config1DigitSetAndEnableSetDlg(QWidget *parent, |
19 | 20 | ui->ctrSpBxValue->setValue(val); |
20 | 21 | |
21 | 22 | ui->ctrSpBxValue->installEventFilter(this); |
23 | + | |
24 | + connect(ui->keyboardwidget, SIGNAL(onOkKeyClicked()), this, SLOT(keyEnter_clicked())); | |
25 | + connect(ui->keyboardwidget, SIGNAL(onCancelKeyClicked()), this, SLOT(keyCancel_clicked())); | |
22 | 26 | } |
23 | 27 | |
24 | 28 | Config1DigitSetAndEnableSetDlg::~Config1DigitSetAndEnableSetDlg() |
... | ... | @@ -46,6 +50,67 @@ void Config1DigitSetAndEnableSetDlg::on_ctrBtnCancel_clicked() |
46 | 50 | close(); |
47 | 51 | } |
48 | 52 | |
53 | +void Config1DigitSetAndEnableSetDlg::keyCancel_clicked() | |
54 | +{ | |
55 | + if(focusWidget() == ui->ctrSpBxValue) ui->ctrSpBxValue->setValue(m_nPrevValue); | |
56 | + ui->keyboardwidget->focusOutKeyboard(); | |
57 | +} | |
58 | + | |
59 | +void Config1DigitSetAndEnableSetDlg::keyEnter_clicked() | |
60 | +{ | |
61 | + ui->keyboardwidget->focusOutKeyboard(); | |
62 | +} | |
63 | + | |
49 | 64 | int Config1DigitSetAndEnableSetDlg::getValue(){ |
50 | 65 | return ui->ctrSpBxValue->value(); |
51 | 66 | } |
67 | + | |
68 | + | |
69 | +void Config1DigitSetAndEnableSetDlg::keyPressEvent(QKeyEvent *event){ | |
70 | + int i = 0; | |
71 | + switch (event->key()) | |
72 | + { | |
73 | + case 0x01000030: // Turn left | |
74 | + if(focusWidget() == ui->ctrSpBxValue) ui->ctrBtnCancel->setFocus(); | |
75 | + else focusPreviousChild(); | |
76 | + break; | |
77 | + case 0x01000031: // Push | |
78 | + | |
79 | + break; | |
80 | + case 0x01000032: // Turn right | |
81 | + if(focusWidget() == ui->ctrBtnCancel) ui->ctrSpBxValue->setFocus(); | |
82 | + else focusNextChild(); | |
83 | + | |
84 | + break; | |
85 | + } | |
86 | +} | |
87 | + | |
88 | +void Config1DigitSetAndEnableSetDlg::keyReleaseEvent(QKeyEvent *event){ | |
89 | + int i = 0; | |
90 | + switch (event->key()) | |
91 | + { | |
92 | + case 0x01000030: // Turn left | |
93 | + if(focusWidget() == ui->ctrSpBxValue) ui->ctrBtnCancel->setFocus(); | |
94 | + else focusPreviousChild(); | |
95 | + break; | |
96 | + case 0x01000031: // Push | |
97 | + { | |
98 | + QPushButton *btn = qobject_cast<QPushButton*>(focusWidget()); | |
99 | + if(btn != NULL){ | |
100 | + btn->click(); | |
101 | + } | |
102 | + else{ | |
103 | + QSpinBox *spbx = qobject_cast<QSpinBox*>(focusWidget()); | |
104 | + if(spbx != NULL) { | |
105 | + m_nPrevValue = spbx->value(); | |
106 | + ui->keyboardwidget->focusInKeyboard(); | |
107 | + } | |
108 | + } | |
109 | + break; | |
110 | + } | |
111 | + case 0x01000032: // Turn right | |
112 | + if(focusWidget() == ui->ctrBtnCancel) ui->ctrSpBxValue->setFocus(); | |
113 | + else focusNextChild(); | |
114 | + break; | |
115 | + } | |
116 | +} | ... | ... |
app/gui/oven_control/config1digitsetandenablesetdlg.h
... | ... | @@ -34,9 +34,18 @@ private slots: |
34 | 34 | |
35 | 35 | void on_ctrBtnCancel_clicked(); |
36 | 36 | |
37 | +public slots: | |
38 | + void keyCancel_clicked(); | |
39 | + void keyEnter_clicked(); | |
40 | + | |
41 | +protected: | |
42 | + void keyReleaseEvent(QKeyEvent* event); | |
43 | + void keyPressEvent(QKeyEvent* event); | |
44 | + | |
37 | 45 | private: |
38 | 46 | Ui::Config1DigitSetAndEnableSetDlg *ui; |
39 | 47 | custom_result m_nResult; |
48 | + int m_nPrevValue; | |
40 | 49 | }; |
41 | 50 | |
42 | 51 | #endif // CONFIG1DIGITSETANDENABLESETDLG_H | ... | ... |
app/gui/oven_control/config1digitsetandenablesetdlg.ui
... | ... | @@ -314,6 +314,12 @@ QPushButton::pressed, QPushButton::focus{ |
314 | 314 | <container>1</container> |
315 | 315 | </customwidget> |
316 | 316 | </customwidgets> |
317 | + <tabstops> | |
318 | + <tabstop>ctrSpBxValue</tabstop> | |
319 | + <tabstop>ctrBtnOk</tabstop> | |
320 | + <tabstop>ctrBtnOk_2</tabstop> | |
321 | + <tabstop>ctrBtnCancel</tabstop> | |
322 | + </tabstops> | |
317 | 323 | <resources/> |
318 | 324 | <connections/> |
319 | 325 | </ui> | ... | ... |
app/gui/oven_control/config1digitsetdlg.cpp
1 | 1 | #include <QDebug> |
2 | +#include <QKeyEvent> | |
2 | 3 | #include "config1digitsetdlg.h" |
3 | 4 | #include "ui_config1digitsetdlg.h" |
4 | 5 | #include "soundplayer.h" |
... | ... | @@ -16,6 +17,8 @@ Config1DigitSetDlg::Config1DigitSetDlg(QWidget *parent, ConfigType type) : |
16 | 17 | ui->setupUi(this); |
17 | 18 | this->setWindowFlags( Qt::FramelessWindowHint); |
18 | 19 | this->setAttribute( Qt::WA_DeleteOnClose); |
20 | + qApp->setActiveWindow(this); | |
21 | + this->setFocus(); | |
19 | 22 | |
20 | 23 | foreach (QPushButton *button, findChildren<QPushButton *>()) |
21 | 24 | connect(button, &QPushButton::pressed, SoundPlayer::playClick); |
... | ... | @@ -53,6 +56,9 @@ Config1DigitSetDlg::Config1DigitSetDlg(QWidget *parent, ConfigType type) : |
53 | 56 | |
54 | 57 | ui->ctrSpBxValue->installEventFilter(this); |
55 | 58 | |
59 | + connect(ui->keyboardwidget, SIGNAL(onOkKeyClicked()), this, SLOT(keyEnter_clicked())); | |
60 | + connect(ui->keyboardwidget, SIGNAL(onCancelKeyClicked()), this, SLOT(keyCancel_clicked())); | |
61 | + | |
56 | 62 | } |
57 | 63 | |
58 | 64 | Config1DigitSetDlg::~Config1DigitSetDlg() |
... | ... | @@ -83,3 +89,62 @@ bool Config1DigitSetDlg::eventFilter(QObject *object, QEvent *event){ |
83 | 89 | } |
84 | 90 | return QWidget::eventFilter(object, event); |
85 | 91 | } |
92 | + | |
93 | +void Config1DigitSetDlg::keyPressEvent(QKeyEvent *event){ | |
94 | + int i = 0; | |
95 | + switch (event->key()) | |
96 | + { | |
97 | + case 0x01000030: // Turn left | |
98 | + if(focusWidget() == ui->ctrSpBxValue) ui->ctrBtnCancel->setFocus(); | |
99 | + else focusPreviousChild(); | |
100 | + break; | |
101 | + case 0x01000031: // Push | |
102 | + | |
103 | + break; | |
104 | + case 0x01000032: // Turn right | |
105 | + if(focusWidget() == ui->ctrBtnCancel) ui->ctrSpBxValue->setFocus(); | |
106 | + else focusNextChild(); | |
107 | + | |
108 | + break; | |
109 | + } | |
110 | +} | |
111 | + | |
112 | +void Config1DigitSetDlg::keyReleaseEvent(QKeyEvent *event){ | |
113 | + int i = 0; | |
114 | + switch (event->key()) | |
115 | + { | |
116 | + case 0x01000030: // Turn left | |
117 | + if(focusWidget() == ui->ctrSpBxValue) ui->ctrBtnCancel->setFocus(); | |
118 | + else focusPreviousChild(); | |
119 | + break; | |
120 | + case 0x01000031: // Push | |
121 | + { | |
122 | + QPushButton *btn = qobject_cast<QPushButton*>(focusWidget()); | |
123 | + if(btn != NULL){ | |
124 | + btn->click(); | |
125 | + } | |
126 | + else{ | |
127 | + QSpinBox *spbx = qobject_cast<QSpinBox*>(focusWidget()); | |
128 | + qDebug() << "grab keyboard"; | |
129 | + if(spbx != NULL) { | |
130 | + m_nPrevValue = spbx->value(); | |
131 | + ui->keyboardwidget->focusInKeyboard(); | |
132 | + } | |
133 | + } | |
134 | + break; | |
135 | + } | |
136 | + case 0x01000032: // Turn right | |
137 | + if(focusWidget() == ui->ctrBtnCancel) ui->ctrSpBxValue->setFocus(); | |
138 | + else focusNextChild(); | |
139 | + break; | |
140 | + } | |
141 | +} | |
142 | + | |
143 | +void Config1DigitSetDlg::keyCancel_clicked(){ | |
144 | + if(focusWidget() == ui->ctrSpBxValue) ui->ctrSpBxValue->setValue(m_nPrevValue); | |
145 | + ui->keyboardwidget->focusOutKeyboard(); | |
146 | +} | |
147 | + | |
148 | +void Config1DigitSetDlg::keyEnter_clicked(){ | |
149 | + ui->keyboardwidget->focusOutKeyboard(); | |
150 | +} | ... | ... |
app/gui/oven_control/config1digitsetdlg.h
... | ... | @@ -25,9 +25,17 @@ private slots: |
25 | 25 | |
26 | 26 | bool eventFilter(QObject *, QEvent *); |
27 | 27 | |
28 | + void keyCancel_clicked(); | |
29 | + void keyEnter_clicked(); | |
30 | + | |
31 | +protected: | |
32 | + void keyReleaseEvent(QKeyEvent* event); | |
33 | + void keyPressEvent(QKeyEvent* event); | |
34 | + | |
28 | 35 | private: |
29 | 36 | Ui::Config1DigitSetDlg *ui; |
30 | 37 | ConfigType m_nType; |
38 | + int m_nPrevValue; | |
31 | 39 | }; |
32 | 40 | |
33 | 41 | #endif // CONFIG1DIGITSETDLG_H | ... | ... |
app/gui/oven_control/config1digitsetdlg.ui
... | ... | @@ -291,6 +291,11 @@ QPushButton::pressed, QPushButton::focus{ |
291 | 291 | <container>1</container> |
292 | 292 | </customwidget> |
293 | 293 | </customwidgets> |
294 | + <tabstops> | |
295 | + <tabstop>ctrSpBxValue</tabstop> | |
296 | + <tabstop>ctrBtnOk</tabstop> | |
297 | + <tabstop>ctrBtnCancel</tabstop> | |
298 | + </tabstops> | |
294 | 299 | <resources/> |
295 | 300 | <connections/> |
296 | 301 | </ui> | ... | ... |
app/gui/oven_control/configdatetimedlg.cpp
... | ... | @@ -33,8 +33,8 @@ ConfigDateTimeDlg::ConfigDateTimeDlg(QWidget *parent) : |
33 | 33 | m_bInputState = true; |
34 | 34 | |
35 | 35 | |
36 | - connect(ui->keyboardwidget, SIGNAL(onOkKeyClicked()), this, SLOT(on_keyEnter_clicked())); | |
37 | - connect(ui->keyboardwidget, SIGNAL(onCancelKeyClicked()), this, SLOT(on_keyCancel_clicked())); | |
36 | + connect(ui->keyboardwidget, SIGNAL(onOkKeyClicked()), this, SLOT(keyEnter_clicked())); | |
37 | + connect(ui->keyboardwidget, SIGNAL(onCancelKeyClicked()), this, SLOT(keyCancel_clicked())); | |
38 | 38 | |
39 | 39 | m_pMapperSpins = new QSignalMapper(this); |
40 | 40 | m_pMapperSpins->setMapping(ui->ctrSpBxYear, ui->ctrSpBxYear); |
... | ... | @@ -49,7 +49,7 @@ ConfigDateTimeDlg::ConfigDateTimeDlg(QWidget *parent) : |
49 | 49 | connect(ui->ctrSpBxHour, SIGNAL(focusInEdit()), m_pMapperSpins, SLOT(map())); |
50 | 50 | connect(ui->ctrSpBxMin, SIGNAL(focusInEdit()), m_pMapperSpins, SLOT(map())); |
51 | 51 | |
52 | - connect(m_pMapperSpins, SIGNAL(mapped(QWidget*)), this, SLOT(on_focusInSpinBox(QWidget*))); | |
52 | + connect(m_pMapperSpins, SIGNAL(mapped(QWidget*)), this, SLOT(focusInSpinBox(QWidget*))); | |
53 | 53 | } |
54 | 54 | |
55 | 55 | ConfigDateTimeDlg::~ConfigDateTimeDlg() |
... | ... | @@ -128,7 +128,7 @@ void ConfigDateTimeDlg::keyReleaseEvent(QKeyEvent *event){ |
128 | 128 | } |
129 | 129 | } |
130 | 130 | |
131 | -void ConfigDateTimeDlg::on_keyCancel_clicked(){ | |
131 | +void ConfigDateTimeDlg::keyCancel_clicked(){ | |
132 | 132 | QSpinBox *spbx = qobject_cast<QSpinBox*>(focusWidget()); |
133 | 133 | if(spbx != NULL){ |
134 | 134 | spbx->setValue(m_nFocusValue); |
... | ... | @@ -136,11 +136,11 @@ void ConfigDateTimeDlg::on_keyCancel_clicked(){ |
136 | 136 | ui->keyboardwidget->focusOutKeyboard(); |
137 | 137 | } |
138 | 138 | |
139 | -void ConfigDateTimeDlg::on_keyEnter_clicked(){ | |
139 | +void ConfigDateTimeDlg::keyEnter_clicked(){ | |
140 | 140 | ui->keyboardwidget->focusOutKeyboard(); |
141 | 141 | } |
142 | 142 | |
143 | -void ConfigDateTimeDlg::on_focusInSpinBox(QWidget *widget){ | |
143 | +void ConfigDateTimeDlg::focusInSpinBox(QWidget *widget){ | |
144 | 144 | QSpinBox *spbx = qobject_cast<QSpinBox*>(widget); |
145 | 145 | if(spbx != NULL){ |
146 | 146 | m_nFocusValue = spbx->value(); | ... | ... |
app/gui/oven_control/configdatetimedlg.h
... | ... | @@ -25,10 +25,10 @@ private slots: |
25 | 25 | |
26 | 26 | void on_ctrBtnCancel_clicked(); |
27 | 27 | |
28 | - void on_keyCancel_clicked(); | |
29 | - void on_keyEnter_clicked(); | |
28 | + void keyCancel_clicked(); | |
29 | + void keyEnter_clicked(); | |
30 | 30 | |
31 | - void on_focusInSpinBox(QWidget* widget); | |
31 | + void focusInSpinBox(QWidget* widget); | |
32 | 32 | |
33 | 33 | protected: |
34 | 34 | void keyReleaseEvent(QKeyEvent* event); | ... | ... |
app/gui/oven_control/configdoormonitoring.cpp
... | ... | @@ -168,5 +168,21 @@ void ConfigDoorMonitoring::keyPressEvent(QKeyEvent *event){ |
168 | 168 | } |
169 | 169 | |
170 | 170 | void ConfigDoorMonitoring::keyReleaseEvent(QKeyEvent *event){ |
171 | - | |
171 | + switch (event->key()) | |
172 | + { | |
173 | + case 0x01000030: // Turn left | |
174 | + focusPreviousChild(); | |
175 | + break; | |
176 | + case 0x01000031: // Push | |
177 | + { | |
178 | + QPushButton *btn = qobject_cast<QPushButton*>(focusWidget()); | |
179 | + if(btn != NULL){ | |
180 | + btn->click(); | |
181 | + } | |
182 | + break; | |
183 | + } | |
184 | + case 0x01000032: // Turn right | |
185 | + focusNextChild(); | |
186 | + break; | |
187 | + } | |
172 | 188 | } | ... | ... |
app/gui/oven_control/configipdlg.cpp
1 | +#include <QKeyEvent> | |
1 | 2 | #include "configipdlg.h" |
2 | 3 | #include "ui_configipdlg.h" |
3 | 4 | #include "config.h" |
... | ... | @@ -13,6 +14,8 @@ ConfigIpDlg::ConfigIpDlg(QWidget *parent) : |
13 | 14 | setWindowFlags(Qt::FramelessWindowHint); |
14 | 15 | setAttribute(Qt::WA_NoSystemBackground); |
15 | 16 | setAttribute(Qt::WA_TranslucentBackground); |
17 | + qApp->setActiveWindow(this); | |
18 | + this->setFocus(); | |
16 | 19 | |
17 | 20 | foreach (QPushButton *button, findChildren<QPushButton *>()) |
18 | 21 | connect(button, &QPushButton::pressed, SoundPlayer::playClick); |
... | ... | @@ -51,6 +54,39 @@ ConfigIpDlg::ConfigIpDlg(QWidget *parent) : |
51 | 54 | ui->ctrNetmask_2->setValue(temp.d8.d8_2); |
52 | 55 | ui->ctrNetmask_3->setValue(temp.d8.d8_3); |
53 | 56 | |
57 | + connect(ui->keyboardwidget, SIGNAL(onOkKeyClicked()), this, SLOT(keyEnter_clicked())); | |
58 | + connect(ui->keyboardwidget, SIGNAL(onCancelKeyClicked()), this, SLOT(keyCancel_clicked())); | |
59 | + | |
60 | + m_pSignalMapper = new QSignalMapper(this); | |
61 | + | |
62 | + m_pSignalMapper->setMapping(ui->ctrIp_0,ui->ctrIp_0); | |
63 | + m_pSignalMapper->setMapping(ui->ctrIp_1,ui->ctrIp_1); | |
64 | + m_pSignalMapper->setMapping(ui->ctrIp_2,ui->ctrIp_2); | |
65 | + m_pSignalMapper->setMapping(ui->ctrIp_3,ui->ctrIp_3); | |
66 | + m_pSignalMapper->setMapping(ui->ctrGw_0,ui->ctrGw_0); | |
67 | + m_pSignalMapper->setMapping(ui->ctrGw_1,ui->ctrGw_1); | |
68 | + m_pSignalMapper->setMapping(ui->ctrGw_2,ui->ctrGw_2); | |
69 | + m_pSignalMapper->setMapping(ui->ctrGw_3,ui->ctrGw_3); | |
70 | + m_pSignalMapper->setMapping(ui->ctrNetmask_0,ui->ctrNetmask_0); | |
71 | + m_pSignalMapper->setMapping(ui->ctrNetmask_1,ui->ctrNetmask_1); | |
72 | + m_pSignalMapper->setMapping(ui->ctrNetmask_2,ui->ctrNetmask_2); | |
73 | + m_pSignalMapper->setMapping(ui->ctrNetmask_3,ui->ctrNetmask_3); | |
74 | + | |
75 | + connect(ui->ctrGw_0,SIGNAL(focusInEdit()),m_pSignalMapper, SLOT(map())); | |
76 | + connect(ui->ctrGw_1,SIGNAL(focusInEdit()),m_pSignalMapper, SLOT(map())); | |
77 | + connect(ui->ctrGw_2,SIGNAL(focusInEdit()),m_pSignalMapper, SLOT(map())); | |
78 | + connect(ui->ctrGw_3,SIGNAL(focusInEdit()),m_pSignalMapper, SLOT(map())); | |
79 | + connect(ui->ctrIp_0,SIGNAL(focusInEdit()),m_pSignalMapper, SLOT(map())); | |
80 | + connect(ui->ctrIp_1,SIGNAL(focusInEdit()),m_pSignalMapper, SLOT(map())); | |
81 | + connect(ui->ctrIp_2,SIGNAL(focusInEdit()),m_pSignalMapper, SLOT(map())); | |
82 | + connect(ui->ctrIp_3,SIGNAL(focusInEdit()),m_pSignalMapper, SLOT(map())); | |
83 | + connect(ui->ctrNetmask_0,SIGNAL(focusInEdit()),m_pSignalMapper, SLOT(map())); | |
84 | + connect(ui->ctrNetmask_1,SIGNAL(focusInEdit()),m_pSignalMapper, SLOT(map())); | |
85 | + connect(ui->ctrNetmask_2,SIGNAL(focusInEdit()),m_pSignalMapper, SLOT(map())); | |
86 | + connect(ui->ctrNetmask_3,SIGNAL(focusInEdit()),m_pSignalMapper, SLOT(map())); | |
87 | + | |
88 | + connect(m_pSignalMapper, SIGNAL(mapped(QWidget*)), this, SLOT(focusInSpinBox(QWidget*))); | |
89 | + | |
54 | 90 | } |
55 | 91 | |
56 | 92 | ConfigIpDlg::~ConfigIpDlg() |
... | ... | @@ -88,3 +124,66 @@ void ConfigIpDlg::on_ctrBtnCancel_clicked() |
88 | 124 | { |
89 | 125 | reject(); |
90 | 126 | } |
127 | + | |
128 | +void ConfigIpDlg::focusInSpinBox(QWidget *widget){ | |
129 | + QSpinBox *spbx = qobject_cast<QSpinBox*>(widget); | |
130 | + if(spbx != NULL){ | |
131 | + m_nFocusValue = spbx->value(); | |
132 | + } | |
133 | +} | |
134 | + | |
135 | +void ConfigIpDlg::keyPressEvent(QKeyEvent *event){ | |
136 | + switch (event->key()) | |
137 | + { | |
138 | + case 0x01000030: // Turn left | |
139 | + if(focusWidget() == ui->ctrIp_0) ui->ctrBtnCancel->setFocus(); | |
140 | + else focusPreviousChild(); | |
141 | + break; | |
142 | + case 0x01000031: // Push | |
143 | + | |
144 | + break; | |
145 | + case 0x01000032: // Turn right | |
146 | + if(focusWidget() == ui->ctrBtnCancel) ui->ctrIp_0->setFocus(); | |
147 | + else focusNextChild(); | |
148 | + | |
149 | + break; | |
150 | + } | |
151 | +} | |
152 | + | |
153 | +void ConfigIpDlg::keyReleaseEvent(QKeyEvent *event){ | |
154 | + switch (event->key()) | |
155 | + { | |
156 | + case 0x01000030: // Turn left | |
157 | + if(focusWidget() == ui->ctrIp_0) ui->ctrBtnCancel->setFocus(); | |
158 | + else focusPreviousChild(); | |
159 | + break; | |
160 | + case 0x01000031: // Push | |
161 | + { | |
162 | + QPushButton *btn = qobject_cast<QPushButton*>(focusWidget()); | |
163 | + if(btn != NULL){ | |
164 | + btn->click(); | |
165 | + } | |
166 | + else{ | |
167 | + QSpinBox *spbx = qobject_cast<QSpinBox*>(focusWidget()); | |
168 | + if(spbx != NULL) ui->keyboardwidget->focusInKeyboard(); | |
169 | + } | |
170 | + break; | |
171 | + } | |
172 | + case 0x01000032: // Turn right | |
173 | + if(focusWidget() == ui->ctrBtnCancel) ui->ctrIp_0->setFocus(); | |
174 | + else focusNextChild(); | |
175 | + break; | |
176 | + } | |
177 | +} | |
178 | + | |
179 | +void ConfigIpDlg::keyCancel_clicked(){ | |
180 | + QSpinBox *spbx = qobject_cast<QSpinBox*>(focusWidget()); | |
181 | + if(spbx != NULL){ | |
182 | + spbx->setValue(m_nFocusValue); | |
183 | + } | |
184 | + ui->keyboardwidget->focusOutKeyboard(); | |
185 | +} | |
186 | + | |
187 | +void ConfigIpDlg::keyEnter_clicked(){ | |
188 | + ui->keyboardwidget->focusOutKeyboard(); | |
189 | +} | ... | ... |
app/gui/oven_control/configipdlg.h
... | ... | @@ -2,6 +2,7 @@ |
2 | 2 | #define CONFIGIPDLG_H |
3 | 3 | |
4 | 4 | #include <QDialog> |
5 | +#include <QSignalMapper> | |
5 | 6 | |
6 | 7 | namespace Ui { |
7 | 8 | class ConfigIpDlg; |
... | ... | @@ -20,8 +21,21 @@ private slots: |
20 | 21 | |
21 | 22 | void on_ctrBtnCancel_clicked(); |
22 | 23 | |
24 | + void keyCancel_clicked(); | |
25 | + void keyEnter_clicked(); | |
26 | + | |
27 | + void focusInSpinBox(QWidget* widget); | |
28 | + | |
23 | 29 | private: |
24 | 30 | Ui::ConfigIpDlg *ui; |
31 | + | |
32 | + QSignalMapper* m_pSignalMapper; | |
33 | + int m_nFocusValue; | |
34 | + | |
35 | +protected: | |
36 | + void keyReleaseEvent(QKeyEvent* event); | |
37 | + void keyPressEvent(QKeyEvent* event); | |
38 | + | |
25 | 39 | }; |
26 | 40 | |
27 | 41 | #endif // CONFIGIPDLG_H | ... | ... |
app/gui/oven_control/configipdlg.ui
... | ... | @@ -665,6 +665,22 @@ QPushButton::pressed, QPushButton::focus{ |
665 | 665 | <header>formatterspinbox.h</header> |
666 | 666 | </customwidget> |
667 | 667 | </customwidgets> |
668 | + <tabstops> | |
669 | + <tabstop>ctrIp_0</tabstop> | |
670 | + <tabstop>ctrIp_1</tabstop> | |
671 | + <tabstop>ctrIp_2</tabstop> | |
672 | + <tabstop>ctrIp_3</tabstop> | |
673 | + <tabstop>ctrGw_0</tabstop> | |
674 | + <tabstop>ctrGw_1</tabstop> | |
675 | + <tabstop>ctrGw_2</tabstop> | |
676 | + <tabstop>ctrGw_3</tabstop> | |
677 | + <tabstop>ctrNetmask_0</tabstop> | |
678 | + <tabstop>ctrNetmask_1</tabstop> | |
679 | + <tabstop>ctrNetmask_2</tabstop> | |
680 | + <tabstop>ctrNetmask_3</tabstop> | |
681 | + <tabstop>ctrBtnOk</tabstop> | |
682 | + <tabstop>ctrBtnCancel</tabstop> | |
683 | + </tabstops> | |
668 | 684 | <resources/> |
669 | 685 | <connections/> |
670 | 686 | </ui> | ... | ... |
app/gui/oven_control/configwindow.cpp
... | ... | @@ -361,6 +361,17 @@ void ConfigWindow::on_pushButton_5_clicked() |
361 | 361 | void ConfigWindow::onDeleteFavoriteBtnClicked(uint16_t id){ |
362 | 362 | Config* cfg = Config::getInstance(); |
363 | 363 | ConfigFavoriteButton* btn; |
364 | + m_vectorTabOrder.clear(); | |
365 | + m_vectorTabOrder.append(this); | |
366 | + m_vectorTabOrder.append(ui->pushButton); | |
367 | + m_vectorTabOrder.append(ui->pushButton_8); | |
368 | + m_vectorTabOrder.append(ui->pushButton_7); | |
369 | + m_vectorTabOrder.append(ui->pushButton_2); | |
370 | + m_vectorTabOrder.append(ui->pushButton_4); | |
371 | + m_vectorTabOrder.append(ui->pushButton_5); | |
372 | + m_vectorTabOrder.append(ui->pushButton_6); | |
373 | + m_vectorTabOrder.append(ui->pushButton_3); | |
374 | + | |
364 | 375 | for(int i = 0;i<m_vectorFavorMenuList.count();i++){ |
365 | 376 | if(m_vectorFavorMenuList[i]->getBtnId() == id){ |
366 | 377 | btn = m_vectorFavorMenuList[i]; |
... | ... | @@ -369,7 +380,15 @@ void ConfigWindow::onDeleteFavoriteBtnClicked(uint16_t id){ |
369 | 380 | delete btn; |
370 | 381 | cfg->removeFavorite((ConfigType)id); |
371 | 382 | } |
383 | + else{ | |
384 | + m_vectorTabOrder.append(m_vectorFavorMenuList[i]->getBtn()); | |
385 | + m_vectorTabOrder.append(m_vectorFavorMenuList[i]->getDelBtn()); | |
386 | + } | |
372 | 387 | } |
388 | + | |
389 | + m_vectorTabOrder.append(ui->backButton); | |
390 | + m_vectorTabOrder.append(ui->washButton); | |
391 | + m_vectorTabOrder.append(ui->helpButton); | |
373 | 392 | } |
374 | 393 | |
375 | 394 | void ConfigWindow::on_washButton_clicked() | ... | ... |
app/gui/oven_control/engineermenuwindow.cpp
app/gui/oven_control/engineermenuwindow.ui
... | ... | @@ -613,6 +613,16 @@ QPushButton { color: rgb(255, 255, 255);text-align: left;padding-left:30px;}</st |
613 | 613 | <header>washwarnicon.h</header> |
614 | 614 | </customwidget> |
615 | 615 | </customwidgets> |
616 | + <tabstops> | |
617 | + <tabstop>engAdjustButton</tabstop> | |
618 | + <tabstop>stdConfigButton</tabstop> | |
619 | + <tabstop>functionTestButton</tabstop> | |
620 | + <tabstop>serviceHistoryButton</tabstop> | |
621 | + <tabstop>realDataButton</tabstop> | |
622 | + <tabstop>operationTimeButton</tabstop> | |
623 | + <tabstop>modelTypeConfigButton</tabstop> | |
624 | + <tabstop>backButton</tabstop> | |
625 | + </tabstops> | |
616 | 626 | <resources/> |
617 | 627 | <connections/> |
618 | 628 | </ui> | ... | ... |
app/gui/oven_control/keyboardwidget.cpp
... | ... | @@ -249,7 +249,23 @@ void KeyboardWidget::on_pushButton_40_clicked() |
249 | 249 | } |
250 | 250 | |
251 | 251 | void KeyboardWidget::keyPressEvent(QKeyEvent *event){ |
252 | - | |
252 | + switch (event->key()) | |
253 | + { | |
254 | + case 0x01000030: // Turn left | |
255 | + if(m_nCurTabPos > 0 ) m_nCurTabPos--; | |
256 | + else m_nCurTabPos = m_vectorTabOrder.size()-1; | |
257 | + if(m_pCurCheckedBtn !=NULL) m_pCurCheckedBtn->setChecked(false); | |
258 | + m_pCurCheckedBtn = m_vectorTabOrder[m_nCurTabPos]; | |
259 | + m_pCurCheckedBtn->setChecked(true); | |
260 | + break; | |
261 | + case 0x01000032: // Turn right | |
262 | + if(m_nCurTabPos < (m_vectorTabOrder.size() -1)) m_nCurTabPos++; | |
263 | + else m_nCurTabPos=0; | |
264 | + if(m_pCurCheckedBtn !=NULL) m_pCurCheckedBtn->setChecked(false); | |
265 | + m_pCurCheckedBtn = m_vectorTabOrder[m_nCurTabPos]; | |
266 | + m_pCurCheckedBtn->setChecked(true); | |
267 | + break; | |
268 | + } | |
253 | 269 | } |
254 | 270 | |
255 | 271 | void KeyboardWidget::keyReleaseEvent(QKeyEvent *event){ | ... | ... |
app/gui/oven_control/servicepassinputdlg.cpp
... | ... | @@ -14,13 +14,20 @@ ServicePassInputDlg::ServicePassInputDlg(QWidget *parent) : |
14 | 14 | setAttribute(Qt::WA_NoSystemBackground); |
15 | 15 | setAttribute(Qt::WA_TranslucentBackground); |
16 | 16 | setAttribute(Qt::WA_DeleteOnClose); |
17 | + qApp->setActiveWindow(this); | |
18 | + ui->ctrProgressBar->setFocus(); | |
19 | + | |
17 | 20 | this->setResult(QDialog::Accepted); |
18 | 21 | foreach (QPushButton *button, findChildren<QPushButton *>()) |
19 | 22 | connect(button, &QPushButton::pressed, SoundPlayer::playClick); |
20 | 23 | ui->ctrProgressBar->setMaxProgress(0,MAX_PASSWORD); |
21 | 24 | m_nCurInputCount = 0; |
22 | - this->setFocus(); | |
23 | 25 | memset(m_strInputPass, 0x00, MAX_PASSWORD+1); |
26 | + connect(ui->keyboardwidget,SIGNAL(onBackspaceKeyClicked()), SLOT(backspaceKeyPressEvent())); | |
27 | + connect(ui->keyboardwidget, SIGNAL(onOkKeyClicked()), SLOT(keyEnter_clicked())); | |
28 | + connect(ui->keyboardwidget, SIGNAL(onCancelKeyClicked()),SLOT(keyCancel_clicked())); | |
29 | + connect(ui->keyboardwidget,SIGNAL(onKeyboardClickSignal(QString)),SLOT(keyboardInputEvent(QString))); | |
30 | + ui->keyboardwidget->focusInKeyboard(); | |
24 | 31 | } |
25 | 32 | |
26 | 33 | ServicePassInputDlg::~ServicePassInputDlg() |
... | ... | @@ -48,22 +55,71 @@ void ServicePassInputDlg::on_ctrBtnCancel_clicked() |
48 | 55 | reject(); |
49 | 56 | } |
50 | 57 | |
51 | -void ServicePassInputDlg::keyPressEvent(QKeyEvent *event){ | |
52 | - if(event->key() == Qt::Key_Backspace){ | |
53 | - if(m_nCurInputCount>0) m_nCurInputCount--; | |
54 | - m_strInputPass[m_nCurInputCount] = 0; | |
55 | - qDebug() <<"back space input" << QString(m_strInputPass); | |
56 | - ui->ctrProgressBar->setCurrentProgress(m_nCurInputCount); | |
57 | - } | |
58 | +void ServicePassInputDlg::backspaceKeyPressEvent(){ | |
59 | + if(m_nCurInputCount>0) m_nCurInputCount--; | |
60 | + m_strInputPass[m_nCurInputCount] = 0; | |
61 | + qDebug() <<"back space input" << QString(m_strInputPass); | |
62 | + ui->ctrProgressBar->setCurrentProgress(m_nCurInputCount); | |
58 | 63 | } |
59 | 64 | |
60 | -void ServicePassInputDlg::inputMethodEvent(QInputMethodEvent *event){ | |
65 | +void ServicePassInputDlg::keyboardInputEvent(QString strIn){ | |
61 | 66 | if(m_nCurInputCount < MAX_PASSWORD){ |
62 | - if(!event->commitString().isEmpty()){ | |
63 | - const QChar* in = event->commitString().constData(); | |
67 | + const QChar* in = strIn.constData(); | |
64 | 68 | m_strInputPass[m_nCurInputCount++] = in[0]; |
65 | 69 | qDebug() <<"input event" << QString(m_strInputPass); |
66 | 70 | ui->ctrProgressBar->setCurrentProgress(m_nCurInputCount); |
71 | + } | |
72 | +} | |
73 | + | |
74 | +void ServicePassInputDlg::keyPressEvent(QKeyEvent *event){ | |
75 | + int i = 0; | |
76 | + switch (event->key()) | |
77 | + { | |
78 | + case 0x01000030: // Turn left | |
79 | + if(focusWidget() == ui->ctrProgressBar) ui->ctrBtnCancel->setFocus(); | |
80 | + else focusPreviousChild(); | |
81 | + break; | |
82 | + case 0x01000031: // Push | |
83 | + | |
84 | + break; | |
85 | + case 0x01000032: // Turn right | |
86 | + if(focusWidget() == ui->ctrBtnCancel) ui->ctrProgressBar->setFocus(); | |
87 | + else focusNextChild(); | |
88 | + | |
89 | + break; | |
90 | + } | |
91 | +} | |
92 | + | |
93 | +void ServicePassInputDlg::keyReleaseEvent(QKeyEvent *event){ | |
94 | + int i = 0; | |
95 | + switch (event->key()) | |
96 | + { | |
97 | + case 0x01000030: // Turn left | |
98 | + if(focusWidget() == ui->ctrProgressBar) ui->ctrBtnCancel->setFocus(); | |
99 | + else focusPreviousChild(); | |
100 | + break; | |
101 | + case 0x01000031: // Push | |
102 | + { | |
103 | + QPushButton *btn = qobject_cast<QPushButton*>(focusWidget()); | |
104 | + if(btn != NULL){ | |
105 | + btn->click(); | |
67 | 106 | } |
107 | + else{ | |
108 | + ui->keyboardwidget->focusInKeyboard(); | |
109 | + } | |
110 | + break; | |
111 | + } | |
112 | + case 0x01000032: // Turn right | |
113 | + if(focusWidget() == ui->ctrBtnCancel) ui->ctrProgressBar->setFocus(); | |
114 | + else focusNextChild(); | |
115 | + break; | |
68 | 116 | } |
69 | 117 | } |
118 | + | |
119 | +void ServicePassInputDlg::keyCancel_clicked(){ | |
120 | + ui->ctrBtnCancel->click(); | |
121 | +} | |
122 | + | |
123 | +void ServicePassInputDlg::keyEnter_clicked(){ | |
124 | + ui->ctrBtnOk->click(); | |
125 | +} | ... | ... |
app/gui/oven_control/servicepassinputdlg.h
... | ... | @@ -16,8 +16,6 @@ class ServicePassInputDlg : public QDialog |
16 | 16 | { |
17 | 17 | Q_OBJECT |
18 | 18 | |
19 | - void keyPressEvent(QKeyEvent *); | |
20 | - void inputMethodEvent(QInputMethodEvent* event); | |
21 | 19 | |
22 | 20 | |
23 | 21 | QChar m_strInputPass[MAX_PASSWORD+1]; |
... | ... | @@ -31,6 +29,16 @@ private slots: |
31 | 29 | |
32 | 30 | void on_ctrBtnCancel_clicked(); |
33 | 31 | |
32 | + void keyCancel_clicked(); | |
33 | + void keyEnter_clicked(); | |
34 | + void backspaceKeyPressEvent(); | |
35 | + | |
36 | + void keyboardInputEvent(QString strIn); | |
37 | + | |
38 | +protected: | |
39 | + void keyPressEvent(QKeyEvent *event); | |
40 | + void keyReleaseEvent(QKeyEvent *event); | |
41 | + | |
34 | 42 | private: |
35 | 43 | Ui::ServicePassInputDlg *ui; |
36 | 44 | int m_nCurInputCount; | ... | ... |
app/gui/oven_control/servicepassinputdlg.ui
... | ... | @@ -157,6 +157,12 @@ QPushButton::pressed, QPushButton::focus{ |
157 | 157 | <height>150</height> |
158 | 158 | </size> |
159 | 159 | </property> |
160 | + <property name="focusPolicy"> | |
161 | + <enum>Qt::TabFocus</enum> | |
162 | + </property> | |
163 | + <property name="styleSheet"> | |
164 | + <string notr="true"/> | |
165 | + </property> | |
160 | 166 | </widget> |
161 | 167 | </item> |
162 | 168 | </layout> | ... | ... |