Merge pull request #9192 from german77/i_had_to_copy_each_one_again
yuzu: Change QtKeyToSwitchKey switch case to array
This commit is contained in:
		| @@ -401,224 +401,127 @@ void GRenderWindow::closeEvent(QCloseEvent* event) { | ||||
| } | ||||
|  | ||||
| int GRenderWindow::QtKeyToSwitchKey(Qt::Key qt_key) { | ||||
|     switch (qt_key) { | ||||
|     case Qt::Key_A: | ||||
|         return Settings::NativeKeyboard::A; | ||||
|     case Qt::Key_B: | ||||
|         return Settings::NativeKeyboard::B; | ||||
|     case Qt::Key_C: | ||||
|         return Settings::NativeKeyboard::C; | ||||
|     case Qt::Key_D: | ||||
|         return Settings::NativeKeyboard::D; | ||||
|     case Qt::Key_E: | ||||
|         return Settings::NativeKeyboard::E; | ||||
|     case Qt::Key_F: | ||||
|         return Settings::NativeKeyboard::F; | ||||
|     case Qt::Key_G: | ||||
|         return Settings::NativeKeyboard::G; | ||||
|     case Qt::Key_H: | ||||
|         return Settings::NativeKeyboard::H; | ||||
|     case Qt::Key_I: | ||||
|         return Settings::NativeKeyboard::I; | ||||
|     case Qt::Key_J: | ||||
|         return Settings::NativeKeyboard::J; | ||||
|     case Qt::Key_K: | ||||
|         return Settings::NativeKeyboard::K; | ||||
|     case Qt::Key_L: | ||||
|         return Settings::NativeKeyboard::L; | ||||
|     case Qt::Key_M: | ||||
|         return Settings::NativeKeyboard::M; | ||||
|     case Qt::Key_N: | ||||
|         return Settings::NativeKeyboard::N; | ||||
|     case Qt::Key_O: | ||||
|         return Settings::NativeKeyboard::O; | ||||
|     case Qt::Key_P: | ||||
|         return Settings::NativeKeyboard::P; | ||||
|     case Qt::Key_Q: | ||||
|         return Settings::NativeKeyboard::Q; | ||||
|     case Qt::Key_R: | ||||
|         return Settings::NativeKeyboard::R; | ||||
|     case Qt::Key_S: | ||||
|         return Settings::NativeKeyboard::S; | ||||
|     case Qt::Key_T: | ||||
|         return Settings::NativeKeyboard::T; | ||||
|     case Qt::Key_U: | ||||
|         return Settings::NativeKeyboard::U; | ||||
|     case Qt::Key_V: | ||||
|         return Settings::NativeKeyboard::V; | ||||
|     case Qt::Key_W: | ||||
|         return Settings::NativeKeyboard::W; | ||||
|     case Qt::Key_X: | ||||
|         return Settings::NativeKeyboard::X; | ||||
|     case Qt::Key_Y: | ||||
|         return Settings::NativeKeyboard::Y; | ||||
|     case Qt::Key_Z: | ||||
|         return Settings::NativeKeyboard::Z; | ||||
|     case Qt::Key_1: | ||||
|         return Settings::NativeKeyboard::N1; | ||||
|     case Qt::Key_2: | ||||
|         return Settings::NativeKeyboard::N2; | ||||
|     case Qt::Key_3: | ||||
|         return Settings::NativeKeyboard::N3; | ||||
|     case Qt::Key_4: | ||||
|         return Settings::NativeKeyboard::N4; | ||||
|     case Qt::Key_5: | ||||
|         return Settings::NativeKeyboard::N5; | ||||
|     case Qt::Key_6: | ||||
|         return Settings::NativeKeyboard::N6; | ||||
|     case Qt::Key_7: | ||||
|         return Settings::NativeKeyboard::N7; | ||||
|     case Qt::Key_8: | ||||
|         return Settings::NativeKeyboard::N8; | ||||
|     case Qt::Key_9: | ||||
|         return Settings::NativeKeyboard::N9; | ||||
|     case Qt::Key_0: | ||||
|         return Settings::NativeKeyboard::N0; | ||||
|     case Qt::Key_Return: | ||||
|         return Settings::NativeKeyboard::Return; | ||||
|     case Qt::Key_Escape: | ||||
|         return Settings::NativeKeyboard::Escape; | ||||
|     case Qt::Key_Backspace: | ||||
|         return Settings::NativeKeyboard::Backspace; | ||||
|     case Qt::Key_Tab: | ||||
|         return Settings::NativeKeyboard::Tab; | ||||
|     case Qt::Key_Space: | ||||
|         return Settings::NativeKeyboard::Space; | ||||
|     case Qt::Key_Minus: | ||||
|         return Settings::NativeKeyboard::Minus; | ||||
|     case Qt::Key_Plus: | ||||
|     case Qt::Key_questiondown: | ||||
|         return Settings::NativeKeyboard::Plus; | ||||
|     case Qt::Key_BracketLeft: | ||||
|     case Qt::Key_BraceLeft: | ||||
|         return Settings::NativeKeyboard::OpenBracket; | ||||
|     case Qt::Key_BracketRight: | ||||
|     case Qt::Key_BraceRight: | ||||
|         return Settings::NativeKeyboard::CloseBracket; | ||||
|     case Qt::Key_Bar: | ||||
|         return Settings::NativeKeyboard::Pipe; | ||||
|     case Qt::Key_Dead_Tilde: | ||||
|         return Settings::NativeKeyboard::Tilde; | ||||
|     case Qt::Key_Ntilde: | ||||
|     case Qt::Key_Semicolon: | ||||
|         return Settings::NativeKeyboard::Semicolon; | ||||
|     case Qt::Key_Apostrophe: | ||||
|         return Settings::NativeKeyboard::Quote; | ||||
|     case Qt::Key_Dead_Grave: | ||||
|         return Settings::NativeKeyboard::Backquote; | ||||
|     case Qt::Key_Comma: | ||||
|         return Settings::NativeKeyboard::Comma; | ||||
|     case Qt::Key_Period: | ||||
|         return Settings::NativeKeyboard::Period; | ||||
|     case Qt::Key_Slash: | ||||
|         return Settings::NativeKeyboard::Slash; | ||||
|     case Qt::Key_CapsLock: | ||||
|         return Settings::NativeKeyboard::CapsLock; | ||||
|     case Qt::Key_F1: | ||||
|         return Settings::NativeKeyboard::F1; | ||||
|     case Qt::Key_F2: | ||||
|         return Settings::NativeKeyboard::F2; | ||||
|     case Qt::Key_F3: | ||||
|         return Settings::NativeKeyboard::F3; | ||||
|     case Qt::Key_F4: | ||||
|         return Settings::NativeKeyboard::F4; | ||||
|     case Qt::Key_F5: | ||||
|         return Settings::NativeKeyboard::F5; | ||||
|     case Qt::Key_F6: | ||||
|         return Settings::NativeKeyboard::F6; | ||||
|     case Qt::Key_F7: | ||||
|         return Settings::NativeKeyboard::F7; | ||||
|     case Qt::Key_F8: | ||||
|         return Settings::NativeKeyboard::F8; | ||||
|     case Qt::Key_F9: | ||||
|         return Settings::NativeKeyboard::F9; | ||||
|     case Qt::Key_F10: | ||||
|         return Settings::NativeKeyboard::F10; | ||||
|     case Qt::Key_F11: | ||||
|         return Settings::NativeKeyboard::F11; | ||||
|     case Qt::Key_F12: | ||||
|         return Settings::NativeKeyboard::F12; | ||||
|     case Qt::Key_Print: | ||||
|         return Settings::NativeKeyboard::PrintScreen; | ||||
|     case Qt::Key_ScrollLock: | ||||
|         return Settings::NativeKeyboard::ScrollLock; | ||||
|     case Qt::Key_Pause: | ||||
|         return Settings::NativeKeyboard::Pause; | ||||
|     case Qt::Key_Insert: | ||||
|         return Settings::NativeKeyboard::Insert; | ||||
|     case Qt::Key_Home: | ||||
|         return Settings::NativeKeyboard::Home; | ||||
|     case Qt::Key_PageUp: | ||||
|         return Settings::NativeKeyboard::PageUp; | ||||
|     case Qt::Key_Delete: | ||||
|         return Settings::NativeKeyboard::Delete; | ||||
|     case Qt::Key_End: | ||||
|         return Settings::NativeKeyboard::End; | ||||
|     case Qt::Key_PageDown: | ||||
|         return Settings::NativeKeyboard::PageDown; | ||||
|     case Qt::Key_Right: | ||||
|         return Settings::NativeKeyboard::Right; | ||||
|     case Qt::Key_Left: | ||||
|         return Settings::NativeKeyboard::Left; | ||||
|     case Qt::Key_Down: | ||||
|         return Settings::NativeKeyboard::Down; | ||||
|     case Qt::Key_Up: | ||||
|         return Settings::NativeKeyboard::Up; | ||||
|     case Qt::Key_NumLock: | ||||
|         return Settings::NativeKeyboard::NumLock; | ||||
|     // Numpad keys are missing here | ||||
|     case Qt::Key_F13: | ||||
|         return Settings::NativeKeyboard::F13; | ||||
|     case Qt::Key_F14: | ||||
|         return Settings::NativeKeyboard::F14; | ||||
|     case Qt::Key_F15: | ||||
|         return Settings::NativeKeyboard::F15; | ||||
|     case Qt::Key_F16: | ||||
|         return Settings::NativeKeyboard::F16; | ||||
|     case Qt::Key_F17: | ||||
|         return Settings::NativeKeyboard::F17; | ||||
|     case Qt::Key_F18: | ||||
|         return Settings::NativeKeyboard::F18; | ||||
|     case Qt::Key_F19: | ||||
|         return Settings::NativeKeyboard::F19; | ||||
|     case Qt::Key_F20: | ||||
|         return Settings::NativeKeyboard::F20; | ||||
|     case Qt::Key_F21: | ||||
|         return Settings::NativeKeyboard::F21; | ||||
|     case Qt::Key_F22: | ||||
|         return Settings::NativeKeyboard::F22; | ||||
|     case Qt::Key_F23: | ||||
|         return Settings::NativeKeyboard::F23; | ||||
|     case Qt::Key_F24: | ||||
|         return Settings::NativeKeyboard::F24; | ||||
|     // case Qt::: | ||||
|     //    return Settings::NativeKeyboard::KPComma; | ||||
|     // case Qt::: | ||||
|     //    return Settings::NativeKeyboard::Ro; | ||||
|     case Qt::Key_Hiragana_Katakana: | ||||
|         return Settings::NativeKeyboard::KatakanaHiragana; | ||||
|     case Qt::Key_yen: | ||||
|         return Settings::NativeKeyboard::Yen; | ||||
|     case Qt::Key_Henkan: | ||||
|         return Settings::NativeKeyboard::Henkan; | ||||
|     case Qt::Key_Muhenkan: | ||||
|         return Settings::NativeKeyboard::Muhenkan; | ||||
|     // case Qt::: | ||||
|     //    return Settings::NativeKeyboard::NumPadCommaPc98; | ||||
|     case Qt::Key_Hangul: | ||||
|         return Settings::NativeKeyboard::HangulEnglish; | ||||
|     case Qt::Key_Hangul_Hanja: | ||||
|         return Settings::NativeKeyboard::Hanja; | ||||
|     case Qt::Key_Katakana: | ||||
|         return Settings::NativeKeyboard::KatakanaKey; | ||||
|     case Qt::Key_Hiragana: | ||||
|         return Settings::NativeKeyboard::HiraganaKey; | ||||
|     case Qt::Key_Zenkaku_Hankaku: | ||||
|         return Settings::NativeKeyboard::ZenkakuHankaku; | ||||
|     // Modifier keys are handled by the modifier property | ||||
|     default: | ||||
|         return Settings::NativeKeyboard::None; | ||||
|     static constexpr std::array<std::pair<Qt::Key, Settings::NativeKeyboard::Keys>, 106> key_map = { | ||||
|         std::pair<Qt::Key, Settings::NativeKeyboard::Keys>{Qt::Key_A, Settings::NativeKeyboard::A}, | ||||
|         {Qt::Key_A, Settings::NativeKeyboard::A}, | ||||
|         {Qt::Key_B, Settings::NativeKeyboard::B}, | ||||
|         {Qt::Key_C, Settings::NativeKeyboard::C}, | ||||
|         {Qt::Key_D, Settings::NativeKeyboard::D}, | ||||
|         {Qt::Key_E, Settings::NativeKeyboard::E}, | ||||
|         {Qt::Key_F, Settings::NativeKeyboard::F}, | ||||
|         {Qt::Key_G, Settings::NativeKeyboard::G}, | ||||
|         {Qt::Key_H, Settings::NativeKeyboard::H}, | ||||
|         {Qt::Key_I, Settings::NativeKeyboard::I}, | ||||
|         {Qt::Key_J, Settings::NativeKeyboard::J}, | ||||
|         {Qt::Key_K, Settings::NativeKeyboard::K}, | ||||
|         {Qt::Key_L, Settings::NativeKeyboard::L}, | ||||
|         {Qt::Key_M, Settings::NativeKeyboard::M}, | ||||
|         {Qt::Key_N, Settings::NativeKeyboard::N}, | ||||
|         {Qt::Key_O, Settings::NativeKeyboard::O}, | ||||
|         {Qt::Key_P, Settings::NativeKeyboard::P}, | ||||
|         {Qt::Key_Q, Settings::NativeKeyboard::Q}, | ||||
|         {Qt::Key_R, Settings::NativeKeyboard::R}, | ||||
|         {Qt::Key_S, Settings::NativeKeyboard::S}, | ||||
|         {Qt::Key_T, Settings::NativeKeyboard::T}, | ||||
|         {Qt::Key_U, Settings::NativeKeyboard::U}, | ||||
|         {Qt::Key_V, Settings::NativeKeyboard::V}, | ||||
|         {Qt::Key_W, Settings::NativeKeyboard::W}, | ||||
|         {Qt::Key_X, Settings::NativeKeyboard::X}, | ||||
|         {Qt::Key_Y, Settings::NativeKeyboard::Y}, | ||||
|         {Qt::Key_Z, Settings::NativeKeyboard::Z}, | ||||
|         {Qt::Key_1, Settings::NativeKeyboard::N1}, | ||||
|         {Qt::Key_2, Settings::NativeKeyboard::N2}, | ||||
|         {Qt::Key_3, Settings::NativeKeyboard::N3}, | ||||
|         {Qt::Key_4, Settings::NativeKeyboard::N4}, | ||||
|         {Qt::Key_5, Settings::NativeKeyboard::N5}, | ||||
|         {Qt::Key_6, Settings::NativeKeyboard::N6}, | ||||
|         {Qt::Key_7, Settings::NativeKeyboard::N7}, | ||||
|         {Qt::Key_8, Settings::NativeKeyboard::N8}, | ||||
|         {Qt::Key_9, Settings::NativeKeyboard::N9}, | ||||
|         {Qt::Key_0, Settings::NativeKeyboard::N0}, | ||||
|         {Qt::Key_Return, Settings::NativeKeyboard::Return}, | ||||
|         {Qt::Key_Escape, Settings::NativeKeyboard::Escape}, | ||||
|         {Qt::Key_Backspace, Settings::NativeKeyboard::Backspace}, | ||||
|         {Qt::Key_Tab, Settings::NativeKeyboard::Tab}, | ||||
|         {Qt::Key_Space, Settings::NativeKeyboard::Space}, | ||||
|         {Qt::Key_Minus, Settings::NativeKeyboard::Minus}, | ||||
|         {Qt::Key_Plus, Settings::NativeKeyboard::Plus}, | ||||
|         {Qt::Key_questiondown, Settings::NativeKeyboard::Plus}, | ||||
|         {Qt::Key_BracketLeft, Settings::NativeKeyboard::OpenBracket}, | ||||
|         {Qt::Key_BraceLeft, Settings::NativeKeyboard::OpenBracket}, | ||||
|         {Qt::Key_BracketRight, Settings::NativeKeyboard::CloseBracket}, | ||||
|         {Qt::Key_BraceRight, Settings::NativeKeyboard::CloseBracket}, | ||||
|         {Qt::Key_Bar, Settings::NativeKeyboard::Pipe}, | ||||
|         {Qt::Key_Dead_Tilde, Settings::NativeKeyboard::Tilde}, | ||||
|         {Qt::Key_Ntilde, Settings::NativeKeyboard::Semicolon}, | ||||
|         {Qt::Key_Semicolon, Settings::NativeKeyboard::Semicolon}, | ||||
|         {Qt::Key_Apostrophe, Settings::NativeKeyboard::Quote}, | ||||
|         {Qt::Key_Dead_Grave, Settings::NativeKeyboard::Backquote}, | ||||
|         {Qt::Key_Comma, Settings::NativeKeyboard::Comma}, | ||||
|         {Qt::Key_Period, Settings::NativeKeyboard::Period}, | ||||
|         {Qt::Key_Slash, Settings::NativeKeyboard::Slash}, | ||||
|         {Qt::Key_CapsLock, Settings::NativeKeyboard::CapsLockKey}, | ||||
|         {Qt::Key_F1, Settings::NativeKeyboard::F1}, | ||||
|         {Qt::Key_F2, Settings::NativeKeyboard::F2}, | ||||
|         {Qt::Key_F3, Settings::NativeKeyboard::F3}, | ||||
|         {Qt::Key_F4, Settings::NativeKeyboard::F4}, | ||||
|         {Qt::Key_F5, Settings::NativeKeyboard::F5}, | ||||
|         {Qt::Key_F6, Settings::NativeKeyboard::F6}, | ||||
|         {Qt::Key_F7, Settings::NativeKeyboard::F7}, | ||||
|         {Qt::Key_F8, Settings::NativeKeyboard::F8}, | ||||
|         {Qt::Key_F9, Settings::NativeKeyboard::F9}, | ||||
|         {Qt::Key_F10, Settings::NativeKeyboard::F10}, | ||||
|         {Qt::Key_F11, Settings::NativeKeyboard::F11}, | ||||
|         {Qt::Key_F12, Settings::NativeKeyboard::F12}, | ||||
|         {Qt::Key_Print, Settings::NativeKeyboard::PrintScreen}, | ||||
|         {Qt::Key_ScrollLock, Settings::NativeKeyboard::ScrollLockKey}, | ||||
|         {Qt::Key_Pause, Settings::NativeKeyboard::Pause}, | ||||
|         {Qt::Key_Insert, Settings::NativeKeyboard::Insert}, | ||||
|         {Qt::Key_Home, Settings::NativeKeyboard::Home}, | ||||
|         {Qt::Key_PageUp, Settings::NativeKeyboard::PageUp}, | ||||
|         {Qt::Key_Delete, Settings::NativeKeyboard::Delete}, | ||||
|         {Qt::Key_End, Settings::NativeKeyboard::End}, | ||||
|         {Qt::Key_PageDown, Settings::NativeKeyboard::PageDown}, | ||||
|         {Qt::Key_Right, Settings::NativeKeyboard::Right}, | ||||
|         {Qt::Key_Left, Settings::NativeKeyboard::Left}, | ||||
|         {Qt::Key_Down, Settings::NativeKeyboard::Down}, | ||||
|         {Qt::Key_Up, Settings::NativeKeyboard::Up}, | ||||
|         {Qt::Key_NumLock, Settings::NativeKeyboard::NumLockKey}, | ||||
|         // Numpad keys are missing here | ||||
|         {Qt::Key_F13, Settings::NativeKeyboard::F13}, | ||||
|         {Qt::Key_F14, Settings::NativeKeyboard::F14}, | ||||
|         {Qt::Key_F15, Settings::NativeKeyboard::F15}, | ||||
|         {Qt::Key_F16, Settings::NativeKeyboard::F16}, | ||||
|         {Qt::Key_F17, Settings::NativeKeyboard::F17}, | ||||
|         {Qt::Key_F18, Settings::NativeKeyboard::F18}, | ||||
|         {Qt::Key_F19, Settings::NativeKeyboard::F19}, | ||||
|         {Qt::Key_F20, Settings::NativeKeyboard::F20}, | ||||
|         {Qt::Key_F21, Settings::NativeKeyboard::F21}, | ||||
|         {Qt::Key_F22, Settings::NativeKeyboard::F22}, | ||||
|         {Qt::Key_F23, Settings::NativeKeyboard::F23}, | ||||
|         {Qt::Key_F24, Settings::NativeKeyboard::F24}, | ||||
|         // {Qt::..., Settings::NativeKeyboard::KPComma}, | ||||
|         // {Qt::..., Settings::NativeKeyboard::Ro}, | ||||
|         {Qt::Key_Hiragana_Katakana, Settings::NativeKeyboard::KatakanaHiragana}, | ||||
|         {Qt::Key_yen, Settings::NativeKeyboard::Yen}, | ||||
|         {Qt::Key_Henkan, Settings::NativeKeyboard::Henkan}, | ||||
|         {Qt::Key_Muhenkan, Settings::NativeKeyboard::Muhenkan}, | ||||
|         // {Qt::..., Settings::NativeKeyboard::NumPadCommaPc98}, | ||||
|         {Qt::Key_Hangul, Settings::NativeKeyboard::HangulEnglish}, | ||||
|         {Qt::Key_Hangul_Hanja, Settings::NativeKeyboard::Hanja}, | ||||
|         {Qt::Key_Katakana, Settings::NativeKeyboard::KatakanaKey}, | ||||
|         {Qt::Key_Hiragana, Settings::NativeKeyboard::HiraganaKey}, | ||||
|         {Qt::Key_Zenkaku_Hankaku, Settings::NativeKeyboard::ZenkakuHankaku}, | ||||
|         // Modifier keys are handled by the modifier property | ||||
|     }; | ||||
|  | ||||
|     for (const auto& [qkey, nkey] : key_map) { | ||||
|         if (qt_key == qkey) { | ||||
|             return nkey; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     return Settings::NativeKeyboard::None; | ||||
| } | ||||
|  | ||||
| int GRenderWindow::QtModifierToSwitchModifier(Qt::KeyboardModifiers qt_modifiers) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user