Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qohosxcomponentkeyevent.cpp
Go to the documentation of this file.
1// Copyright (C) 2025 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#include <qohosxcomponentkeyevent.h>
5
6#include <QtCore/qmap.h>
7
9
10namespace
11{
12
14 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_0, Qt::Key_Insert},
15 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_1, Qt::Key_End},
16 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_2, Qt::Key_Down},
17 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_3, Qt::Key_PageDown},
18 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_4, Qt::Key_Left},
19 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_5, Qt::Key_Clear},
20 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_6, Qt::Key_Right},
21 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_7, Qt::Key_Home},
22 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_8, Qt::Key_Up},
23 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_9, Qt::Key_PageUp},
24 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_COMMA, Qt::Key_Delete},
25 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_DOT, Qt::Key_Delete},
26};
27
29 {OH_NativeXComponent_KeyCode::KEY_HOME, Qt::Key_Home},
30 {OH_NativeXComponent_KeyCode::KEY_BACK, Qt::Key_Back},
31 {OH_NativeXComponent_KeyCode::KEY_MEDIA_PLAY_PAUSE, Qt::Key_MediaTogglePlayPause},
32 {OH_NativeXComponent_KeyCode::KEY_MEDIA_STOP, Qt::Key_MediaStop},
33 {OH_NativeXComponent_KeyCode::KEY_MEDIA_NEXT, Qt::Key_MediaNext},
34 {OH_NativeXComponent_KeyCode::KEY_MEDIA_PREVIOUS, Qt::Key_MediaPrevious},
35 {OH_NativeXComponent_KeyCode::KEY_MEDIA_REWIND, Qt::Key_AudioRewind},
36 {OH_NativeXComponent_KeyCode::KEY_VOLUME_UP, Qt::Key_VolumeUp},
37 {OH_NativeXComponent_KeyCode::KEY_VOLUME_DOWN, Qt::Key_VolumeDown},
38 {OH_NativeXComponent_KeyCode::KEY_POWER, Qt::Key_PowerDown},
39 {OH_NativeXComponent_KeyCode::KEY_CAMERA, Qt::Key_Camera},
40 {OH_NativeXComponent_KeyCode::KEY_VOLUME_MUTE, Qt::Key_VolumeMute},
41 {OH_NativeXComponent_KeyCode::KEY_MUTE, Qt::Key_VolumeMute},
42 {OH_NativeXComponent_KeyCode::KEY_BRIGHTNESS_UP, Qt::Key_MonBrightnessUp},
43 {OH_NativeXComponent_KeyCode::KEY_BRIGHTNESS_DOWN, Qt::Key_MonBrightnessDown},
44 {OH_NativeXComponent_KeyCode::KEY_0, Qt::Key_0},
45 {OH_NativeXComponent_KeyCode::KEY_1, Qt::Key_1},
46 {OH_NativeXComponent_KeyCode::KEY_2, Qt::Key_2},
47 {OH_NativeXComponent_KeyCode::KEY_3, Qt::Key_3},
48 {OH_NativeXComponent_KeyCode::KEY_4, Qt::Key_4},
49 {OH_NativeXComponent_KeyCode::KEY_5, Qt::Key_5},
50 {OH_NativeXComponent_KeyCode::KEY_6, Qt::Key_6},
51 {OH_NativeXComponent_KeyCode::KEY_7, Qt::Key_7},
52 {OH_NativeXComponent_KeyCode::KEY_8, Qt::Key_8},
53 {OH_NativeXComponent_KeyCode::KEY_9, Qt::Key_9},
54 {OH_NativeXComponent_KeyCode::KEY_DPAD_UP, Qt::Key_Up},
55 {OH_NativeXComponent_KeyCode::KEY_DPAD_DOWN, Qt::Key_Down},
56 {OH_NativeXComponent_KeyCode::KEY_DPAD_LEFT, Qt::Key_Left},
57 {OH_NativeXComponent_KeyCode::KEY_DPAD_RIGHT, Qt::Key_Right},
58 {OH_NativeXComponent_KeyCode::KEY_DPAD_CENTER, Qt::Key_Enter},
59 {OH_NativeXComponent_KeyCode::KEY_A, Qt::Key_A},
60 {OH_NativeXComponent_KeyCode::KEY_B, Qt::Key_B},
61 {OH_NativeXComponent_KeyCode::KEY_C, Qt::Key_C},
62 {OH_NativeXComponent_KeyCode::KEY_D, Qt::Key_D},
63 {OH_NativeXComponent_KeyCode::KEY_E, Qt::Key_E},
64 {OH_NativeXComponent_KeyCode::KEY_F, Qt::Key_F},
65 {OH_NativeXComponent_KeyCode::KEY_G, Qt::Key_G},
66 {OH_NativeXComponent_KeyCode::KEY_H, Qt::Key_H},
67 {OH_NativeXComponent_KeyCode::KEY_I, Qt::Key_I},
68 {OH_NativeXComponent_KeyCode::KEY_J, Qt::Key_J},
69 {OH_NativeXComponent_KeyCode::KEY_K, Qt::Key_K},
70 {OH_NativeXComponent_KeyCode::KEY_L, Qt::Key_L},
71 {OH_NativeXComponent_KeyCode::KEY_M, Qt::Key_M},
72 {OH_NativeXComponent_KeyCode::KEY_N, Qt::Key_N},
73 {OH_NativeXComponent_KeyCode::KEY_O, Qt::Key_O},
74 {OH_NativeXComponent_KeyCode::KEY_P, Qt::Key_P},
75 {OH_NativeXComponent_KeyCode::KEY_Q, Qt::Key_Q},
76 {OH_NativeXComponent_KeyCode::KEY_R, Qt::Key_R},
77 {OH_NativeXComponent_KeyCode::KEY_S, Qt::Key_S},
78 {OH_NativeXComponent_KeyCode::KEY_T, Qt::Key_T},
79 {OH_NativeXComponent_KeyCode::KEY_U, Qt::Key_U},
80 {OH_NativeXComponent_KeyCode::KEY_V, Qt::Key_V},
81 {OH_NativeXComponent_KeyCode::KEY_W, Qt::Key_W},
82 {OH_NativeXComponent_KeyCode::KEY_X, Qt::Key_X},
83 {OH_NativeXComponent_KeyCode::KEY_Y, Qt::Key_Y},
84 {OH_NativeXComponent_KeyCode::KEY_Z, Qt::Key_Z},
85 {OH_NativeXComponent_KeyCode::KEY_COMMA, Qt::Key_Comma},
86 {OH_NativeXComponent_KeyCode::KEY_PERIOD, Qt::Key_Period},
87 {OH_NativeXComponent_KeyCode::KEY_ALT_LEFT, Qt::Key_Alt},
88 {OH_NativeXComponent_KeyCode::KEY_ALT_RIGHT, Qt::Key_Alt},
89 {OH_NativeXComponent_KeyCode::KEY_SHIFT_LEFT, Qt::Key_Shift},
90 {OH_NativeXComponent_KeyCode::KEY_SHIFT_RIGHT, Qt::Key_Shift},
91 {OH_NativeXComponent_KeyCode::KEY_TAB, Qt::Key_Tab},
92 {OH_NativeXComponent_KeyCode::KEY_SPACE, Qt::Key_Space},
93 {OH_NativeXComponent_KeyCode::KEY_EXPLORER, Qt::Key_Explorer},
94 {OH_NativeXComponent_KeyCode::KEY_ENVELOPE, Qt::Key_LaunchMail},
95 {OH_NativeXComponent_KeyCode::KEY_ENTER, Qt::Key_Return},
96 {OH_NativeXComponent_KeyCode::KEY_DEL, Qt::Key_Backspace},
97 {OH_NativeXComponent_KeyCode::KEY_GRAVE, Qt::Key_QuoteLeft},
98 {OH_NativeXComponent_KeyCode::KEY_MINUS, Qt::Key_Minus},
99 {OH_NativeXComponent_KeyCode::KEY_EQUALS, Qt::Key_Equal},
100 {OH_NativeXComponent_KeyCode::KEY_LEFT_BRACKET, Qt::Key_BracketLeft},
101 {OH_NativeXComponent_KeyCode::KEY_RIGHT_BRACKET, Qt::Key_BracketRight},
102 {OH_NativeXComponent_KeyCode::KEY_BACKSLASH, Qt::Key_Backslash},
103 {OH_NativeXComponent_KeyCode::KEY_SEMICOLON, Qt::Key_Semicolon},
104 {OH_NativeXComponent_KeyCode::KEY_APOSTROPHE, Qt::Key_Apostrophe},
105 {OH_NativeXComponent_KeyCode::KEY_SLASH, Qt::Key_Slash},
106 {OH_NativeXComponent_KeyCode::KEY_AT, Qt::Key_At},
107 {OH_NativeXComponent_KeyCode::KEY_PLUS, Qt::Key_Plus},
108 {OH_NativeXComponent_KeyCode::KEY_MENU, Qt::Key_Menu},
109 {OH_NativeXComponent_KeyCode::KEY_PAGE_UP, Qt::Key_PageUp},
110 {OH_NativeXComponent_KeyCode::KEY_PAGE_DOWN, Qt::Key_PageDown},
111 {OH_NativeXComponent_KeyCode::KEY_ESCAPE, Qt::Key_Escape},
112 {OH_NativeXComponent_KeyCode::KEY_FORWARD_DEL, Qt::Key_Delete},
113 {OH_NativeXComponent_KeyCode::KEY_CTRL_LEFT, Qt::Key_Control},
114 {OH_NativeXComponent_KeyCode::KEY_CTRL_RIGHT, Qt::Key_Control},
115 {OH_NativeXComponent_KeyCode::KEY_CAPS_LOCK, Qt::Key_CapsLock},
116 {OH_NativeXComponent_KeyCode::KEY_SCROLL_LOCK, Qt::Key_ScrollLock},
117 {OH_NativeXComponent_KeyCode::KEY_META_LEFT, Qt::Key_Meta},
118 {OH_NativeXComponent_KeyCode::KEY_META_RIGHT, Qt::Key_Meta},
119 {OH_NativeXComponent_KeyCode::KEY_SYSRQ, Qt::Key_SysReq},
120 {OH_NativeXComponent_KeyCode::KEY_MOVE_HOME, Qt::Key_Home},
121 {OH_NativeXComponent_KeyCode::KEY_MOVE_END, Qt::Key_End},
122 {OH_NativeXComponent_KeyCode::KEY_INSERT, Qt::Key_Insert},
123 {OH_NativeXComponent_KeyCode::KEY_FORWARD, Qt::Key_Forward},
124 {OH_NativeXComponent_KeyCode::KEY_MEDIA_PLAY, Qt::Key_MediaPlay},
125 {OH_NativeXComponent_KeyCode::KEY_MEDIA_PAUSE, Qt::Key_MediaPause},
126 {OH_NativeXComponent_KeyCode::KEY_MEDIA_EJECT, Qt::Key_Eject},
127 {OH_NativeXComponent_KeyCode::KEY_MEDIA_RECORD, Qt::Key_MediaRecord},
128 {OH_NativeXComponent_KeyCode::KEY_F1, Qt::Key_F1},
129 {OH_NativeXComponent_KeyCode::KEY_F2, Qt::Key_F2},
130 {OH_NativeXComponent_KeyCode::KEY_F3, Qt::Key_F3},
131 {OH_NativeXComponent_KeyCode::KEY_F4, Qt::Key_F4},
132 {OH_NativeXComponent_KeyCode::KEY_F5, Qt::Key_F5},
133 {OH_NativeXComponent_KeyCode::KEY_F6, Qt::Key_F6},
134 {OH_NativeXComponent_KeyCode::KEY_F7, Qt::Key_F7},
135 {OH_NativeXComponent_KeyCode::KEY_F8, Qt::Key_F8},
136 {OH_NativeXComponent_KeyCode::KEY_F9, Qt::Key_F9},
137 {OH_NativeXComponent_KeyCode::KEY_F10, Qt::Key_F10},
138 {OH_NativeXComponent_KeyCode::KEY_F11, Qt::Key_F11},
139 {OH_NativeXComponent_KeyCode::KEY_F12, Qt::Key_F12},
140 {OH_NativeXComponent_KeyCode::KEY_NUM_LOCK, Qt::Key_NumLock},
141 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_0, Qt::Key_0},
142 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_1, Qt::Key_1},
143 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_2, Qt::Key_2},
144 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_3, Qt::Key_3},
145 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_4, Qt::Key_4},
146 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_5, Qt::Key_5},
147 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_6, Qt::Key_6},
148 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_7, Qt::Key_7},
149 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_8, Qt::Key_8},
150 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_9, Qt::Key_9},
151 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_DIVIDE, Qt::Key_Slash},
152 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_MULTIPLY, Qt::Key_Asterisk},
153 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_SUBTRACT, Qt::Key_Minus},
154 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_ADD, Qt::Key_Plus},
155 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_DOT, Qt::Key_Period},
156 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_COMMA, Qt::Key_Comma},
157 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_ENTER, Qt::Key_Enter},
158 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_EQUALS, Qt::Key_Equal},
159 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_LEFT_PAREN, Qt::Key_ParenLeft},
160 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_RIGHT_PAREN, Qt::Key_ParenRight},
161 {OH_NativeXComponent_KeyCode::KEY_SLEEP, Qt::Key_Sleep},
162 {OH_NativeXComponent_KeyCode::KEY_ZENKAKU_HANKAKU, Qt::Key_Zenkaku_Hankaku},
163 {OH_NativeXComponent_KeyCode::KEY_KATAKANA, Qt::Key_Katakana},
164 {OH_NativeXComponent_KeyCode::KEY_HIRAGANA, Qt::Key_Hiragana},
165 {OH_NativeXComponent_KeyCode::KEY_HENKAN, Qt::Key_Henkan},
166 {OH_NativeXComponent_KeyCode::KEY_KATAKANA_HIRAGANA, Qt::Key_Hiragana_Katakana},
167 {OH_NativeXComponent_KeyCode::KEY_MUHENKAN, Qt::Key_Muhenkan},
168 {OH_NativeXComponent_KeyCode::KEY_NUMPAD_PLUSMINUS, Qt::Key_plusminus},
169 {OH_NativeXComponent_KeyCode::KEY_YEN, Qt::Key_yen},
170 {OH_NativeXComponent_KeyCode::KEY_STOP, Qt::Key_Stop},
171 {OH_NativeXComponent_KeyCode::KEY_UNDO, Qt::Key_Undo},
172 {OH_NativeXComponent_KeyCode::KEY_COPY, Qt::Key_Copy},
173 {OH_NativeXComponent_KeyCode::KEY_OPEN, Qt::Key_Open},
174 {OH_NativeXComponent_KeyCode::KEY_PASTE, Qt::Key_Paste},
175 {OH_NativeXComponent_KeyCode::KEY_FIND, Qt::Key_Find},
176 {OH_NativeXComponent_KeyCode::KEY_CUT, Qt::Key_Cut},
177 {OH_NativeXComponent_KeyCode::KEY_HELP, Qt::Key_Help},
178 {OH_NativeXComponent_KeyCode::KEY_CALC, Qt::Key_Calculator},
179 {OH_NativeXComponent_KeyCode::KEY_BOOKMARKS, Qt::Key_Book},
180 {OH_NativeXComponent_KeyCode::KEY_NEXT, Qt::Key_MediaNext},
181 {OH_NativeXComponent_KeyCode::KEY_PLAYPAUSE, Qt::Key_MediaTogglePlayPause},
182 {OH_NativeXComponent_KeyCode::KEY_PREVIOUS, Qt::Key_MediaPrevious},
183 {OH_NativeXComponent_KeyCode::KEY_STOPCD, Qt::Key_Stop},
184 {OH_NativeXComponent_KeyCode::KEY_REFRESH, Qt::Key_Refresh},
185 {OH_NativeXComponent_KeyCode::KEY_EXIT, Qt::Key_Exit},
186 {OH_NativeXComponent_KeyCode::KEY_NEW, Qt::Key_New},
187 {OH_NativeXComponent_KeyCode::KEY_REDO, Qt::Key_Redo},
188 {OH_NativeXComponent_KeyCode::KEY_CLOSE, Qt::Key_Close},
189 {OH_NativeXComponent_KeyCode::KEY_PLAY, Qt::Key_Play},
190 {OH_NativeXComponent_KeyCode::KEY_BASSBOOST, Qt::Key_BassBoost},
191 {OH_NativeXComponent_KeyCode::KEY_PRINT, Qt::Key_Print},
192 {OH_NativeXComponent_KeyCode::KEY_FINANCE, Qt::Key_Finance},
193 {OH_NativeXComponent_KeyCode::KEY_CANCEL, Qt::Key_Cancel},
194 {OH_NativeXComponent_KeyCode::KEY_SEND, Qt::Key_Send},
195 {OH_NativeXComponent_KeyCode::KEY_REPLY, Qt::Key_Reply},
196 {OH_NativeXComponent_KeyCode::KEY_FORWARDMAIL, Qt::Key_MailForward},
197 {OH_NativeXComponent_KeyCode::KEY_SAVE, Qt::Key_Save},
198 {OH_NativeXComponent_KeyCode::KEY_DOCUMENTS, Qt::Key_Documents},
199 {OH_NativeXComponent_KeyCode::KEY_VIDEO_NEXT, Qt::Key_MediaNext},
200 {OH_NativeXComponent_KeyCode::KEY_VIDEO_PREV, Qt::Key_MediaPrevious},
201 {OH_NativeXComponent_KeyCode::KEY_INFO, Qt::Key_Info},
202 {OH_NativeXComponent_KeyCode::KEY_SUBTITLE, Qt::Key_Subtitle},
203 {OH_NativeXComponent_KeyCode::KEY_CD, Qt::Key_CD},
204 {OH_NativeXComponent_KeyCode::KEY_VIDEO, Qt::Key_Video},
205 {OH_NativeXComponent_KeyCode::KEY_MEMO, Qt::Key_Memo},
206 {OH_NativeXComponent_KeyCode::KEY_CALENDAR, Qt::Key_Calendar},
207 {OH_NativeXComponent_KeyCode::KEY_RED, Qt::Key_Red},
208 {OH_NativeXComponent_KeyCode::KEY_GREEN, Qt::Key_Green},
209 {OH_NativeXComponent_KeyCode::KEY_YELLOW, Qt::Key_Yellow},
210 {OH_NativeXComponent_KeyCode::KEY_BLUE, Qt::Key_Blue},
211 {OH_NativeXComponent_KeyCode::KEY_CHANNELUP, Qt::Key_ChannelUp},
212 {OH_NativeXComponent_KeyCode::KEY_CHANNELDOWN, Qt::Key_ChannelDown},
213 {OH_NativeXComponent_KeyCode::KEY_ZOOMIN, Qt::Key_ZoomIn},
214 {OH_NativeXComponent_KeyCode::KEY_ZOOMOUT, Qt::Key_ZoomOut},
215 {OH_NativeXComponent_KeyCode::KEY_NEWS, Qt::Key_News},
216 {OH_NativeXComponent_KeyCode::KEY_MESSENGER, Qt::Key_Messenger},
217 {OH_NativeXComponent_KeyCode::KEY_SCREENSAVER, Qt::Key_ScreenSaver},
218 {OH_NativeXComponent_KeyCode::KEY_WAKEUP, Qt::Key_WakeUp},
219 {OH_NativeXComponent_KeyCode::KEY_XFER, Qt::Key_Xfer},
220 {OH_NativeXComponent_KeyCode::KEY_F13, Qt::Key_F13},
221 {OH_NativeXComponent_KeyCode::KEY_F14, Qt::Key_F14},
222 {OH_NativeXComponent_KeyCode::KEY_F15, Qt::Key_F15},
223 {OH_NativeXComponent_KeyCode::KEY_F16, Qt::Key_F16},
224 {OH_NativeXComponent_KeyCode::KEY_F17, Qt::Key_F17},
225 {OH_NativeXComponent_KeyCode::KEY_F18, Qt::Key_F18},
226 {OH_NativeXComponent_KeyCode::KEY_F19, Qt::Key_F19},
227 {OH_NativeXComponent_KeyCode::KEY_F20, Qt::Key_F20},
228 {OH_NativeXComponent_KeyCode::KEY_F21, Qt::Key_F21},
229 {OH_NativeXComponent_KeyCode::KEY_F22, Qt::Key_F22},
230 {OH_NativeXComponent_KeyCode::KEY_F23, Qt::Key_F23},
231 {OH_NativeXComponent_KeyCode::KEY_F24, Qt::Key_F24},
232 {OH_NativeXComponent_KeyCode::KEY_SUSPEND, Qt::Key_Suspend},
233 {OH_NativeXComponent_KeyCode::KEY_QUESTION, Qt::Key_Question},
234 {OH_NativeXComponent_KeyCode::KEY_SHOP, Qt::Key_Shop},
235 {OH_NativeXComponent_KeyCode::KEY_BATTERY, Qt::Key_Battery},
236 {OH_NativeXComponent_KeyCode::KEY_BLUETOOTH, Qt::Key_Bluetooth},
237 {OH_NativeXComponent_KeyCode::KEY_WLAN, Qt::Key_WLAN},
238 {OH_NativeXComponent_KeyCode::KEY_UWB, Qt::Key_UWB},
239};
240
242 {OH_NativeXComponent_KeyCode::KEY_0, Qt::Key_ParenRight},
243 {OH_NativeXComponent_KeyCode::KEY_1, Qt::Key_Exclam},
244 {OH_NativeXComponent_KeyCode::KEY_2, Qt::Key_At},
245 {OH_NativeXComponent_KeyCode::KEY_3, Qt::Key_NumberSign},
246 {OH_NativeXComponent_KeyCode::KEY_4, Qt::Key_Dollar},
247 {OH_NativeXComponent_KeyCode::KEY_5, Qt::Key_Percent},
248 {OH_NativeXComponent_KeyCode::KEY_6, Qt::Key_AsciiCircum},
249 {OH_NativeXComponent_KeyCode::KEY_7, Qt::Key_Ampersand},
250 {OH_NativeXComponent_KeyCode::KEY_8, Qt::Key_Asterisk},
251 {OH_NativeXComponent_KeyCode::KEY_9, Qt::Key_ParenLeft},
252 {OH_NativeXComponent_KeyCode::KEY_LEFT_BRACKET, Qt::Key_BraceLeft},
253 {OH_NativeXComponent_KeyCode::KEY_RIGHT_BRACKET, Qt::Key_BraceRight},
254 {OH_NativeXComponent_KeyCode::KEY_BACKSLASH, Qt::Key_Bar},
255 {OH_NativeXComponent_KeyCode::KEY_SEMICOLON, Qt::Key_Colon},
256 {OH_NativeXComponent_KeyCode::KEY_APOSTROPHE, Qt::Key_QuoteDbl},
257 {OH_NativeXComponent_KeyCode::KEY_SLASH, Qt::Key_Question},
258 {OH_NativeXComponent_KeyCode::KEY_COMMA, Qt::Key_Less},
259 {OH_NativeXComponent_KeyCode::KEY_PERIOD, Qt::Key_Greater},
260 {OH_NativeXComponent_KeyCode::KEY_MINUS, Qt::Key_Underscore},
261 {OH_NativeXComponent_KeyCode::KEY_EQUALS, Qt::Key_Plus},
262 {OH_NativeXComponent_KeyCode::KEY_GRAVE, Qt::Key_AsciiTilde},
263};
264
265class QOhosXComponentKeyEvent final : public QOhosKeyEvent
266{
267public:
269 ::OH_NativeXComponent_KeyAction keyAction,
270 ::OH_NativeXComponent_KeyCode keyCode,
271 QFlags<OhosKeyboardModifier> keysFlags);
273
275 bool equals(const QOhosKeyEvent &other) const override;
276
277private:
278 QEvent::Type convertKeyAction() const;
279 bool isKeyFromNumPad() const;
280 Qt::Key convertKeyCode(Qt::KeyboardModifiers qtModifiers) const;
281
282 OH_NativeXComponent_KeyAction m_keyAction;
283 OH_NativeXComponent_KeyCode m_keyCode;
284 QFlags<OhosKeyboardModifier> m_keysFlags;
285};
286
287QOhosXComponentKeyEvent::QOhosXComponentKeyEvent(
288 ::OH_NativeXComponent_KeyAction keyAction,
289 ::OH_NativeXComponent_KeyCode keyCode,
290 QFlags<OhosKeyboardModifier> keysFlags)
292{
293}
294
295QOhosXComponentKeyEvent::~QOhosXComponentKeyEvent() = default;
296
298{
299 const auto qtModifiers = QtKeyEventHelpers::convertOhosToQtKeyboardModifiersWithNumpad(
300 m_keysFlags, isKeyFromNumPad());
301 const auto qtKeyAction = convertKeyAction();
302 const auto qtKeyCode = convertKeyCode(qtModifiers);
303 const auto qGuiApplicationKeyboardModifiers = QtKeyEventHelpers::convertCurrentOhosKeyModifiersForQGuiApplication(
304 qtModifiers, m_keysFlags, qtKeyCode);
305 const auto qtKeyText = QtKeyEventHelpers::tryConvertQtKeyCodeToKeyText(qtKeyCode, qtModifiers, m_keysFlags);
306
307 return makeQOhosOptional<QOhosQtKeyEvent>(
308 {qtKeyAction, qtKeyCode, qtKeyText, qtModifiers, qGuiApplicationKeyboardModifiers,
309 static_cast<quint32>(m_keyCode)});
310}
311
312bool QOhosXComponentKeyEvent::equals(const QOhosKeyEvent &other) const
313{
314 if (typeid(other) != typeid(QOhosXComponentKeyEvent))
315 return false;
316
317 const auto &otherXComponentKeyEvent = static_cast<const QOhosXComponentKeyEvent &>(other);
318
319 return m_keyAction == otherXComponentKeyEvent.m_keyAction
320 && m_keyCode == otherXComponentKeyEvent.m_keyCode
321 && m_keysFlags == otherXComponentKeyEvent.m_keysFlags;
322}
323
324QEvent::Type QOhosXComponentKeyEvent::convertKeyAction() const
325{
326 return m_keyAction == OH_NativeXComponent_KeyAction::OH_NATIVEXCOMPONENT_KEY_ACTION_DOWN
327 ? QEvent::KeyPress
328 : QEvent::KeyRelease;
329}
330
331bool QOhosXComponentKeyEvent::isKeyFromNumPad() const
332{
333 switch (m_keyCode) {
334 case KEY_NUMPAD_0:
335 case KEY_NUMPAD_1:
336 case KEY_NUMPAD_2:
337 case KEY_NUMPAD_3:
338 case KEY_NUMPAD_4:
339 case KEY_NUMPAD_5:
340 case KEY_NUMPAD_6:
341 case KEY_NUMPAD_7:
342 case KEY_NUMPAD_8:
343 case KEY_NUMPAD_9:
344 case KEY_NUMPAD_DIVIDE:
345 case KEY_NUMPAD_MULTIPLY:
346 case KEY_NUMPAD_SUBTRACT:
347 case KEY_NUMPAD_ADD:
348 case KEY_NUMPAD_DOT:
349 case KEY_NUMPAD_COMMA:
350 case KEY_NUMPAD_ENTER:
351 case KEY_NUMPAD_EQUALS:
352 case KEY_NUMPAD_LEFT_PAREN:
353 case KEY_NUMPAD_RIGHT_PAREN:
354 case KEY_NUMPAD_PLUSMINUS:
355 return true;
356 default:
357 return false;
358 }
359}
360
361Qt::Key QOhosXComponentKeyEvent::convertKeyCode(Qt::KeyboardModifiers qtModifiers) const
362{
363 const bool keyNumLockFlagOn = m_keysFlags.testFlag(OhosKeyboardModifier::NUM_LOCK);
364
366 && ohosXComponentQtKeyShiftPressedMap.contains(m_keyCode)) {
367 return ohosXComponentQtKeyShiftPressedMap.value(m_keyCode);
368 }
369
370 if ((!keyNumLockFlagOn || QtKeyEventHelpers::isOnlyShiftModificatorPressed(qtModifiers))
371 && ohosXComponentNumpadSpecialQtKeyMap.contains(m_keyCode)) {
372 return ohosXComponentNumpadSpecialQtKeyMap.value(m_keyCode);
373 }
374
375 if (ohosXComponentQtKeyMap.contains(m_keyCode))
376 return ohosXComponentQtKeyMap.value(m_keyCode);
377
378 qOhosWarning(QtForOhos) << "Cannot find mapping for OH_NativeXComponent_KeyCode =" << m_keyCode;
379 return Qt::Key_unknown;
380}
381
382}
383
385 ::OH_NativeXComponent_KeyAction keyAction, ::OH_NativeXComponent_KeyCode keyCode,
386 QFlags<OhosKeyboardModifier> keysFlags)
387{
388 return std::make_shared<QOhosXComponentKeyEvent>(keyAction, keyCode, keysFlags);
389}
390
391QT_END_NAMESPACE
std::enable_if_t< qohosplugincore_h_detail::isQOhosOptional< QOhosInvokeResult< Func, T > >, QOhosInvokeResult< Func, T > > andThen(Func &&func) const
QOhosOptional< QOhosQtKeyEvent > tryConvertToQOhosQtKeyEvent() const override
QOhosXComponentKeyEvent(::OH_NativeXComponent_KeyAction keyAction, ::OH_NativeXComponent_KeyCode keyCode, QFlags< OhosKeyboardModifier > keysFlags)
bool equals(const QOhosKeyEvent &other) const override
Combined button and popup list for selecting options.
const QMap< OH_NativeXComponent_KeyCode, Qt::Key > ohosXComponentQtKeyShiftPressedMap
const QMap< OH_NativeXComponent_KeyCode, Qt::Key > ohosXComponentQtKeyMap
const QMap< OH_NativeXComponent_KeyCode, Qt::Key > ohosXComponentNumpadSpecialQtKeyMap
bool isOnlyShiftModificatorPressed(Qt::KeyboardModifiers keyboardModifiers)
std::shared_ptr< QOhosKeyEvent > makeQOhosXComponentKeyEvent(::OH_NativeXComponent_KeyAction keyAction, ::OH_NativeXComponent_KeyCode keyCode, QFlags< OhosKeyboardModifier > keysFlags)