11 {0, 0,
"mr", 38, 0,
NS,
true,
true}, {0, 0,
"m1", 50, 0,
NS,
true,
true}, {0, 0,
"m2", 62, 0,
NS,
true,
true}, {0, 0,
"m3", 74, 0,
NS,
true,
true}, {0,
"Brightness",
"light", 222, 0,
NS,
true,
true}, {0,
"Windows Lock",
"lock", 234, 0,
NS,
true,
true}, {0,
"Mute",
"mute", 273, 0, 13, 8,
true,
true}, {0,
"Volume Up",
"volup", 290, -2, 18, 6,
false,
true}, {0,
"Volume down",
"voldn", 290, 2, 18, 6,
false,
true},
12 {0, 0,
"g1", 0, 14,
NS,
true,
true}, {0, 0,
"g2", 11, 14,
NS,
true,
true}, {0, 0,
"g3", 22, 14,
NS,
true,
true}, {0,
"Esc",
"esc", 38, 14,
NS,
true,
true}, {0, 0,
"f1", 58, 14,
NS,
true,
true}, {0, 0,
"f2", 70, 14,
NS,
true,
true}, {0, 0,
"f3", 82, 14,
NS,
true,
true}, {0, 0,
"f4", 94, 14,
NS,
true,
true}, {0, 0,
"f5", 114, 14,
NS,
true,
true}, {0, 0,
"f6", 126, 14,
NS,
true,
true}, {0, 0,
"f7", 138, 14,
NS,
true,
true}, {0, 0,
"f8", 150, 14,
NS,
true,
true}, {0, 0,
"f9", 170, 14,
NS,
true,
true}, {0, 0,
"f10", 182, 14,
NS,
true,
true}, {0, 0,
"f11", 194, 14,
NS,
true,
true}, {0, 0,
"f12", 206, 14,
NS,
true,
true}, {0,
"Print Screen\nSysRq",
"prtscn", 222, 14,
NS,
true,
true}, {0,
"Scroll Lock",
"scroll", 234, 14,
NS,
true,
true}, {0,
"Pause\nBreak",
"pause", 246, 14,
NS,
true,
true}, {0,
"Stop",
"stop", 262, 14, 12, 8,
true,
true}, {0,
"Previous",
"prev", 273, 14, 13, 8,
true,
true}, {0,
"Play/Pause",
"play", 285, 14, 13, 8,
true,
true}, {0,
"Next",
"next", 296, 14, 12, 8,
true,
true},
13 {0, 0,
"g4", 0, 25,
NS,
true,
true}, {0, 0,
"g5", 11, 25,
NS,
true,
true}, {0, 0,
"g6", 22, 25,
NS,
true,
true}, {0,
"`",
"grave", 38, 27,
NS,
true,
true}, {0, 0,
"1", 50, 27,
NS,
true,
true}, {0, 0,
"2", 62, 27,
NS,
true,
true}, {0, 0,
"3", 74, 27,
NS,
true,
true}, {0, 0,
"4", 86, 27,
NS,
true,
true}, {0, 0,
"5", 98, 27,
NS,
true,
true}, {0, 0,
"6", 110, 27,
NS,
true,
true}, {0, 0,
"7", 122, 27,
NS,
true,
true}, {0, 0,
"8", 134, 27,
NS,
true,
true}, {0, 0,
"9", 146, 27,
NS,
true,
true}, {0, 0,
"0", 158, 27,
NS,
true,
true}, {0,
"-",
"minus", 170, 27,
NS,
true,
true}, {0,
"=",
"equal", 182, 27,
NS,
true,
true}, {0,
"Backspace",
"bspace", 200, 27, 24, 12,
true,
true}, {0,
"Insert",
"ins", 222, 27,
NS,
true,
true}, {0,
"Home",
"home", 234, 27,
NS,
true,
true}, {0,
"Page Up",
"pgup", 246, 27,
NS,
true,
true}, {0,
"Num Lock",
"numlock", 261, 27,
NS,
true,
true}, {0,
"NumPad /",
"numslash", 273, 27,
NS,
true,
true}, {0,
"NumPad *",
"numstar", 285, 27,
NS,
true,
true}, {0,
"NumPad -",
"numminus", 297, 27,
NS,
true,
true},
14 {0, 0,
"g7", 0, 39,
NS,
true,
true}, {0, 0,
"g8", 11, 39,
NS,
true,
true}, {0, 0,
"g9", 22, 39,
NS,
true,
true}, {0,
"Tab",
"tab", 41, 39, 18, 12,
true,
true}, {0, 0,
"q", 56, 39,
NS,
true,
true}, {0, 0,
"w", 68, 39,
NS,
true,
true}, {0, 0,
"e", 80, 39,
NS,
true,
true}, {0, 0,
"r", 92, 39,
NS,
true,
true}, {0, 0,
"t", 104, 39,
NS,
true,
true}, {0, 0,
"y", 116, 39,
NS,
true,
true}, {0, 0,
"u", 128, 39,
NS,
true,
true}, {0, 0,
"i", 140, 39,
NS,
true,
true}, {0, 0,
"o", 152, 39,
NS,
true,
true}, {0, 0,
"p", 164, 39,
NS,
true,
true}, {0,
"[",
"lbrace", 176, 39,
NS,
true,
true}, {0,
"]",
"rbrace", 188, 39,
NS,
true,
true}, {0,
"\\",
"bslash", 203, 39, 18, 12,
true,
true}, {0,
"Enter",
"enter", 203, 39, 18, 24,
true,
true}, {0,
"Delete",
"del", 222, 39,
NS,
true,
true}, {0,
"End",
"end", 234, 39,
NS,
true,
true}, {0,
"Page Down",
"pgdn", 246, 39,
NS,
true,
true}, {0,
"NumPad 7",
"num7", 261, 39,
NS,
true,
true}, {0,
"NumPad 8",
"num8", 273, 39,
NS,
true,
true}, {0,
"NumPad 9",
"num9", 285, 39,
NS,
true,
true}, {0,
"NumPad +",
"numplus", 297, 45, 12, 24,
true,
true},
15 {0, 0,
"g10", 0, 50,
NS,
true,
true}, {0, 0,
"g11", 11, 50,
NS,
true,
true}, {0, 0,
"g12", 22, 50,
NS,
true,
true}, {0,
"Caps Lock",
"caps", 42, 51, 20, 12,
true,
true}, {0, 0,
"a", 59, 51,
NS,
true,
true}, {0, 0,
"s", 71, 51,
NS,
true,
true}, {0, 0,
"d", 83, 51,
NS,
true,
true}, {0, 0,
"f", 95, 51,
NS,
true,
true}, {0, 0,
"g", 107, 51,
NS,
true,
true}, {0, 0,
"h", 119, 51,
NS,
true,
true}, {0, 0,
"j", 131, 51,
NS,
true,
true}, {0, 0,
"k", 143, 51,
NS,
true,
true}, {0, 0,
"l", 155, 51,
NS,
true,
true}, {0,
";",
"colon", 167, 51,
NS,
true,
true}, {0,
"'",
"quote", 179, 51,
NS,
true,
true}, {0,
"#",
"hash", 191, 51,
NS,
true,
true}, {0,
"NumPad 4",
"num4", 261, 51,
NS,
true,
true}, {0,
"NumPad 5",
"num5", 273, 51,
NS,
true,
true}, {0,
"NumPad 6",
"num6", 285, 51,
NS,
true,
true},
16 {0, 0,
"g13", 0, 64,
NS,
true,
true}, {0, 0,
"g14", 11, 64,
NS,
true,
true}, {0, 0,
"g15", 22, 64,
NS,
true,
true}, {0,
"Left Shift",
"lshift", 39, 63, 14, 12,
true,
true}, {
"bslash",
"\\",
"bslash_iso", 53, 63,
NS,
true,
true}, {0, 0,
"z", 65, 63,
NS,
true,
true}, {0, 0,
"x", 77, 63,
NS,
true,
true}, {0, 0,
"c", 89, 63,
NS,
true,
true}, {0, 0,
"v", 101, 63,
NS,
true,
true}, {0, 0,
"b", 113, 63,
NS,
true,
true}, {0, 0,
"n", 125, 63,
NS,
true,
true}, {0, 0,
"m", 137, 63,
NS,
true,
true}, {0,
",",
"comma", 149, 63,
NS,
true,
true}, {0,
".",
"dot", 161, 63,
NS,
true,
true}, {0,
"/",
"slash", 173, 63,
NS,
true,
true}, {0,
"Right Shift",
"rshift", 196, 63, 32, 12,
true,
true}, {0,
"Up",
"up", 234, 63,
NS,
true,
true}, {0,
"NumPad 1",
"num1", 261, 63,
NS,
true,
true}, {0,
"NumPad 2",
"num2", 273, 63,
NS,
true,
true}, {0,
"NumPad 3",
"num3", 285, 63,
NS,
true,
true}, {0,
"NumPad Enter",
"numenter", 297, 69, 12, 24,
true,
true},
17 {0, 0,
"g16", 0, 75,
NS,
true,
true}, {0, 0,
"g17", 11, 75,
NS,
true,
true}, {0, 0,
"g18", 22, 75,
NS,
true,
true}, {0,
"Left Ctrl",
"lctrl", 40, 75, 16, 12,
true,
true}, {0,
"Left Windows",
"lwin", 54, 75,
NS,
true,
true}, {0,
"Left Alt",
"lalt", 67, 75, 14, 12,
true,
true}, {0,
"Space",
"space", 116, 75, 84, 12,
true,
true}, {0,
"Right Alt",
"ralt", 165, 75, 14, 12,
true,
true}, {0,
"Right Windows",
"rwin", 178, 75,
NS,
true,
true}, {0,
"Menu",
"rmenu", 190, 75,
NS,
true,
true}, {0,
"Right Ctrl",
"rctrl", 204, 75, 16, 12,
true,
true}, {0,
"Left",
"left", 222, 75,
NS,
true,
true}, {0,
"Down",
"down", 234, 75,
NS,
true,
true}, {0,
"Right",
"right", 246, 75,
NS,
true,
true}, {0,
"NumPad 0",
"num0", 267, 75, 24, 12,
true,
true}, {0,
"NumPad .",
"numdot", 285, 75,
NS,
true,
true}
19 #define KEYCOUNT_K95 (sizeof(K95Keys) / sizeof(Key))
22 #define ANSI_ENTER_X 199
23 #define ANSI_ENTER_Y 51
24 #define ANSI_ENTER_W 26
25 #define ANSI_ENTER_H 12
26 #define ANSI_LSHIFT_X 45
27 #define ANSI_LSHIFT_W 26
37 {0,
"§",
"grave"}, {0,
"+",
"minus"}, {0,
"´",
"equal"},
38 {0,
"Å",
"lbrace"}, {0,
"¨",
"rbrace"},
39 {0,
"Æ",
"colon"}, {0,
"Ø",
"quote"}, {0,
"'",
"hash"},
40 {0,
"<",
"bslash_iso"}, {0,
"-",
"slash"},
44 {0,
"\\ (R)",
"hash"},
45 {0,
"\\ (L)",
"bslash_iso"}
49 {
"sup2",
"²",
"grave"}, {0,
"&",
"1"}, {0,
"É",
"2"}, {0,
"\"",
"3"}, {0,
"'",
"4"}, {0,
"(",
"5"}, {0,
"-",
"6"}, {0,
"È",
"7"}, {0,
"_",
"8"}, {0,
"Ç",
"9"}, {0,
"À",
"0"}, {
"rparen",
")",
"minus"},
50 {
"a",
"A",
"q"}, {
"z",
"Z",
"w"}, {
"caret",
"^",
"lbrace"}, {
"dollar",
"$",
"rbrace"},
51 {
"q",
"Q",
"a"}, {
"m",
"M",
"colon"}, {
"percent",
"Ù",
"quote"}, {
"star",
"*",
"hash"},
52 {
"angle",
"<",
"bslash_iso"}, {
"w",
"W",
"z"}, {
"comma",
",",
"m"}, {
"semicolon",
";",
"comma"}, {
"colon",
":",
"dot"}, {
"exclam",
"!",
"slash"},
56 {
"caret",
"^",
"grave"}, {
"ss",
"ß",
"minus"}, {
"grave",
"´",
"equal"},
57 {
"z",
"Z",
"y"}, {
"ue",
"Ü",
"lbrace"}, {
"plus",
"+",
"rbrace"},
58 {
"oe",
"Ö",
"colon"}, {
"ae",
"Ä",
"quote"},
59 {
"angle",
"<",
"bslash_iso"}, {
"y",
"Y",
"z"}, {
"minus",
"-",
"slash"}
63 {0,
"\\",
"grave"}, {0,
"'",
"minus"}, {0,
"Ì",
"equal"},
64 {0,
"È",
"lbrace"}, {0,
"+",
"rbrace"},
65 {0,
"Ò",
"colon"}, {0,
"À",
"quote"}, {0,
"Ù",
"hash"},
66 {0,
"<",
"bslash_iso"}, {0,
"-",
"slash"},
70 {0,
"§",
"grave"}, {0,
"+",
"minus"}, {0,
"´",
"equal"},
71 {0,
"Å",
"lbrace"}, {0,
"¨",
"rbrace"},
72 {0,
"Ø",
"colon"}, {0,
"Æ",
"quote"}, {0,
"'",
"hash"},
73 {0,
"<",
"bslash_iso"}, {0,
"-",
"slash"},
77 {0,
"|",
"grave"}, {0,
"'",
"minus"}, {0,
"¿",
"equal"},
78 {0,
"´",
"lbrace"}, {0,
"+",
"rbrace"},
79 {0,
"Ñ",
"colon"}, {0,
"{",
"quote"}, {0,
"}",
"hash"},
80 {0,
"<",
"bslash_iso"}, {0,
"-",
"slash"},
84 {
"oa",
"º",
"grave"}, {
"quote",
"'",
"minus"}, {
"lexclam",
"¡",
"equal"},
85 {
"grave",
"`",
"lbrace"}, {
"plus",
"+",
"rbrace"},
86 {
"nn",
"Ñ",
"colon"}, {
"accent",
"´",
"quote"}, {
"cc",
"Ç",
"hash"},
87 {
"angle",
"<",
"bslash_iso"}, {
"minus",
"-",
"slash"},
91 {
"section",
"§",
"grave"}, {
"plus",
"+",
"minus"}, {
"grave",
"´",
"equal"},
92 {
"aa",
"Å",
"lbrace"}, {
"umlaut",
"¨",
"rbrace"},
93 {
"oe",
"Ö",
"colon"}, {
"ae",
"Ä",
"quote"}, {
"quote",
"'",
"hash"},
94 {
"angle",
"<",
"bslash_iso"}, {
"minus",
"-",
"slash"},
98 {0,
"[",
"minus"}, {0,
"]",
"equal"},
99 {0,
"'",
"q"}, {0,
",",
"w"}, {0,
".",
"e"}, {0,
"P",
"r"}, {0,
"Y",
"t"}, {0,
"F",
"y"}, {0,
"G",
"u"}, {0,
"C",
"i"}, {0,
"R",
"o"}, {0,
"L",
"p"}, {0,
"/",
"lbrace"}, {0,
"=",
"rbrace"},
100 {0,
"O",
"s"}, {0,
"E",
"d"}, {0,
"U",
"f"}, {0,
"I",
"g"}, {0,
"D",
"h"}, {0,
"H",
"j"}, {0,
"T",
"k"}, {0,
"N",
"l"}, {0,
"S",
"colon"}, {0,
"-",
"quote"},
101 {0,
";",
"z"}, {0,
"Q",
"x"}, {0,
"J",
"c"}, {0,
"K",
"v"}, {0,
"X",
"b"}, {0,
"B",
"n"}, {0,
"W",
"comma"}, {0,
"V",
"dot"}, {0,
"Z",
"slash"},
105 #define PATCH_COUNT(patch) (sizeof(patch) / sizeof(KeyPatch))
106 #define patch(map, patches) _patch(map, patches, PATCH_COUNT(patches))
107 static void _patch(QHash<QString, Key>& map,
const KeyPatch* patches,
int patchCount){
108 for(
const KeyPatch* p = patches; p < patches + patchCount; p++){
117 map.remove(
"bslash");
120 map.remove(
"bslash_iso");
122 Key& enter = map[
"enter"];
127 Key& lshift = map[
"lshift"];
133 #define K95_WIDTH 298
134 #define K95_HEIGHT 76
137 #define K70_X_START 38
138 #define K70_WIDTH (K95_WIDTH - K70_X_START)
139 #define K70_HEIGHT K95_HEIGHT
142 #define K65_WIDTH 209
143 #define K65_HEIGHT K70_HEIGHT
146 {0,
"Brightness",
"light", 164 -
K70_X_START, 0, 12, 12,
true,
true}, {0,
"Mute",
"mute", 176 -
K70_X_START, 0, 12, 12,
true,
true}, {0,
"Volume Down",
"voldn", 192 -
K70_X_START, 0, 14, 8,
true,
true}, {0,
"Volume Up",
"volup", 205 -
K70_X_START, 0, 14, 8,
true,
true}, {0,
"Windows Lock",
"lock", 222 -
K70_X_START, 0, 12, 12,
true,
true}
148 #define K65_TOP_COUNT (sizeof(K65TopRow) / sizeof(Key))
151 #define KSTRAFE_X_START 12
152 #define KSTRAFE_WIDTH (K70_WIDTH + (KSTRAFE_X_START * 2))
153 #define KSTRAFE_HEIGHT K95_HEIGHT
159 {0,
"Function",
"fn", 152, 75,
NS,
true,
true}
164 {0,
"Left Mouse",
"mouse1", 8, 0, 14, 32,
false,
true}, {0,
"Right Mouse",
"mouse2", 30, 0, 14, 32,
false,
true}, {0,
"Middle Mouse",
"mouse3", 22, 8, 8, 7,
false,
true},
165 {0,
"Wheel Up",
"wheelup", 22, 4, 8, 5,
false,
true}, {0,
"Wheel Down",
"wheeldn", 22, 14, 8, 5,
false,
true}, {0,
"Wheel Light",
"front", 22, 15, 8, 8,
true,
false},
166 {0,
"DPI Up",
"dpiup", 22, 19, 8, 6,
false,
true}, {0,
"DPI Light",
"dpi", 22, 24, 8, 8,
true,
false}, {0,
"DPI Down",
"dpidn", 22, 31, 8, 6,
false,
true},
167 {0,
"Forward",
"mouse5", 5, 24, 5, 9,
false,
true}, {0,
"Back",
"mouse4", 5, 33, 5, 10,
false,
true}, {0,
"Sniper",
"sniper", 0, 25, 5, 15,
false,
true},
168 {0,
"Logo",
"back", 14, 55, 24, 12,
true,
false}
170 #define KEYCOUNT_M65 (sizeof(M65Keys) / sizeof(Key))
173 #define M65_HEIGHT 67
177 {0,
"Left Mouse",
"mouse1", 8, 0, 14, 32,
false,
true}, {0,
"Right Mouse",
"mouse2", 30, 0, 14, 32,
false,
true}, {0,
"Middle Mouse",
"mouse3", 22, 9, 8, 7,
false,
true}, {0,
"Front light",
"front", 8, -2, 14, 8,
true,
false },
178 {0,
"Wheel Up",
"wheelup", 22, 5, 8, 5,
false,
true}, {0,
"Wheel Down",
"wheeldn", 22, 15, 8, 5,
false,
true}, {0,
"Wheel Light",
"wheel", 22, 5, 8, 15,
true,
false}, {0,
"Extra button",
"thumb1", 22, 20, 8, 18,
false,
true},
179 {0,
"DPI Up",
"dpiup", 5, 3, 5, 7,
false,
true}, {0,
"DPI Down",
"dpidn", 5, 10, 5, 7,
false,
true}, {0,
"DPI Light",
"dpi", 5, 4, 5, 12,
true,
false},
180 {0,
"Forward",
"mouse5", 5, 24, 5, 9,
false,
true}, {0,
"Back",
"mouse4", 5, 33, 5, 10,
false,
true},
181 {0,
"Logo",
"back", 14, 50, 24, 12,
true,
false}
183 #define KEYCOUNT_SABRE (sizeof(SabreKeys) / sizeof(Key))
185 #define SABRE_WIDTH M65_WIDTH
186 #define SABRE_HEIGHT M65_HEIGHT
190 {0,
"Left Mouse",
"mouse1", 8, 0, 14, 32,
false,
true}, {0,
"Right Mouse",
"mouse2", 30, 0, 12, 32,
false,
true}, {0,
"Middle Mouse",
"mouse3", 22, 9, 8, 6,
false,
true}, {0,
"Front light",
"front", 30, 0, 12, 8,
true,
false },
191 {0,
"Wheel Up",
"wheelup", 22, 3, 8, 6,
false,
true}, {0,
"Wheel Down",
"wheeldn", 22, 14, 8, 6,
false,
true}, {0,
"Wheel Light",
"wheel", 22, 3, 8, 17,
true,
false},
192 {0,
"DPI Up",
"dpiup", 22, 19, 8, 9,
false,
true}, {0,
"DPI Light",
"dpi", 1, 12, 8, 4,
true,
false}, {0,
"DPI Down",
"dpidn", 22, 28, 8, 9,
false,
true},
193 {0,
"Thumb light",
"thumb", 0, 21, 10, 24,
true,
false},
194 {0,
"1",
"thumb1", -13, 18, 7, 7,
false,
true}, {0,
"2",
"thumb2", -6, 18, 7, 7,
false,
true}, {0,
"3",
"thumb3", 1, 18, 7, 7,
false,
true},
195 {0,
"4",
"thumb4", -13, 25, 7, 7,
false,
true}, {0,
"5",
"thumb5", -6, 25, 7, 7,
false,
true}, {0,
"6",
"thumb6", 1, 25, 7, 7,
false,
true},
196 {0,
"7",
"thumb7", -13, 32, 7, 7,
false,
true}, {0,
"8",
"thumb8", -6, 32, 7, 7,
false,
true}, {0,
"9",
"thumb9", 1, 32, 7, 7,
false,
true},
197 {0,
"10",
"thumb10", -13, 39, 7, 7,
false,
true}, {0,
"11",
"thumb11", -6, 39, 7, 7,
false,
true}, {0,
"12",
"thumb12", 1, 39, 7, 7,
false,
true},
198 {0,
"Logo",
"back", 14, 50, 24, 16,
true,
false}
200 #define KEYCOUNT_SCIM (sizeof(ScimKeys) / sizeof(Key))
202 #define SCIM_WIDTH M65_WIDTH
203 #define SCIM_HEIGHT M65_HEIGHT
206 #define N_MODELS KeyMap::_MODEL_MAX
207 #define N_LAYOUTS KeyMap::_LAYOUT_MAX
212 return QHash<QString, Key>();
233 patch(map, patchDvorak);
239 patch(map, patchDvorak);
275 QMutableHashIterator<QString, Key> i(map);
293 QMutableHashIterator<QString, Key> i(map);
313 QMutableHashIterator<QString, Key> i(map);
319 map[
"lsidel"] = KStrafeKeys[0];
320 map[
"rsidel"] = KStrafeKeys[1];
321 map[
"logo"] = KStrafeKeys[2];
322 map[
"fn"] = KStrafeKeys[3];
341 translatedKey.
x += translatedKey.
width / 2;
342 translatedKey.
y += translatedKey.
height / 2;
343 map[
key->
name] = translatedKey;
353 translatedKey.
x += translatedKey.
width / 2;
354 translatedKey.
y += translatedKey.
height / 2;
355 map[
key->
name] = translatedKey;
363 translatedKey.
x += translatedKey.
width / 2;
364 translatedKey.
y += translatedKey.
height / 2;
365 map[
key->
name] = translatedKey;
376 setlocale(LC_ALL,
"");
377 QString loc = setlocale(LC_CTYPE, 0);
378 loc = loc.toLower().replace(
'_',
'-');
379 if(loc.startsWith(
"dk-"))
381 else if(loc.startsWith(
"fr-"))
383 else if(loc.startsWith(
"de-"))
385 else if(loc.startsWith(
"it-"))
387 else if(loc.startsWith(
"pl-"))
389 else if(loc.startsWith(
"no-"))
391 else if(loc.startsWith(
"es-es"))
394 else if(loc.startsWith(
"es-"))
397 else if(loc.startsWith(
"se-"))
399 else if(loc.startsWith(
"en-us") || loc.startsWith(
"en-au") || loc.startsWith(
"en-ca") || loc.startsWith(
"en-hk") || loc.startsWith(
"en-in") || loc.startsWith(
"en-nz") || loc.startsWith(
"en-ph") || loc.startsWith(
"en-sg") || loc.startsWith(
"en-za"))
408 QString lower = name.toLower();
413 if(lower ==
"eu_dvorak")
415 if(lower ==
"gb_dvorak")
419 if(lower ==
"us_dvorak")
482 <<
"English (ISO/European)" <<
"English (ISO/European, Dvorak)"
483 <<
"English (United Kingdom)" <<
"English (United Kingdom, Dvorak)"
484 <<
"English (United States)" <<
"English (United States, Dvorak)"
490 <<
"Spanish (Latin America)"
496 QString lower = name.toLower();
503 if(lower ==
"strafe")
509 if(lower ==
"scimitar")
536 QStringList list = name.trimmed().split(
" ");
537 if(list.length() != 2)
578 _keys(
getMap(_keyModel, _keyLayout)),
579 keyWidth(modelWidth(_keyModel)), keyHeight(modelHeight(_keyModel)),
580 keyModel(_keyModel), keyLayout(_keyLayout)
584 keyWidth(0), keyHeight(0),
585 keyModel(NO_MODEL), keyLayout(NO_LAYOUT)
590 QMap<int, QMap<int, QString> > ordered;
591 QHashIterator<QString, Key> i(*
this);
594 const Key&
key = i.value();
595 ordered[key.
y][key.
x] = i.key();
599 QMapIterator<int, QMap<int, QString> >
y(ordered);
602 QMapIterator<int, QString>
x(y.value());
625 if(key ==
"f13" || key ==
"f14" || key ==
"f15" || key ==
"f16" || key ==
"f17" || key ==
"f18" || key ==
"f19" || key ==
"f20")
626 return key.toUpper();
627 else if(key ==
"lightup")
628 return "Screen Brightness Up";
629 else if(key ==
"lightdn")
630 return "Screen Brightness Down";
631 else if(key ==
"eject" || key ==
"power")
632 return key[0].toUpper() + key.mid(1);
static const KeyPatch patchDE[]
static QHash< QString, Key > getMap(KeyMap::Model model, KeyMap::Layout layout)
static const KeyPatch patchEU[]
QStringList byPosition() const
static QString friendlyName(const QString &key, Layout layout=US)
static const KeyPatch patchFR[]
const char * _storageName
static QStringList layoutNames()
static const Key K65TopRow[]
static const KeyPatch patchMX[]
static Model getModel(const QString &name)
static const KeyPatch patchIT[]
bool contains(const QString &name) const
const char * _storageName
static const KeyPatch patchDK[]
static const Key KStrafeKeys[]
static Layout getLayout(const QString &name)
static const KeyPatch patchES[]
static void patchISO(QHash< QString, Key > &map)
static QHash< QString, Key > standardMaps[KeyMap::_MODEL_MAX][KeyMap::_LAYOUT_MAX]
static void patchANSI(QHash< QString, Key > &map)
static const Key K95Keys[]
const QHash< QString, Key > & map() const
static QHash< QString, Key > K95BaseMap
#define patch(map, patches)
static int modelWidth(Model model)
const char * _friendlyName
static const KeyPatch patchNO[]
static const Key M65Keys[]
static const Key SabreKeys[]
static const Key ScimKeys[]
static KeyMap fromName(const QString &name)
static int modelHeight(Model model)
const char * _friendlyName
static void _patch(QHash< QString, Key > &map, const KeyPatch *patches, int patchCount)
static const KeyPatch patchSE[]
static const KeyPatch patchDvorak[]