GUI: shortcuts now fully customizable
This commit is contained in:
parent
a6d7989e34
commit
850ad8a1fe
|
@ -58,8 +58,8 @@ void ReferenceView::setupContextMenu()
|
|||
|
||||
void ReferenceView::refreshShortcutsSlot()
|
||||
{
|
||||
mToggleBreakpoint->setShortcut(QKeySequence("F2"));
|
||||
mToggleBookmark->setShortcut(QKeySequence("ctrl+d"));
|
||||
mToggleBreakpoint->setShortcut(ConfigShortcut("ActionToggleBreakpoint"));
|
||||
mToggleBookmark->setShortcut(ConfigShortcut("ActionToggleBookmark"));
|
||||
}
|
||||
|
||||
void ReferenceView::addColumnAt(int width, QString title)
|
||||
|
|
|
@ -191,14 +191,14 @@ void BreakpointsView::setupHardBPRightClickContextMenu()
|
|||
|
||||
void BreakpointsView::refreshShortcutsSlot()
|
||||
{
|
||||
mHardBPRemoveAction->setShortcut(QKeySequence(Qt::Key_Delete));
|
||||
mHardBPEnableDisableAction->setShortcut(QKeySequence(Qt::Key_Space));
|
||||
mHardBPRemoveAction->setShortcut(ConfigShortcut("ActionDeleteBreakpoint"));
|
||||
mHardBPEnableDisableAction->setShortcut(ConfigShortcut("ActionEnableDisableBreakpoint"));
|
||||
|
||||
mSoftBPRemoveAction->setShortcut(QKeySequence(Qt::Key_Delete));
|
||||
mSoftBPEnableDisableAction->setShortcut(QKeySequence(Qt::Key_Space));
|
||||
mSoftBPRemoveAction->setShortcut(ConfigShortcut("ActionDeleteBreakpoint"));
|
||||
mSoftBPEnableDisableAction->setShortcut(ConfigShortcut("ActionEnableDisableBreakpoint"));
|
||||
|
||||
mMemBPRemoveAction->setShortcut(QKeySequence(Qt::Key_Delete));
|
||||
mMemBPEnableDisableAction->setShortcut(QKeySequence(Qt::Key_Space));
|
||||
mMemBPRemoveAction->setShortcut(ConfigShortcut("ActionDeleteBreakpoint"));
|
||||
mMemBPEnableDisableAction->setShortcut(ConfigShortcut("ActionEnableDisableBreakpoint"));
|
||||
}
|
||||
|
||||
void BreakpointsView::hardwareBPContextMenuSlot(const QPoint & pos)
|
||||
|
|
|
@ -439,28 +439,28 @@ void CPUDisassembly::setupRightClickContextMenu()
|
|||
|
||||
void CPUDisassembly::refreshShortcutsSlot()
|
||||
{
|
||||
mBinaryEditAction->setShortcut(QKeySequence("ctrl+e"));
|
||||
mBinaryFillAction->setShortcut(QKeySequence("f"));
|
||||
mBinaryFillNopsAction->setShortcut(QKeySequence("ctrl+9"));
|
||||
mBinaryCopyAction->setShortcut(QKeySequence("shift+c"));
|
||||
mBinaryPasteAction->setShortcut(QKeySequence("shift+v"));
|
||||
mBinaryPasteIgnoreSizeAction->setShortcut(QKeySequence("ctrl+shift+v"));
|
||||
mUndoSelection->setShortcut(QKeySequence("ctrl+backspace"));
|
||||
mSetLabel->setShortcut(QKeySequence(":"));
|
||||
mSetComment->setShortcut(QKeySequence(";"));
|
||||
mSetBookmark->setShortcut(QKeySequence("ctrl+d"));
|
||||
mToggleFunction->setShortcut(QKeySequence("shift+f"));
|
||||
mAssemble->setShortcut(QKeySequence("space"));
|
||||
mToggleInt3BpAction->setShortcut(QKeySequence(Qt::Key_F2));
|
||||
mPatchesAction->setShortcut(QKeySequence("ctrl+p"));
|
||||
mSetNewOriginHere->setShortcut(QKeySequence("ctrl+*"));
|
||||
mGotoOrigin->setShortcut(QKeySequence("*"));
|
||||
mGotoPrevious->setShortcut(QKeySequence("-"));
|
||||
mGotoNext->setShortcut(QKeySequence("+"));
|
||||
mGotoExpression->setShortcut(QKeySequence("ctrl+g"));
|
||||
mReferenceSelectedAddress->setShortcut(QKeySequence("ctrl+r"));
|
||||
mSearchPattern->setShortcut(QKeySequence("ctrl+b"));
|
||||
mEnableHighlightingMode->setShortcut(QKeySequence("ctrl+h"));
|
||||
mBinaryEditAction->setShortcut(ConfigShortcut("ActionBinaryEdit"));
|
||||
mBinaryFillAction->setShortcut(ConfigShortcut("ActionBinaryFill"));
|
||||
mBinaryFillNopsAction->setShortcut(ConfigShortcut("ActionBinaryFillNops"));
|
||||
mBinaryCopyAction->setShortcut(ConfigShortcut("ActionBinaryCopy"));
|
||||
mBinaryPasteAction->setShortcut(ConfigShortcut("ActionBinaryPaste"));
|
||||
mBinaryPasteIgnoreSizeAction->setShortcut(ConfigShortcut("ActionBinaryPasteIgnoreSize"));
|
||||
mUndoSelection->setShortcut(ConfigShortcut("ActionUndoSelection"));
|
||||
mSetLabel->setShortcut(ConfigShortcut("ActionSetLabel"));
|
||||
mSetComment->setShortcut(ConfigShortcut("ActionSetComment"));
|
||||
mSetBookmark->setShortcut(ConfigShortcut("ActionToggleBookmark"));
|
||||
mToggleFunction->setShortcut(ConfigShortcut("ActionToggleFunction"));
|
||||
mAssemble->setShortcut(ConfigShortcut("ActionAssemble"));
|
||||
mToggleInt3BpAction->setShortcut(ConfigShortcut("ActionToggleBreakpoint"));
|
||||
mPatchesAction->setShortcut(ConfigShortcut("ViewPatches"));
|
||||
mSetNewOriginHere->setShortcut(ConfigShortcut("ActionSetNewOriginHere"));
|
||||
mGotoOrigin->setShortcut(ConfigShortcut("ActionGotoOrigin"));
|
||||
mGotoPrevious->setShortcut(ConfigShortcut("ActionGotoPrevious"));
|
||||
mGotoNext->setShortcut(ConfigShortcut("ActionGotoNext"));
|
||||
mGotoExpression->setShortcut(ConfigShortcut("ActionGotoExpression"));
|
||||
mReferenceSelectedAddress->setShortcut(ConfigShortcut("ActionFindReferencesToSelectedAddress"));
|
||||
mSearchPattern->setShortcut(ConfigShortcut("ActionFindPattern"));
|
||||
mEnableHighlightingMode->setShortcut(ConfigShortcut("ActionHighlightingMode"));
|
||||
}
|
||||
|
||||
void CPUDisassembly::gotoOrigin()
|
||||
|
|
|
@ -328,15 +328,15 @@ void CPUDump::setupContextMenu()
|
|||
|
||||
void CPUDump::refreshShortcutsSlot()
|
||||
{
|
||||
mBinaryEditAction->setShortcut(QKeySequence("ctrl+e"));
|
||||
mBinaryFillAction->setShortcut(QKeySequence("f"));
|
||||
mBinaryCopyAction->setShortcut(QKeySequence("shift+c"));
|
||||
mBinaryPasteAction->setShortcut(QKeySequence("shift+v"));
|
||||
mBinaryPasteIgnoreSizeAction->setShortcut(QKeySequence("ctrl+shift+v"));
|
||||
mUndoSelection->setShortcut(QKeySequence("ctrl+backspace"));
|
||||
mSetLabelAction->setShortcut(QKeySequence(":"));
|
||||
mFindPatternAction->setShortcut(QKeySequence("ctrl+b"));
|
||||
mGotoExpression->setShortcut(QKeySequence("ctrl+g"));
|
||||
mBinaryEditAction->setShortcut(ConfigShortcut("ActionBinaryEdit"));
|
||||
mBinaryFillAction->setShortcut(ConfigShortcut("ActionBinaryFill"));
|
||||
mBinaryCopyAction->setShortcut(ConfigShortcut("ActionBinaryCopy"));
|
||||
mBinaryPasteAction->setShortcut(ConfigShortcut("ActionBinaryPaste"));
|
||||
mBinaryPasteIgnoreSizeAction->setShortcut(ConfigShortcut("ActionBinaryPasteIgnoreSize"));
|
||||
mUndoSelection->setShortcut(ConfigShortcut("ActionUndoSelection"));
|
||||
mSetLabelAction->setShortcut(ConfigShortcut("ActionSetLabel"));
|
||||
mFindPatternAction->setShortcut(ConfigShortcut("ActionFindPattern"));
|
||||
mGotoExpression->setShortcut(ConfigShortcut("ActionGotoExpression"));
|
||||
}
|
||||
|
||||
QString CPUDump::paintContent(QPainter* painter, int_t rowBase, int rowOffset, int col, int x, int y, int w, int h)
|
||||
|
|
|
@ -150,15 +150,15 @@ void CPUStack::setupContextMenu()
|
|||
|
||||
void CPUStack::refreshShortcutsSlot()
|
||||
{
|
||||
mBinaryEditAction->setShortcut(QKeySequence("ctrl+e"));
|
||||
mBinaryFillAction->setShortcut(QKeySequence("f"));
|
||||
mBinaryCopyAction->setShortcut(QKeySequence("shift+c"));
|
||||
mBinaryPasteAction->setShortcut(QKeySequence("shift+v"));
|
||||
mBinaryPasteIgnoreSizeAction->setShortcut(QKeySequence("ctrl+shift+v"));
|
||||
mUndoSelection->setShortcut(QKeySequence("ctrl+backspace"));
|
||||
mGotoSp->setShortcut(QKeySequence("*"));
|
||||
mFindPatternAction->setShortcut(QKeySequence("ctrl+b"));
|
||||
mGotoExpression->setShortcut(QKeySequence("ctrl+g"));
|
||||
mBinaryEditAction->setShortcut(ConfigShortcut("ActionBinaryEdit"));
|
||||
mBinaryFillAction->setShortcut(ConfigShortcut("ActionBinaryFill"));
|
||||
mBinaryCopyAction->setShortcut(ConfigShortcut("ActionBinaryCopy"));
|
||||
mBinaryPasteAction->setShortcut(ConfigShortcut("ActionBinaryPaste"));
|
||||
mBinaryPasteIgnoreSizeAction->setShortcut(ConfigShortcut("ActionBinaryPasteIgnoreSize"));
|
||||
mUndoSelection->setShortcut(ConfigShortcut("ActionUndoSelection"));
|
||||
mGotoSp->setShortcut(ConfigShortcut("ActionGotoOrigin"));
|
||||
mFindPatternAction->setShortcut(ConfigShortcut("ActionFindPattern"));
|
||||
mGotoExpression->setShortcut(ConfigShortcut("ActionGotoExpression"));
|
||||
}
|
||||
|
||||
QString CPUStack::paintContent(QPainter* painter, int_t rowBase, int rowOffset, int col, int x, int y, int w, int h)
|
||||
|
|
|
@ -86,9 +86,9 @@ void MemoryMapView::setupContextMenu()
|
|||
|
||||
void MemoryMapView::refreshShortcutsSlot()
|
||||
{
|
||||
mMemoryExecuteSingleshoot->setShortcut(QKeySequence("f2"));
|
||||
mMemoryRemove->setShortcut(QKeySequence("f2"));
|
||||
mMemoryExecuteSingleshootToggle->setShortcut(QKeySequence("f2"));
|
||||
mMemoryExecuteSingleshoot->setShortcut(ConfigShortcut("ActionToggleBreakpoint"));
|
||||
mMemoryRemove->setShortcut(ConfigShortcut("ActionToggleBreakpoint"));
|
||||
mMemoryExecuteSingleshootToggle->setShortcut(ConfigShortcut("ActionToggleBreakpoint"));
|
||||
}
|
||||
|
||||
void MemoryMapView::contextMenuSlot(const QPoint &pos)
|
||||
|
|
|
@ -228,12 +228,12 @@ RegistersView::RegistersView(QWidget * parent) : QAbstractScrollArea(parent), mV
|
|||
|
||||
void RegistersView::refreshShortcutsSlot()
|
||||
{
|
||||
wCM_Increment->setShortcut(QKeySequence(Qt::Key_Plus));
|
||||
wCM_Decrement->setShortcut(QKeySequence(Qt::Key_Minus));
|
||||
wCM_Zero->setShortcut(QKeySequence(Qt::Key_0));
|
||||
wCM_SetToOne->setShortcut(QKeySequence(Qt::Key_1));
|
||||
wCM_ToggleValue->setShortcut(QKeySequence(Qt::Key_Space));
|
||||
wCM_CopyToClipboard->setShortcut(QKeySequence::Copy);
|
||||
wCM_Increment->setShortcut(ConfigShortcut("ActionIncreaseRegister"));
|
||||
wCM_Decrement->setShortcut(ConfigShortcut("ActionDecreaseRegister"));
|
||||
wCM_Zero->setShortcut(ConfigShortcut("ActionZeroRegister"));
|
||||
wCM_SetToOne->setShortcut(ConfigShortcut("ActionSetOneRegister"));
|
||||
wCM_ToggleValue->setShortcut(ConfigShortcut("ActionToggleRegisterValue"));
|
||||
wCM_CopyToClipboard->setShortcut(ConfigShortcut("ActionCopy"));
|
||||
}
|
||||
|
||||
RegistersView::~RegistersView()
|
||||
|
|
|
@ -389,14 +389,14 @@ void ScriptView::setupContextMenu()
|
|||
|
||||
void ScriptView::refreshShortcutsSlot()
|
||||
{
|
||||
mScriptLoad->setShortcut(QKeySequence("ctrl+o"));
|
||||
mScriptUnload->setShortcut(QKeySequence("ctrl+u"));
|
||||
mScriptRun->setShortcut(QKeySequence("space"));
|
||||
mScriptBpToggle->setShortcut(QKeySequence("F2"));
|
||||
mScriptRunCursor->setShortcut(QKeySequence("F4"));
|
||||
mScriptStep->setShortcut(QKeySequence("tab"));
|
||||
mScriptAbort->setShortcut(QKeySequence("esc"));
|
||||
mScriptCmdExec->setShortcut(QKeySequence("x"));
|
||||
mScriptLoad->setShortcut(ConfigShortcut("ActionLoadScript"));
|
||||
mScriptUnload->setShortcut(ConfigShortcut("ActionUnloadScript"));
|
||||
mScriptRun->setShortcut(ConfigShortcut("ActionRunScript"));
|
||||
mScriptBpToggle->setShortcut(ConfigShortcut("ActionToggleBreakpointScript"));
|
||||
mScriptRunCursor->setShortcut(ConfigShortcut("ActionRunToCursorScript"));
|
||||
mScriptStep->setShortcut(ConfigShortcut("ActionStepScript"));
|
||||
mScriptAbort->setShortcut(ConfigShortcut("ActionAbortScript"));
|
||||
mScriptCmdExec->setShortcut(ConfigShortcut("ActionExecuteCommandScript"));
|
||||
}
|
||||
|
||||
bool ScriptView::isScriptCommand(QString text, QString cmd)
|
||||
|
|
|
@ -12,26 +12,26 @@ ShortcutsDialog::ShortcutsDialog(QWidget *parent) : QDialog(parent), ui(new Ui::
|
|||
// x64 has no model-view-controler pattern
|
||||
QStringList tblHeader;
|
||||
tblHeader << "Instruction" << "Shortcut";
|
||||
QTableWidget* tbl = ui->tblShortcuts;
|
||||
tbl->setColumnCount(2);
|
||||
tbl->verticalHeader()->setVisible(false);
|
||||
tbl->setHorizontalHeaderLabels(tblHeader);
|
||||
tbl->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
||||
tbl->setSelectionBehavior(QAbstractItemView::SelectRows);
|
||||
tbl->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
tbl->setShowGrid(false);
|
||||
tbl->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
|
||||
tbl->verticalHeader()->setDefaultSectionSize(15);
|
||||
|
||||
ui->tblShortcuts->setColumnCount(2);
|
||||
ui->tblShortcuts->verticalHeader()->setVisible(false);
|
||||
ui->tblShortcuts->setHorizontalHeaderLabels(tblHeader);
|
||||
ui->tblShortcuts->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
||||
ui->tblShortcuts->setSelectionBehavior(QAbstractItemView::SelectRows);
|
||||
ui->tblShortcuts->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
ui->tblShortcuts->setShowGrid(false);
|
||||
ui->tblShortcuts->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
|
||||
ui->tblShortcuts->verticalHeader()->setDefaultSectionSize(15);
|
||||
|
||||
const unsigned int numShortcuts = Config()->Shortcuts.count();
|
||||
tbl->setRowCount(numShortcuts);
|
||||
ui->tblShortcuts->setRowCount(numShortcuts);
|
||||
int j=0;
|
||||
for(QMap<QString, Configuration::Shortcut>::iterator i=Config()->Shortcuts.begin(); i!=Config()->Shortcuts.end(); ++i,j++)
|
||||
{
|
||||
QTableWidgetItem* shortcutName = new QTableWidgetItem(i.value().Name);
|
||||
QTableWidgetItem* shortcutKey = new QTableWidgetItem(i.value().Hotkey.toString(QKeySequence::NativeText));
|
||||
tbl->setItem(j, 0, shortcutName);
|
||||
tbl->setItem(j, 1, shortcutKey);
|
||||
ui->tblShortcuts->setItem(j, 0, shortcutName);
|
||||
ui->tblShortcuts->setItem(j, 1, shortcutKey);
|
||||
}
|
||||
|
||||
connect(ui->tblShortcuts, SIGNAL(itemSelectionChanged()), this, SLOT(syncTextfield()));
|
||||
|
@ -45,12 +45,23 @@ void ShortcutsDialog::updateShortcut()
|
|||
if(newKey != currentShortcut.Hotkey)
|
||||
{
|
||||
bool good=true;
|
||||
foreach(Configuration::Shortcut S, Config()->Shortcuts)
|
||||
if(!newKey.isEmpty())
|
||||
{
|
||||
if(!newKey.isEmpty() && S.Hotkey == newKey && S.Name != currentShortcut.Name)
|
||||
int idx=0;
|
||||
for(QMap<QString, Configuration::Shortcut>::iterator i=Config()->Shortcuts.begin(); i!=Config()->Shortcuts.end(); ++i,idx++)
|
||||
{
|
||||
good=false;
|
||||
break;
|
||||
if(i.value().Name == currentShortcut.Name) //skip current shortcut in list
|
||||
continue;
|
||||
if(i.value().GlobalShortcut && i.value().Hotkey == newKey) //newkey is trying to override a global shortcut
|
||||
{
|
||||
good=false;
|
||||
break;
|
||||
}
|
||||
else if(currentShortcut.GlobalShortcut && i.value().Hotkey == newKey) //current shortcut is global and overrides another local hotkey
|
||||
{
|
||||
ui->tblShortcuts->setItem(idx, 1, new QTableWidgetItem(""));
|
||||
Config()->setShortcut(i.key(), QKeySequence());
|
||||
}
|
||||
}
|
||||
}
|
||||
if(good)
|
||||
|
@ -102,8 +113,8 @@ ShortcutsDialog::~ShortcutsDialog()
|
|||
|
||||
void ShortcutsDialog::on_btnSave_clicked()
|
||||
{
|
||||
Config()->save();
|
||||
QMessageBox msg(QMessageBox::Information, "Information", "Shortcuts updated!\n\nYou may need to restart the debugger for all changes to take in effect.");
|
||||
Config()->writeShortcuts();
|
||||
QMessageBox msg(QMessageBox::Information, "Information", "Shortcuts updated!");
|
||||
msg.setWindowIcon(QIcon(":/icons/images/information.png"));
|
||||
msg.setParent(this, Qt::Dialog);
|
||||
msg.setWindowFlags(msg.windowFlags()&(~Qt::WindowContextHelpButtonHint));
|
||||
|
|
|
@ -14,7 +14,6 @@ class ShortcutsDialog;
|
|||
class ShortcutsDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
QTableWidget* tbl;
|
||||
Configuration::Shortcut currentShortcut;
|
||||
int currentRow;
|
||||
bool editLock;
|
||||
|
|
|
@ -166,50 +166,89 @@ Configuration::Configuration() : QObject()
|
|||
defaultFonts.insert("Application", QApplication::font());
|
||||
|
||||
// hotkeys settings
|
||||
defaultShortcuts.insert("FileOpen", Shortcut(tr("File -> Open"), "F3"));
|
||||
defaultShortcuts.insert("FileExit", Shortcut(tr("File -> Exit"), "Alt+X"));
|
||||
defaultShortcuts.insert("FileOpen", Shortcut(tr("File -> Open"), "F3", true));
|
||||
defaultShortcuts.insert("FileExit", Shortcut(tr("File -> Exit"), "Alt+X", true));
|
||||
|
||||
defaultShortcuts.insert("ViewCpu", Shortcut(tr("View -> CPU"), "Alt+C"));
|
||||
defaultShortcuts.insert("ViewLog", Shortcut(tr("View -> Log"), "Alt+L"));
|
||||
defaultShortcuts.insert("ViewBreakpoints", Shortcut(tr("View -> Breakpoints"), "Alt+B"));
|
||||
defaultShortcuts.insert("ViewMemoryMap", Shortcut(tr("View -> Memory Map"), "Alt+M"));
|
||||
defaultShortcuts.insert("ViewCallStack", Shortcut(tr("View -> Call Stack"), "Alt+K"));
|
||||
defaultShortcuts.insert("ViewScript", Shortcut(tr("View -> Script"), "Alt+S"));
|
||||
defaultShortcuts.insert("ViewSymbolInfo", Shortcut(tr("View -> Symbol Info"), "Ctrl+Alt+S"));
|
||||
defaultShortcuts.insert("ViewReferences", Shortcut(tr("View -> References"), "Alt+R"));
|
||||
defaultShortcuts.insert("ViewThreads", Shortcut(tr("View -> Threads"), "Alt+T"));
|
||||
defaultShortcuts.insert("ViewPatches", Shortcut(tr("View -> Patches"), "Ctrl+P"));
|
||||
defaultShortcuts.insert("ViewComments", Shortcut(tr("View -> Comments"), "Ctrl+Alt+C"));
|
||||
defaultShortcuts.insert("ViewLabels", Shortcut(tr("View -> Labels"), "Ctrl+Alt+L"));
|
||||
defaultShortcuts.insert("ViewBookmarks", Shortcut(tr("View -> Bookmarks"), "Ctrl+Alt+B"));
|
||||
defaultShortcuts.insert("ViewFunctions", Shortcut(tr("View -> Functions"), "Alt+F"));
|
||||
defaultShortcuts.insert("ViewCpu", Shortcut(tr("View -> CPU"), "Alt+C", true));
|
||||
defaultShortcuts.insert("ViewLog", Shortcut(tr("View -> Log"), "Alt+L", true));
|
||||
defaultShortcuts.insert("ViewBreakpoints", Shortcut(tr("View -> Breakpoints"), "Alt+B", true));
|
||||
defaultShortcuts.insert("ViewMemoryMap", Shortcut(tr("View -> Memory Map"), "Alt+M", true));
|
||||
defaultShortcuts.insert("ViewCallStack", Shortcut(tr("View -> Call Stack"), "Alt+K", true));
|
||||
defaultShortcuts.insert("ViewScript", Shortcut(tr("View -> Script"), "Alt+S", true));
|
||||
defaultShortcuts.insert("ViewSymbolInfo", Shortcut(tr("View -> Symbol Info"), "Ctrl+Alt+S", true));
|
||||
defaultShortcuts.insert("ViewReferences", Shortcut(tr("View -> References"), "Alt+R", true));
|
||||
defaultShortcuts.insert("ViewThreads", Shortcut(tr("View -> Threads"), "Alt+T", true));
|
||||
defaultShortcuts.insert("ViewPatches", Shortcut(tr("View -> Patches"), "Ctrl+P", true));
|
||||
defaultShortcuts.insert("ViewComments", Shortcut(tr("View -> Comments"), "Ctrl+Alt+C", true));
|
||||
defaultShortcuts.insert("ViewLabels", Shortcut(tr("View -> Labels"), "Ctrl+Alt+L", true));
|
||||
defaultShortcuts.insert("ViewBookmarks", Shortcut(tr("View -> Bookmarks"), "Ctrl+Alt+B", true));
|
||||
defaultShortcuts.insert("ViewFunctions", Shortcut(tr("View -> Functions"), "Alt+F", true));
|
||||
|
||||
defaultShortcuts.insert("DebugRun", Shortcut(tr("Debug -> Run"), "F9"));
|
||||
defaultShortcuts.insert("DebugeRun", Shortcut(tr("Debug -> Run (skip exceptions)"), "Shift+F9"));
|
||||
defaultShortcuts.insert("DebugRunSelection", Shortcut(tr("Debug -> Run until selection"), "F4"));
|
||||
defaultShortcuts.insert("DebugPause", Shortcut(tr("Debug -> Pause"), "F12"));
|
||||
defaultShortcuts.insert("DebugRestart", Shortcut(tr("Debug -> Restart"), "Ctrl+F2"));
|
||||
defaultShortcuts.insert("DebugClose", Shortcut(tr("Debug -> Close"), "Alt+F2"));
|
||||
defaultShortcuts.insert("DebugStepInto", Shortcut(tr("Debug -> Step into"), "F7"));
|
||||
defaultShortcuts.insert("DebugeStepInfo", Shortcut(tr("Debug -> Step into (skip execptions)"), "Shift+F7"));
|
||||
defaultShortcuts.insert("DebugStepOver", Shortcut(tr("Debug -> Step over"), "F8"));
|
||||
defaultShortcuts.insert("DebugeStepOver", Shortcut(tr("Debug -> Step over (skip execptions)"), "Shift+F8"));
|
||||
defaultShortcuts.insert("DebugRtr", Shortcut(tr("Debug -> Execute till return"), "Ctrl+F9"));
|
||||
defaultShortcuts.insert("DebugeRtr", Shortcut(tr("Debug -> execute till return (skip exceptions)"), "Ctrl+Shift+F9"));
|
||||
defaultShortcuts.insert("DebugCommand", Shortcut(tr("Debug -> Command"), "Ctrl+Return"));
|
||||
defaultShortcuts.insert("DebugRun", Shortcut(tr("Debug -> Run"), "F9", true));
|
||||
defaultShortcuts.insert("DebugeRun", Shortcut(tr("Debug -> Run (skip exceptions)"), "Shift+F9", true));
|
||||
defaultShortcuts.insert("DebugRunSelection", Shortcut(tr("Debug -> Run until selection"), "F4", true));
|
||||
defaultShortcuts.insert("DebugPause", Shortcut(tr("Debug -> Pause"), "F12", true));
|
||||
defaultShortcuts.insert("DebugRestart", Shortcut(tr("Debug -> Restart"), "Ctrl+F2", true));
|
||||
defaultShortcuts.insert("DebugClose", Shortcut(tr("Debug -> Close"), "Alt+F2", true));
|
||||
defaultShortcuts.insert("DebugStepInto", Shortcut(tr("Debug -> Step into"), "F7", true));
|
||||
defaultShortcuts.insert("DebugeStepInfo", Shortcut(tr("Debug -> Step into (skip execptions)"), "Shift+F7", true));
|
||||
defaultShortcuts.insert("DebugStepOver", Shortcut(tr("Debug -> Step over"), "F8", true));
|
||||
defaultShortcuts.insert("DebugeStepOver", Shortcut(tr("Debug -> Step over (skip execptions)"), "Shift+F8", true));
|
||||
defaultShortcuts.insert("DebugRtr", Shortcut(tr("Debug -> Execute till return"), "Ctrl+F9", true));
|
||||
defaultShortcuts.insert("DebugeRtr", Shortcut(tr("Debug -> execute till return (skip exceptions)"), "Ctrl+Shift+F9", true));
|
||||
defaultShortcuts.insert("DebugCommand", Shortcut(tr("Debug -> Command"), "Ctrl+Return", true));
|
||||
|
||||
defaultShortcuts.insert("PluginsScylla", Shortcut(tr("Plugins -> Scylla"), "Ctrl+I"));
|
||||
defaultShortcuts.insert("PluginsScylla", Shortcut(tr("Plugins -> Scylla"), "Ctrl+I", true));
|
||||
|
||||
defaultShortcuts.insert("OptionsPreferences", Shortcut(tr("Options -> Preferences")));
|
||||
defaultShortcuts.insert("OptionsAppearance", Shortcut(tr("Options -> Preferences")));
|
||||
defaultShortcuts.insert("OptionsShortcuts", Shortcut(tr("Options -> Preferences")));
|
||||
defaultShortcuts.insert("OptionsPreferences", Shortcut(tr("Options -> Preferences"), "", true));
|
||||
defaultShortcuts.insert("OptionsAppearance", Shortcut(tr("Options -> Preferences"), "", true));
|
||||
defaultShortcuts.insert("OptionsShortcuts", Shortcut(tr("Options -> Preferences"), "", true));
|
||||
|
||||
defaultShortcuts.insert("HelpAbout", Shortcut(tr("Help -> About")));
|
||||
defaultShortcuts.insert("HelpDonate", Shortcut(tr("Help -> Donate")));
|
||||
defaultShortcuts.insert("HelpCheckForUpdates", Shortcut(tr("Help -> Check for Updates")));
|
||||
defaultShortcuts.insert("HelpAbout", Shortcut(tr("Help -> About"), "", true));
|
||||
defaultShortcuts.insert("HelpDonate", Shortcut(tr("Help -> Donate"), "", true));
|
||||
defaultShortcuts.insert("HelpCheckForUpdates", Shortcut(tr("Help -> Check for Updates"), "", true));
|
||||
|
||||
defaultShortcuts.insert("ActionFindStrings", Shortcut(tr("Actions -> Find Strings")));
|
||||
defaultShortcuts.insert("ActionFindIntermodularCalls", Shortcut(tr("Actions -> Find Intermodular Calls")));
|
||||
defaultShortcuts.insert("ActionFindStrings", Shortcut(tr("Actions -> Find Strings"), "", true));
|
||||
defaultShortcuts.insert("ActionFindIntermodularCalls", Shortcut(tr("Actions -> Find Intermodular Calls"), "", true));
|
||||
defaultShortcuts.insert("ActionToggleBreakpoint", Shortcut(tr("Actions -> Toggle Breakpoint"), "F2"));
|
||||
defaultShortcuts.insert("ActionToggleBookmark", Shortcut(tr("Actions -> Toggle Bookmark"), "Ctrl+D"));
|
||||
defaultShortcuts.insert("ActionDeleteBreakpoint", Shortcut(tr("Actions -> Delete Breakpoint"), "Delete"));
|
||||
defaultShortcuts.insert("ActionEnableDisableBreakpoint", Shortcut(tr("Actions -> Enable/Disable Breakpoint"), "Space"));
|
||||
|
||||
defaultShortcuts.insert("ActionBinaryEdit", Shortcut(tr("Actions -> Binary Edit"), "Ctrl+E"));
|
||||
defaultShortcuts.insert("ActionBinaryFill", Shortcut(tr("Actions -> Binary Fill"), "F"));
|
||||
defaultShortcuts.insert("ActionBinaryFillNops", Shortcut(tr("Actions -> Binary Fill NOPs"), "Ctrl+9"));
|
||||
defaultShortcuts.insert("ActionBinaryCopy", Shortcut(tr("Actions -> Binary Copy"), "Shift+C"));
|
||||
defaultShortcuts.insert("ActionBinaryPaste", Shortcut(tr("Actions -> Binary Paste"), "Shift+V"));
|
||||
defaultShortcuts.insert("ActionBinaryPasteIgnoreSize", Shortcut(tr("Actions -> Binary Paste (Ignore Size)"), "Ctrl+Shift+V"));
|
||||
defaultShortcuts.insert("ActionUndoSelection", Shortcut(tr("Actions -> Undo Selection"), "Ctrl+Backspace"));
|
||||
defaultShortcuts.insert("ActionSetLabel", Shortcut(tr("Actions -> Set Label"), ":"));
|
||||
defaultShortcuts.insert("ActionSetComment", Shortcut(tr("Actions -> Set Comment"), ";"));
|
||||
defaultShortcuts.insert("ActionToggleFunction", Shortcut(tr("Actions -> Toggle Function"), "Shift+F"));
|
||||
defaultShortcuts.insert("ActionAssemble", Shortcut(tr("Actions -> Assemble"), "Space"));
|
||||
defaultShortcuts.insert("ActionSetNewOriginHere", Shortcut(tr("Actions -> Set New Origin Here"), "Ctrl+*"));
|
||||
defaultShortcuts.insert("ActionGotoOrigin", Shortcut(tr("Actions -> Goto Origin"), "*"));
|
||||
defaultShortcuts.insert("ActionGotoPrevious", Shortcut(tr("Actions -> Goto Previous"), "-"));
|
||||
defaultShortcuts.insert("ActionGotoNext", Shortcut(tr("Actions -> Goto Next"), "+"));
|
||||
defaultShortcuts.insert("ActionGotoExpression", Shortcut(tr("Actions -> Goto Expression"), "Ctrl+G"));
|
||||
defaultShortcuts.insert("ActionFindReferencesToSelectedAddress", Shortcut(tr("Actions -> Find References to Selected Address"), "Ctrl+R"));
|
||||
defaultShortcuts.insert("ActionFindPattern", Shortcut(tr("Actions -> Find Pattern"), "Ctrl+B"));
|
||||
defaultShortcuts.insert("ActionHighlightingMode", Shortcut(tr("Actions -> Highlighting Mode"), "Ctrl+H"));
|
||||
|
||||
defaultShortcuts.insert("ActionIncreaseRegister", Shortcut(tr("Actions -> Increase Register"), "+"));
|
||||
defaultShortcuts.insert("ActionDecreaseRegister", Shortcut(tr("Actions -> Decrease Register"), "-"));
|
||||
defaultShortcuts.insert("ActionZeroRegister", Shortcut(tr("Actions -> Zero Register"), "0"));
|
||||
defaultShortcuts.insert("ActionSetOneRegister", Shortcut(tr("Actions -> Set Register to One"), "1"));
|
||||
defaultShortcuts.insert("ActionToggleRegisterValue", Shortcut(tr("Actions -> Toggle Register Value"), "Space"));
|
||||
defaultShortcuts.insert("ActionCopy", Shortcut(tr("Actions -> Copy"), "Ctrl+C"));
|
||||
defaultShortcuts.insert("ActionLoadScript", Shortcut(tr("Actions -> Load Script"), "Ctrl+O"));
|
||||
defaultShortcuts.insert("ActionUnloadScript", Shortcut(tr("Actions -> Unload Script"), "Ctrl+U"));
|
||||
defaultShortcuts.insert("ActionRunScript", Shortcut(tr("Actions -> Run Script"), "Space"));
|
||||
defaultShortcuts.insert("ActionToggleBreakpointScript", Shortcut(tr("Actions -> Toggle Script Breakpoint"), "F2"));
|
||||
defaultShortcuts.insert("ActionRunToCursorScript", Shortcut(tr("Actions -> Run Script to Cursor"), "Shift+F4"));
|
||||
defaultShortcuts.insert("ActionStepScript", Shortcut(tr("Actions -> Step Script"), "Tab"));
|
||||
defaultShortcuts.insert("ActionAbortScript", Shortcut(tr("Actions -> Abort Script"), "Esc"));
|
||||
defaultShortcuts.insert("ActionExecuteCommandScript", Shortcut(tr("Actions -> Execute Script Command"), "X"));
|
||||
|
||||
Shortcuts = defaultShortcuts;
|
||||
|
||||
|
@ -350,7 +389,6 @@ void Configuration::writeFonts()
|
|||
emit fontsUpdated();
|
||||
}
|
||||
|
||||
|
||||
void Configuration::readShortcuts()
|
||||
{
|
||||
Shortcuts = defaultShortcuts;
|
||||
|
@ -360,15 +398,15 @@ void Configuration::readShortcuts()
|
|||
{
|
||||
const QString id = it.key();
|
||||
QString key = shortcutFromConfig(id);
|
||||
if(key != "NOT_SET")
|
||||
if(key != "")
|
||||
{
|
||||
if(key != "")
|
||||
if(key == "NOT_SET")
|
||||
Shortcuts[it.key()].Hotkey = QKeySequence();
|
||||
else
|
||||
{
|
||||
QKeySequence KeySequence(key);
|
||||
Shortcuts[it.key()].Hotkey = KeySequence;
|
||||
}
|
||||
else
|
||||
Shortcuts[it.key()].Hotkey = QKeySequence();
|
||||
}
|
||||
it++;
|
||||
}
|
||||
|
@ -507,17 +545,6 @@ void Configuration::setShortcut(const QString key_id, const QKeySequence key_seq
|
|||
{
|
||||
if(Shortcuts.contains(key_id))
|
||||
{
|
||||
for(QMap<QString, Shortcut>::iterator i=Shortcuts.begin(); i!=Shortcuts.end(); ++i)
|
||||
{
|
||||
if(!key_sequence.isEmpty() && i.value().Hotkey == key_sequence)
|
||||
{
|
||||
QMessageBox msg(QMessageBox::Warning, "DUPLICATE SHORTCUT", key_id + ": " + key_sequence.toString());
|
||||
msg.setWindowIcon(QIcon(":/icons/images/compile-warning.png"));
|
||||
msg.setWindowFlags(msg.windowFlags()&(~Qt::WindowContextHelpButtonHint));
|
||||
msg.exec();
|
||||
return;
|
||||
}
|
||||
}
|
||||
Shortcuts[key_id].Hotkey=key_sequence;
|
||||
return;
|
||||
}
|
||||
|
@ -656,7 +683,7 @@ QString Configuration::shortcutFromConfig(const QString id)
|
|||
{
|
||||
return QString(setting);
|
||||
}
|
||||
return "NOT_SET";
|
||||
return "";
|
||||
}
|
||||
|
||||
bool Configuration::shortcutToConfig(const QString id, const QKeySequence shortcut)
|
||||
|
@ -665,5 +692,7 @@ bool Configuration::shortcutToConfig(const QString id, const QKeySequence shortc
|
|||
QString _key = "";
|
||||
if(!shortcut.isEmpty())
|
||||
_key = shortcut.toString(QKeySequence::NativeText);
|
||||
else
|
||||
_key = "NOT_SET";
|
||||
return BridgeSettingSet("Shortcuts",_id.toUtf8().constData(),_key.toUtf8().constData());
|
||||
}
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
#include <QString>
|
||||
#include <QColor>
|
||||
#include <QMap>
|
||||
#include <QDebug>
|
||||
#include <QObject>
|
||||
#include <QKeySequence>
|
||||
#include "Bridge.h"
|
||||
|
@ -26,11 +25,13 @@ public:
|
|||
{
|
||||
QString Name;
|
||||
QKeySequence Hotkey;
|
||||
bool GlobalShortcut;
|
||||
|
||||
Shortcut(QString n = QString(), QString h = QString())
|
||||
Shortcut(QString n = QString(), QString h = QString(), bool g = false)
|
||||
{
|
||||
Name = n;
|
||||
Hotkey = QKeySequence(h);
|
||||
GlobalShortcut = g;
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue