Added the return address information in the call stack
[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
fe3b257d
JPM
11// JPM Sept./2018 Added screenshot key bindings\r
12//\r
13\r
0203b5fd
JPM
14\r
15#include "keybindingstab.h"\r
16#include "settings.h"\r
17\r
18\r
19//\r
20KeyBindings KeyBindingsTable[KB_END] = {\r
57f40036
JPM
21 { KB_TYPEGENERAL, "KB_Quit", "Quit", "Quit key binding", "Ctrl+Q", NULL, NULL },\r
22 { KB_TYPEGENERAL, "KB_PickFile", "Pick file", "Pick file key binding", "Ctrl+I", NULL, NULL },\r
23 { KB_TYPEGENERAL, "KB_Configure", "Configure", "Configure key binding", "Ctrl+C", NULL, NULL },\r
24 { KB_TYPEGENERAL, "KB_EmuStatus", "Emulator Status", "Emulator status key binding", "Ctrl+S", NULL, NULL },\r
25 { KB_TYPEGENERAL, "KB_Pause", "Pause", "Pause key binding", "Esc", NULL, NULL },\r
26 { KB_TYPEGENERAL, "KB_FrameAdvance", "Frame Advance", "Frame advance key binding", "F7", NULL, NULL },\r
27 { KB_TYPEGENERAL, "KB_FullScreen", "Full Screen", "Full screen key binding", "F9", NULL, NULL },\r
28 { KB_TYPEGENERAL, "KB_Screenshot", "Screenshot", "Screenshot key binding", "F8", NULL, NULL },\r
29 { KB_TYPEDEBUGGER, "KB_Restart", "Restart", "Restart key binding", "Ctrl+Shift+F5", NULL, NULL },\r
30 { KB_TYPEDEBUGGER, "KB_StepInto", "Step Into", "Step into key binding", "F11", NULL, NULL },\r
31 { KB_TYPEDEBUGGER, "KB_StepOver", "Step Over", "Step over key binding", "F10", NULL, NULL }\r
0203b5fd
JPM
32 };\r
33\r
34\r
35//\r
36#define NBKEYBINDINGS sizeof(KeyBindingsTable)/sizeof(KeyBindings)\r
37\r
38\r
39// \r
40KeyBindingsTab::KeyBindingsTab(QWidget * parent/*= 0*/): QWidget(parent)\r
41{\r
42 size_t i;\r
43\r
44 QVBoxLayout *layout1 = new QVBoxLayout;\r
45 QVBoxLayout *layout2 = new QVBoxLayout;\r
46\r
47 // Initialisation for each layout line\r
48 for (i = 0; i < NBKEYBINDINGS; i++)\r
49 {\r
50 // Prepare the keybinding line\r
51 layout1->addWidget(KeyBindingsTable[i].KBLabel = new QLabel(KeyBindingsTable[i].KBNameLabel));\r
52 layout2->addWidget(KeyBindingsTable[i].KBLineEdit = new QLineEdit(""));\r
53 KeyBindingsTable[i].KBLineEdit->setMaxLength(30);\r
54 KeyBindingsTable[i].KBLineEdit->setPlaceholderText(KeyBindingsTable[i].KBPlaceholderText);\r
55\r
56 // Check if keybinding can be editable\r
57 if (KeyBindingsTable[i].KBType != KB_TYPEGENERAL)\r
58 {\r
59 if (vjs.hardwareTypeAlpine && (KeyBindingsTable[i].KBType & KB_TYPEALPINE))\r
60 {\r
61 }\r
0d612b97
JPM
62 else\r
63 {\r
64 if (vjs.softTypeDebugger && (KeyBindingsTable[i].KBType & KB_TYPEDEBUGGER))\r
65 {\r
66 }\r
67 else\r
68 {\r
0203b5fd 69 KeyBindingsTable[i].KBLabel->hide();\r
0d612b97
JPM
70 KeyBindingsTable[i].KBLineEdit->hide();\r
71 }\r
0203b5fd
JPM
72 }\r
73 }\r
74 }\r
75\r
76 // Layouts setup\r
77 QHBoxLayout *layout3 = new QHBoxLayout;\r
78 layout3->addLayout(layout1);\r
79 layout3->addLayout(layout2);\r
80 QVBoxLayout *layout4 = new QVBoxLayout;\r
81 layout4->addLayout(layout3);\r
82 setLayout(layout4);\r
83}\r
84\r
85\r
86KeyBindingsTab::~KeyBindingsTab()\r
87{\r
88}\r
89\r
90\r
91// Load / Update the tabs dialog from the settings\r
92void KeyBindingsTab::GetSettings(void)\r
93{\r
94 size_t i;\r
95\r
96 for (i = 0; i < NBKEYBINDINGS; i++)\r
97 {\r
98 KeyBindingsTable[i].KBLineEdit->setText(vjs.KBContent[i].KBSettingValue);\r
99 }\r
100}\r
101\r
102\r
103// Save / Update the settings from the tabs dialog\r
104void KeyBindingsTab::SetSettings(void)\r
105{\r
106 size_t i;\r
107\r
108 for (i = 0; i < NBKEYBINDINGS; i++)\r
109 {\r
110 //strcpy(vjs.KBContent[i].KBSettingName, KeyBindingsTable[i].KBNameSetting);\r
111 strcpy(vjs.KBContent[i].KBSettingValue, KeyBindingsTable[i].KBLineEdit->text().toUtf8().data());\r
112 }\r
113}\r
114\r