Commit | Line | Data |
---|---|---|
0203b5fd JPM |
1 | //\r |
2 | // keybindingstab.cpp: Key Bindings tab on the settings dialog\r | |
3 | //\r | |
4 | // Part of the Virtual Jaguar Project\r | |
5 | //\r | |
6 | // JPM = Jean-Paul Mari <djipi.mari@gmail.com>\r | |
7 | //\r | |
8 | // WHO WHEN WHAT\r | |
9 | // --- ---------- ------------------------------------------------------------\r | |
10 | // JPM 09/10/2017 Created this file\r | |
11 | \r | |
12 | #include "keybindingstab.h"\r | |
13 | #include "settings.h"\r | |
14 | \r | |
15 | \r | |
16 | //\r | |
17 | KeyBindings KeyBindingsTable[KB_END] = {\r | |
18 | { KB_TYPEGENERAL, "KB_Quit", "Quit", "Quit keybinding", "Ctrl+Q", NULL, NULL },\r | |
19 | { KB_TYPEGENERAL, "KB_PickFile", "Pick file", "Pick file keybinding", "Ctrl+I", NULL, NULL },\r | |
20 | { KB_TYPEGENERAL, "KB_Configure", "Configure", "Configure keybinding", "Ctrl+C", NULL, NULL },\r | |
21 | { KB_TYPEGENERAL, "KB_EmuStatus", "Emulator Status", "Emulator status keybinding", "Ctrl+S", NULL, NULL },\r | |
22 | { KB_TYPEGENERAL, "KB_Pause", "Pause", "Pause keybinding", "Esc", NULL, NULL },\r | |
23 | { KB_TYPEGENERAL, "KB_FrameAdvance", "Frame Advance", "Frame advance keybinding", "F7", NULL, NULL },\r | |
24 | { KB_TYPEDEBUGGER, "KB_Restart", "Restart", "Restart keybinding", "Ctrl+Shift+F5", NULL, NULL },\r | |
25 | { KB_TYPEDEBUGGER, "KB_StepInto", "Step Into", "Step into keybinding", "F11", NULL, NULL },\r | |
26 | { KB_TYPEDEBUGGER, "KB_StepOver", "Step Over", "Step over kebinding", "F10", NULL, NULL },\r | |
27 | { KB_TYPEGENERAL, "KB_FullScreen", "Full Screen", "Full screen kebinding", "F9", NULL, NULL }\r | |
28 | };\r | |
29 | \r | |
30 | \r | |
31 | //\r | |
32 | #define NBKEYBINDINGS sizeof(KeyBindingsTable)/sizeof(KeyBindings)\r | |
33 | \r | |
34 | \r | |
35 | // \r | |
36 | KeyBindingsTab::KeyBindingsTab(QWidget * parent/*= 0*/): QWidget(parent)\r | |
37 | {\r | |
38 | size_t i;\r | |
39 | \r | |
40 | QVBoxLayout *layout1 = new QVBoxLayout;\r | |
41 | QVBoxLayout *layout2 = new QVBoxLayout;\r | |
42 | \r | |
43 | // Initialisation for each layout line\r | |
44 | for (i = 0; i < NBKEYBINDINGS; i++)\r | |
45 | {\r | |
46 | // Prepare the keybinding line\r | |
47 | layout1->addWidget(KeyBindingsTable[i].KBLabel = new QLabel(KeyBindingsTable[i].KBNameLabel));\r | |
48 | layout2->addWidget(KeyBindingsTable[i].KBLineEdit = new QLineEdit(""));\r | |
49 | KeyBindingsTable[i].KBLineEdit->setMaxLength(30);\r | |
50 | KeyBindingsTable[i].KBLineEdit->setPlaceholderText(KeyBindingsTable[i].KBPlaceholderText);\r | |
51 | \r | |
52 | // Check if keybinding can be editable\r | |
53 | if (KeyBindingsTable[i].KBType != KB_TYPEGENERAL)\r | |
54 | {\r | |
55 | if (vjs.hardwareTypeAlpine && (KeyBindingsTable[i].KBType & KB_TYPEALPINE))\r | |
56 | {\r | |
57 | }\r | |
0d612b97 JPM |
58 | else\r |
59 | {\r | |
60 | if (vjs.softTypeDebugger && (KeyBindingsTable[i].KBType & KB_TYPEDEBUGGER))\r | |
61 | {\r | |
62 | }\r | |
63 | else\r | |
64 | {\r | |
0203b5fd | 65 | KeyBindingsTable[i].KBLabel->hide();\r |
0d612b97 JPM |
66 | KeyBindingsTable[i].KBLineEdit->hide();\r |
67 | }\r | |
0203b5fd JPM |
68 | }\r |
69 | }\r | |
70 | }\r | |
71 | \r | |
72 | // Layouts setup\r | |
73 | QHBoxLayout *layout3 = new QHBoxLayout;\r | |
74 | layout3->addLayout(layout1);\r | |
75 | layout3->addLayout(layout2);\r | |
76 | QVBoxLayout *layout4 = new QVBoxLayout;\r | |
77 | layout4->addLayout(layout3);\r | |
78 | setLayout(layout4);\r | |
79 | }\r | |
80 | \r | |
81 | \r | |
82 | KeyBindingsTab::~KeyBindingsTab()\r | |
83 | {\r | |
84 | }\r | |
85 | \r | |
86 | \r | |
87 | // Load / Update the tabs dialog from the settings\r | |
88 | void KeyBindingsTab::GetSettings(void)\r | |
89 | {\r | |
90 | size_t i;\r | |
91 | \r | |
92 | for (i = 0; i < NBKEYBINDINGS; i++)\r | |
93 | {\r | |
94 | KeyBindingsTable[i].KBLineEdit->setText(vjs.KBContent[i].KBSettingValue);\r | |
95 | }\r | |
96 | }\r | |
97 | \r | |
98 | \r | |
99 | // Save / Update the settings from the tabs dialog\r | |
100 | void KeyBindingsTab::SetSettings(void)\r | |
101 | {\r | |
102 | size_t i;\r | |
103 | \r | |
104 | for (i = 0; i < NBKEYBINDINGS; i++)\r | |
105 | {\r | |
106 | //strcpy(vjs.KBContent[i].KBSettingName, KeyBindingsTable[i].KBNameSetting);\r | |
107 | strcpy(vjs.KBContent[i].KBSettingValue, KeyBindingsTable[i].KBLineEdit->text().toUtf8().data());\r | |
108 | }\r | |
109 | }\r | |
110 | \r |