From 3b34cf5d813ff220dbba6db3403fc8332a8c34cb Mon Sep 17 00:00:00 2001 From: "Mr. eXoDia" Date: Fri, 20 Jun 2014 00:45:37 +0200 Subject: [PATCH] GUI: better highlighting mode behavior --- .../Project/Src/Gui/CPUDisassembly.cpp | 26 +++++++++++++------ x64_dbg_gui/Project/Src/Gui/CPUDisassembly.h | 4 +-- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/x64_dbg_gui/Project/Src/Gui/CPUDisassembly.cpp b/x64_dbg_gui/Project/Src/Gui/CPUDisassembly.cpp index a38d20b1..ed7ec5fe 100644 --- a/x64_dbg_gui/Project/Src/Gui/CPUDisassembly.cpp +++ b/x64_dbg_gui/Project/Src/Gui/CPUDisassembly.cpp @@ -24,7 +24,14 @@ void CPUDisassembly::mousePressEvent(QMouseEvent* event) } } else + { Disassembly::mousePressEvent(event); + if(mHighlightingMode) //disable highlighting mode after clicked + { + mHighlightingMode=false; + reloadData(); + } + } } void CPUDisassembly::mouseDoubleClickEvent(QMouseEvent* event) @@ -168,9 +175,14 @@ void CPUDisassembly::contextMenuEvent(QContextMenuEvent* event) } wMenu->addMenu(mBPMenu); + wMenu->addSeparator(); + wMenu->addAction(mEnableHighlightingMode); + // Separator wMenu->addSeparator(); + + // New origin wMenu->addAction(mSetNewOriginHere); @@ -203,9 +215,6 @@ void CPUDisassembly::contextMenuEvent(QContextMenuEvent* event) mReferencesMenu->addAction(mReferenceSelectedAddress); wMenu->addMenu(mReferencesMenu); - wMenu->addSeparator(); - wMenu->addAction(mToggleHighlightingMode); - QAction* wAction = wMenu->exec(event->globalPos()); } } @@ -355,10 +364,11 @@ void CPUDisassembly::setupRightClickContextMenu() connect(mSearchStrings, SIGNAL(triggered()), this, SLOT(findStrings())); // Highlighting mode - mToggleHighlightingMode = new QAction("Toggle &highlighting mode", this); - mToggleHighlightingMode->setShortcutContext(Qt::WidgetShortcut); - mToggleHighlightingMode->setShortcut(QKeySequence("ctrl+h")); - connect(mToggleHighlightingMode, SIGNAL(triggered()), this, SLOT(toggleHighlightingMode())); + mEnableHighlightingMode = new QAction("&Highlighting mode", this); + mEnableHighlightingMode->setShortcutContext(Qt::WidgetShortcut); + mEnableHighlightingMode->setShortcut(QKeySequence("ctrl+h")); + this->addAction(mEnableHighlightingMode); + connect(mEnableHighlightingMode, SIGNAL(triggered()), this, SLOT(enableHighlightingMode())); } void CPUDisassembly::gotoOrigin() @@ -727,7 +737,7 @@ void CPUDisassembly::selectionSet(const SELECTIONDATA* selection) Bridge::getBridge()->BridgeSetResult(1); } -void CPUDisassembly::toggleHighlightingMode() +void CPUDisassembly::enableHighlightingMode() { if(mHighlightingMode) mHighlightingMode=false; diff --git a/x64_dbg_gui/Project/Src/Gui/CPUDisassembly.h b/x64_dbg_gui/Project/Src/Gui/CPUDisassembly.h index 119d0f0e..0eb045ca 100644 --- a/x64_dbg_gui/Project/Src/Gui/CPUDisassembly.h +++ b/x64_dbg_gui/Project/Src/Gui/CPUDisassembly.h @@ -56,7 +56,7 @@ public slots: void findStrings(); void selectionGet(SELECTIONDATA* selection); void selectionSet(const SELECTIONDATA* selection); - void toggleHighlightingMode(); + void enableHighlightingMode(); private: @@ -88,7 +88,7 @@ private: QAction* mReferenceSelectedAddress; QAction* mSearchConstant; QAction* mSearchStrings; - QAction* mToggleHighlightingMode; + QAction* mEnableHighlightingMode; GotoDialog* mGoto; };