core: Fix libdwarf and Qt build failure
[clinton/Virtual-Jaguar-Rx.git] / src / gui / keybindingstab.cpp
index dfb0c44..6ec0cba 100644 (file)
-//
-// keybindingstab.cpp: Key Bindings tab on the settings dialog
-//
-// Part of the Virtual Jaguar Project
-//
-// JPM = Jean-Paul Mari <djipi.mari@gmail.com>
-//
-// WHO  WHEN        WHAT
-// ---  ----------  ------------------------------------------------------------
-// JPM  09/10/2017  Created this file
-
-#include "keybindingstab.h"
-#include "settings.h"
-
-
-//
-KeyBindings KeyBindingsTable[KB_END] = {
-                                                                                       {       "KB_Quit", "Quit", "Quit keybinding", "Ctrl+Q", NULL, NULL      },
-                                                                                       {       "KB_PickFile", "Pick file", "Pick file keybinding", "Ctrl+I", NULL, NULL        },
-                                                                                       {       "KB_Configure", "Configure", "Configure keybinding", "Ctrl+C", NULL, NULL       },
-                                                                                       {       "KB_EmuStatus", "Emulator Status", "Emulator status keybinding", "Ctrl+S", NULL, NULL   },
-                                                                                       {       "KB_Pause", "Pause", "Pause keybinding", "Esc", NULL, NULL      },
-                                                                                       {       "KB_FrameAdvance", "Frame Advance", "Frame advance keybinding", "F7", NULL, NULL        },
-                                                                                       {       "KB_Restart", "Restart", "Restart keybinding", "Ctrl+Shift+F5", NULL, NULL      },
-                                                                                       {       "KB_StepInto", "Step Into", "Step into keybinding", "F11", NULL, NULL   },
-                                                                                       {       "KB_StepOver", "Step Over", "Step over kebinding", "F10", NULL, NULL    },
-                                                                                       {       "KB_FullScreen", "Full Screen", "Full screen kebinding", "F9", NULL, NULL       }
-                                                                               };
-
-
-//
-#define        NBKEYBINDINGS   sizeof(KeyBindingsTable)/sizeof(KeyBindings)
-
-
-// 
-KeyBindingsTab::KeyBindingsTab(QWidget * parent/*= 0*/): QWidget(parent)
-{
-       size_t i;
-
-       QVBoxLayout *layout1 = new QVBoxLayout;
-       QVBoxLayout *layout2 = new QVBoxLayout;
-
-       // Initialisation for each layout line
-       for (i = 0; i < NBKEYBINDINGS; i++)
-       {
-               layout1->addWidget(KeyBindingsTable[i].KBLabel = new QLabel(KeyBindingsTable[i].KBNameLabel));
-               layout2->addWidget(KeyBindingsTable[i].KBLineEdit = new QLineEdit(""));
-               KeyBindingsTable[i].KBLineEdit->setMaxLength(30);
-               KeyBindingsTable[i].KBLineEdit->setPlaceholderText(KeyBindingsTable[i].KBPlaceholderText);
-       }
-
-       // Layouts setup
-       QHBoxLayout *layout3 = new QHBoxLayout;
-       layout3->addLayout(layout1);
-       layout3->addLayout(layout2);
-       QVBoxLayout *layout4 = new QVBoxLayout;
-       layout4->addLayout(layout3);
-       setLayout(layout4);
-}
-
-
-KeyBindingsTab::~KeyBindingsTab()
-{
-}
-
-
-// Load / Update the tabs dialog from the settings
-void KeyBindingsTab::GetSettings(void)
-{
-       size_t i;
-
-       for (i = 0; i < NBKEYBINDINGS; i++)
-       {
-               KeyBindingsTable[i].KBLineEdit->setText(vjs.KBContent[i].KBSettingValue);
-       }
-}
-
-
-// Save / Update the settings from the tabs dialog
-void KeyBindingsTab::SetSettings(void)
-{
-       size_t i;
-
-       for (i = 0; i < NBKEYBINDINGS; i++)
-       {
-               //strcpy(vjs.KBContent[i].KBSettingName, KeyBindingsTable[i].KBNameSetting);
-               strcpy(vjs.KBContent[i].KBSettingValue, KeyBindingsTable[i].KBLineEdit->text().toUtf8().data());
-       }
-}
-
+//\r
+// keybindingstab.cpp: Key Bindings tab on the settings dialog\r
+//\r
+// Part of the Virtual Jaguar Project\r
+//\r
+// JPM = Jean-Paul Mari <djipi.mari@gmail.com>\r
+//\r
+// WHO  WHEN        WHAT\r
+// ---  ----------  ------------------------------------------------------------\r
+// JPM  09/10/2017  Created this file\r
+// JPM  Sept./2018  Added screenshot key bindings\r
+// JPM  10/13/2018  Added breakpoints features\r
+//\r
+\r
+\r
+#include "keybindingstab.h"\r
+#include "settings.h"\r
+\r
+\r
+//\r
+KeyBindings KeyBindingsTable[KB_END] = {\r
+                                                                                       { KB_TYPEGENERAL, "KB_Quit", "Quit", "Quit key binding", "Ctrl+Q", NULL, NULL   },\r
+                                                                                       { KB_TYPEGENERAL, "KB_PickFile", "Pick file", "Pick file key binding", "Ctrl+I", NULL, NULL     },\r
+                                                                                       { KB_TYPEGENERAL, "KB_Configure", "Configure", "Configure key binding", "Ctrl+C", NULL, NULL    },\r
+                                                                                       { KB_TYPEGENERAL, "KB_EmuStatus", "Emulator Status", "Emulator status key binding", "Ctrl+S", NULL, NULL        },\r
+                                                                                       { KB_TYPEGENERAL, "KB_Pause", "Pause", "Pause key binding", "Esc", NULL, NULL   },\r
+                                                                                       { KB_TYPEGENERAL, "KB_FrameAdvance", "Frame Advance", "Frame advance key binding", "F7", NULL, NULL },\r
+                                                                                       { KB_TYPEGENERAL, "KB_FullScreen", "Full Screen", "Full screen key binding", "F9", NULL, NULL   },\r
+                                                                                       { KB_TYPEGENERAL, "KB_Screenshot", "Screenshot", "Screenshot key binding", "F8", NULL, NULL     },\r
+                                                                                       { KB_TYPEDEBUGGER, "KB_Restart", "Restart", "Restart key binding", "Ctrl+Shift+F5", NULL, NULL  },\r
+                                                                                       { KB_TYPEDEBUGGER, "KB_StepInto", "Step Into", "Step into key binding", "F11", NULL, NULL       },\r
+                                                                                       { KB_TYPEDEBUGGER, "KB_StepOver", "Step Over", "Step over key binding", "F10", NULL, NULL       },\r
+                                                                                       { KB_TYPEDEBUGGER, "KB_FunctionBreakpoint", "Function Breakpoint", "Function breakpoint binding", "Ctrl+B", NULL, NULL  },\r
+                                                                                       { KB_TYPEDEBUGGER, "KB_Breakpoints", "Breakpoints", "Breakpoints binding", "Ctrl+Alt+B", NULL, NULL     },\r
+                                                                                       { KB_TYPEDEBUGGER, "KB_DeleteAllBreakpoints", "Delete All Breakpoints", "Delete all breakpoints binding", "Ctrl+Shift+F9", NULL, NULL   }\r
+                                                                               };\r
+\r
+\r
+//\r
+#define        NBKEYBINDINGS   sizeof(KeyBindingsTable)/sizeof(KeyBindings)\r
+\r
+\r
+// \r
+KeyBindingsTab::KeyBindingsTab(QWidget * parent/*= 0*/): QWidget(parent)\r
+{\r
+       size_t i;\r
+\r
+       QVBoxLayout *layout1 = new QVBoxLayout;\r
+       QVBoxLayout *layout2 = new QVBoxLayout;\r
+\r
+       // Initialisation for each layout line\r
+       for (i = 0; i < NBKEYBINDINGS; i++)\r
+       {\r
+               // Prepare the keybinding line\r
+               layout1->addWidget(KeyBindingsTable[i].KBLabel = new QLabel(KeyBindingsTable[i].KBNameLabel));\r
+               layout2->addWidget(KeyBindingsTable[i].KBLineEdit = new QLineEdit(""));\r
+               KeyBindingsTable[i].KBLineEdit->setMaxLength(30);\r
+               KeyBindingsTable[i].KBLineEdit->setPlaceholderText(KeyBindingsTable[i].KBPlaceholderText);\r
+\r
+               // Check if keybinding can be editable\r
+               if (KeyBindingsTable[i].KBType != KB_TYPEGENERAL)\r
+               {\r
+                       if (vjs.hardwareTypeAlpine && (KeyBindingsTable[i].KBType & KB_TYPEALPINE))\r
+                       {\r
+                       }\r
+                       else\r
+                       {\r
+                               if (vjs.softTypeDebugger && (KeyBindingsTable[i].KBType & KB_TYPEDEBUGGER))\r
+                               {\r
+                               }\r
+                               else\r
+                               {\r
+                                       KeyBindingsTable[i].KBLabel->hide();\r
+                                       KeyBindingsTable[i].KBLineEdit->hide();\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+\r
+       // Layouts setup\r
+       QHBoxLayout *layout3 = new QHBoxLayout;\r
+       layout3->addLayout(layout1);\r
+       layout3->addLayout(layout2);\r
+       QVBoxLayout *layout4 = new QVBoxLayout;\r
+       layout4->addLayout(layout3);\r
+       setLayout(layout4);\r
+}\r
+\r
+\r
+KeyBindingsTab::~KeyBindingsTab()\r
+{\r
+}\r
+\r
+\r
+// Load / Update the tabs dialog from the settings\r
+void KeyBindingsTab::GetSettings(void)\r
+{\r
+       size_t i;\r
+\r
+       for (i = 0; i < NBKEYBINDINGS; i++)\r
+       {\r
+               KeyBindingsTable[i].KBLineEdit->setText(vjs.KBContent[i].KBSettingValue);\r
+       }\r
+}\r
+\r
+\r
+// Save / Update the settings from the tabs dialog\r
+void KeyBindingsTab::SetSettings(void)\r
+{\r
+       size_t i;\r
+\r
+       for (i = 0; i < NBKEYBINDINGS; i++)\r
+       {\r
+               //strcpy(vjs.KBContent[i].KBSettingName, KeyBindingsTable[i].KBNameSetting);\r
+               strcpy(vjs.KBContent[i].KBSettingValue, KeyBindingsTable[i].KBLineEdit->text().toUtf8().data());\r
+       }\r
+}\r
+\r