Document updates for the R3 release
[clinton/Virtual-Jaguar-Rx.git] / src / gui / keybindingstab.cpp
CommitLineData
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
17KeyBindings 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
36KeyBindingsTab::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
82KeyBindingsTab::~KeyBindingsTab()\r
83{\r
84}\r
85\r
86\r
87// Load / Update the tabs dialog from the settings\r
88void 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
100void 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