diff --git a/README.md b/README.md index 19b03ca6..e233f8c4 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ For a complete guide on compiling *x64dbg* read [this](https://github.com/x64dbg Releases of *x64dbg* can be found [here](http://releases.x64dbg.com). -Jenkins build server can be found [here](http://jenkins.x64dbg.com). +~~Jenkins build server can be found [here](http://jenkins.x64dbg.com).~~ ## Overview diff --git a/src/gui/Src/Gui/BreakpointsView.cpp b/src/gui/Src/Gui/BreakpointsView.cpp index f70468d3..e313175d 100644 --- a/src/gui/Src/Gui/BreakpointsView.cpp +++ b/src/gui/Src/Gui/BreakpointsView.cpp @@ -289,7 +289,7 @@ void BreakpointsView::setupHardBPRightClickContextMenu() connect(mHardBPRemoveAllAction, SIGNAL(triggered()), this, SLOT(removeAllHardBPActionSlot())); // Enable/Disable - mHardBPEnableDisableAction = new QAction(tr("E&nable"), this); + mHardBPEnableDisableAction = new QAction(DIcon("enable.png"), tr("E&nable"), this); mHardBPEnableDisableAction->setShortcutContext(Qt::WidgetShortcut); mHardBPTable->addAction(mHardBPEnableDisableAction); connect(mHardBPEnableDisableAction, SIGNAL(triggered()), this, SLOT(enableDisableHardBPActionSlot())); @@ -300,12 +300,12 @@ void BreakpointsView::setupHardBPRightClickContextMenu() connect(mHardBPResetHitCountAction, SIGNAL(triggered()), this, SLOT(resetHardwareHitCountSlot())); // Enable All - mHardBPEnableAllAction = new QAction(tr("Enable All"), this); + mHardBPEnableAllAction = new QAction(DIcon("enable.png"), tr("Enable All"), this); mHardBPTable->addAction(mHardBPEnableAllAction); connect(mHardBPEnableAllAction, SIGNAL(triggered()), this, SLOT(enableAllHardBPActionSlot())); // Disable All - mHardBPDisableAllAction = new QAction(tr("Disable All"), this); + mHardBPDisableAllAction = new QAction(DIcon("disable.png"), tr("Disable All"), this); mHardBPTable->addAction(mHardBPDisableAllAction); connect(mHardBPDisableAllAction, SIGNAL(triggered()), this, SLOT(disableAllHardBPActionSlot())); } @@ -347,16 +347,19 @@ void BreakpointsView::hardwareBPContextMenuSlot(const QPoint & pos) if(wBPList.bp[wI].active == false) { mHardBPEnableDisableAction->setText(tr("E&nable")); + mHardBPEnableDisableAction->setIcon(DIcon("enable.png")); wMenu.addAction(mHardBPEnableDisableAction); } else if(wBPList.bp[wI].enabled == true) { mHardBPEnableDisableAction->setText(tr("&Disable")); + mHardBPEnableDisableAction->setIcon(DIcon("disable.png")); wMenu.addAction(mHardBPEnableDisableAction); } else { mHardBPEnableDisableAction->setText(tr("E&nable")); + mHardBPEnableDisableAction->setIcon(DIcon("enable.png")); wMenu.addAction(mHardBPEnableDisableAction); } } @@ -383,6 +386,7 @@ void BreakpointsView::hardwareBPContextMenuSlot(const QPoint & pos) //Copy QMenu wCopyMenu(tr("&Copy"), this); + wCopyMenu.setIcon(DIcon("copy.png")); table->setupCopyMenu(&wCopyMenu); if(wCopyMenu.actions().length()) { @@ -460,7 +464,7 @@ void BreakpointsView::setupSoftBPRightClickContextMenu() connect(mSoftBPRemoveAllAction, SIGNAL(triggered()), this, SLOT(removeAllSoftBPActionSlot())); // Enable/Disable - mSoftBPEnableDisableAction = new QAction(tr("E&nable"), this); + mSoftBPEnableDisableAction = new QAction(DIcon("enable.png"), tr("E&nable"), this); mSoftBPEnableDisableAction->setShortcutContext(Qt::WidgetShortcut); mSoftBPTable->addAction(mSoftBPEnableDisableAction); connect(mSoftBPEnableDisableAction, SIGNAL(triggered()), this, SLOT(enableDisableSoftBPActionSlot())); @@ -471,12 +475,12 @@ void BreakpointsView::setupSoftBPRightClickContextMenu() connect(mSoftBPResetHitCountAction, SIGNAL(triggered()), this, SLOT(resetSoftwareHitCountSlot())); // Enable All - mSoftBPEnableAllAction = new QAction(tr("Enable All"), this); + mSoftBPEnableAllAction = new QAction(DIcon("enable.png"), tr("Enable All"), this); mSoftBPTable->addAction(mSoftBPEnableAllAction); connect(mSoftBPEnableAllAction, SIGNAL(triggered()), this, SLOT(enableAllSoftBPActionSlot())); // Disable All - mSoftBPDisableAllAction = new QAction(tr("Disable All"), this); + mSoftBPDisableAllAction = new QAction(DIcon("disable.png"), tr("Disable All"), this); mSoftBPTable->addAction(mSoftBPDisableAllAction); connect(mSoftBPDisableAllAction, SIGNAL(triggered()), this, SLOT(disableAllSoftBPActionSlot())); } @@ -504,16 +508,19 @@ void BreakpointsView::softwareBPContextMenuSlot(const QPoint & pos) if(wBPList.bp[wI].active == false) { mSoftBPEnableDisableAction->setText(tr("E&nable")); + mSoftBPEnableDisableAction->setIcon(DIcon("enable.png")); wMenu.addAction(mSoftBPEnableDisableAction); } else if(wBPList.bp[wI].enabled == true) { mSoftBPEnableDisableAction->setText(tr("&Disable")); + mSoftBPEnableDisableAction->setIcon(DIcon("disable.png")); wMenu.addAction(mSoftBPEnableDisableAction); } else { mSoftBPEnableDisableAction->setText(tr("E&nable")); + mSoftBPEnableDisableAction->setIcon(DIcon("enable.png")); wMenu.addAction(mSoftBPEnableDisableAction); } } @@ -540,6 +547,7 @@ void BreakpointsView::softwareBPContextMenuSlot(const QPoint & pos) //Copy QMenu wCopyMenu(tr("&Copy"), this); + wCopyMenu.setIcon(DIcon("copy.png")); table->setupCopyMenu(&wCopyMenu); if(wCopyMenu.actions().length()) { @@ -617,7 +625,7 @@ void BreakpointsView::setupMemBPRightClickContextMenu() connect(mMemBPRemoveAllAction, SIGNAL(triggered()), this, SLOT(removeAllMemBPActionSlot())); // Enable/Disable - mMemBPEnableDisableAction = new QAction(tr("E&nable"), this); + mMemBPEnableDisableAction = new QAction(DIcon("enable.png"), tr("E&nable"), this); mMemBPEnableDisableAction->setShortcutContext(Qt::WidgetShortcut); mMemBPTable->addAction(mMemBPEnableDisableAction); connect(mMemBPEnableDisableAction, SIGNAL(triggered()), this, SLOT(enableDisableMemBPActionSlot())); @@ -628,12 +636,12 @@ void BreakpointsView::setupMemBPRightClickContextMenu() connect(mMemBPResetHitCountAction, SIGNAL(triggered()), this, SLOT(resetMemoryHitCountSlot())); // Enable All - mMemBPEnableAllAction = new QAction(tr("Enable All"), this); + mMemBPEnableAllAction = new QAction(DIcon("enable.png"), tr("Enable All"), this); mMemBPTable->addAction(mMemBPEnableAllAction); connect(mMemBPEnableAllAction, SIGNAL(triggered()), this, SLOT(enableAllMemBPActionSlot())); // Disable All - mMemBPDisableAllAction = new QAction(tr("Disable All"), this); + mMemBPDisableAllAction = new QAction(DIcon("disable.png"), tr("Disable All"), this); mMemBPTable->addAction(mMemBPDisableAllAction); connect(mMemBPDisableAllAction, SIGNAL(triggered()), this, SLOT(disableAllMemBPActionSlot())); } @@ -661,16 +669,19 @@ void BreakpointsView::memoryBPContextMenuSlot(const QPoint & pos) if(wBPList.bp[wI].active == false) { mMemBPEnableDisableAction->setText(tr("E&nable")); + mMemBPEnableDisableAction->setIcon(DIcon("enable.png")); wMenu.addAction(mMemBPEnableDisableAction); } else if(wBPList.bp[wI].enabled == true) { mMemBPEnableDisableAction->setText(tr("&Disable")); + mMemBPEnableDisableAction->setIcon(DIcon("disable.png")); wMenu.addAction(mMemBPEnableDisableAction); } else { mMemBPEnableDisableAction->setText(tr("E&nable")); + mMemBPEnableDisableAction->setIcon(DIcon("enable.png")); wMenu.addAction(mMemBPEnableDisableAction); } } @@ -697,6 +708,7 @@ void BreakpointsView::memoryBPContextMenuSlot(const QPoint & pos) //Copy QMenu wCopyMenu(tr("&Copy"), this); + wCopyMenu.setIcon(DIcon("copy.png")); table->setupCopyMenu(&wCopyMenu); if(wCopyMenu.actions().length()) { @@ -790,12 +802,12 @@ void BreakpointsView::setupDLLBPRightClickContextMenu() connect(mDLLBPResetHitCountAction, SIGNAL(triggered()), this, SLOT(resetDLLHitCountSlot())); // Enable All - mDLLBPEnableAllAction = new QAction(tr("Enable All"), this); + mDLLBPEnableAllAction = new QAction(DIcon("enable.png"), tr("Enable All"), this); mDLLBPTable->addAction(mDLLBPEnableAllAction); connect(mDLLBPEnableAllAction, SIGNAL(triggered()), this, SLOT(enableAllDLLBPActionSlot())); // Disable All - mDLLBPDisableAllAction = new QAction(tr("Disable All"), this); + mDLLBPDisableAllAction = new QAction(DIcon("disable.png"), ("Disable All"), this); mDLLBPTable->addAction(mDLLBPDisableAllAction); connect(mDLLBPDisableAllAction, SIGNAL(triggered()), this, SLOT(disableAllDLLBPActionSlot())); } @@ -826,16 +838,19 @@ void BreakpointsView::DLLBPContextMenuSlot(const QPoint & pos) if(wBPList.bp[wI].active == false) { mDLLBPEnableDisableAction->setText(tr("E&nable")); + mDLLBPEnableDisableAction->setIcon(DIcon("enable.png")); wMenu.addAction(mDLLBPEnableDisableAction); } else if(wBPList.bp[wI].enabled == true) { mDLLBPEnableDisableAction->setText(tr("&Disable")); + mDLLBPEnableDisableAction->setIcon(DIcon("disable.png")); wMenu.addAction(mDLLBPEnableDisableAction); } else { mDLLBPEnableDisableAction->setText(tr("E&nable")); + mDLLBPEnableDisableAction->setIcon(DIcon("enable.png")); wMenu.addAction(mDLLBPEnableDisableAction); } } @@ -862,6 +877,7 @@ void BreakpointsView::DLLBPContextMenuSlot(const QPoint & pos) //Copy QMenu wCopyMenu(tr("&Copy"), this); + wCopyMenu.setIcon(DIcon("copy.png")); table->setupCopyMenu(&wCopyMenu); if(wCopyMenu.actions().length()) { diff --git a/src/gui/Src/Gui/CPUStack.cpp b/src/gui/Src/Gui/CPUStack.cpp index 182326b5..7a4f3593 100644 --- a/src/gui/Src/Gui/CPUStack.cpp +++ b/src/gui/Src/Gui/CPUStack.cpp @@ -95,14 +95,14 @@ void CPUStack::setupContextMenu() mBinaryMenu->setIcon(DIcon("binary.png")); //Binary->Edit - mBinaryEditAction = new QAction(tr("&Edit"), this); + mBinaryEditAction = new QAction(DIcon("binary_edit.png"), tr("&Edit"), this); mBinaryEditAction->setShortcutContext(Qt::WidgetShortcut); this->addAction(mBinaryEditAction); connect(mBinaryEditAction, SIGNAL(triggered()), this, SLOT(binaryEditSlot())); mBinaryMenu->addAction(mBinaryEditAction); //Binary->Fill - mBinaryFillAction = new QAction(tr("&Fill..."), this); + mBinaryFillAction = new QAction(DIcon("binary_fill.png"), tr("&Fill..."), this); mBinaryFillAction->setShortcutContext(Qt::WidgetShortcut); this->addAction(mBinaryFillAction); connect(mBinaryFillAction, SIGNAL(triggered()), this, SLOT(binaryFillSlot())); @@ -112,21 +112,21 @@ void CPUStack::setupContextMenu() mBinaryMenu->addSeparator(); //Binary->Copy - mBinaryCopyAction = new QAction(tr("&Copy"), this); + mBinaryCopyAction = new QAction(DIcon("binary_copy.png"), tr("&Copy"), this); mBinaryCopyAction->setShortcutContext(Qt::WidgetShortcut); this->addAction(mBinaryCopyAction); connect(mBinaryCopyAction, SIGNAL(triggered()), this, SLOT(binaryCopySlot())); mBinaryMenu->addAction(mBinaryCopyAction); //Binary->Paste - mBinaryPasteAction = new QAction(tr("&Paste"), this); + mBinaryPasteAction = new QAction(DIcon("binary_paste.png"), tr("&Paste"), this); mBinaryPasteAction->setShortcutContext(Qt::WidgetShortcut); this->addAction(mBinaryPasteAction); connect(mBinaryPasteAction, SIGNAL(triggered()), this, SLOT(binaryPasteSlot())); mBinaryMenu->addAction(mBinaryPasteAction); //Binary->Paste (Ignore Size) - mBinaryPasteIgnoreSizeAction = new QAction(tr("Paste (&Ignore Size)"), this); + mBinaryPasteIgnoreSizeAction = new QAction(DIcon("binary_paste_ignoresize.png"), tr("Paste (&Ignore Size)"), this); mBinaryPasteIgnoreSizeAction->setShortcutContext(Qt::WidgetShortcut); this->addAction(mBinaryPasteIgnoreSizeAction); connect(mBinaryPasteIgnoreSizeAction, SIGNAL(triggered()), this, SLOT(binaryPasteIgnoreSizeSlot())); @@ -287,6 +287,7 @@ void CPUStack::setupContextMenu() auto followDumpMenuName = ArchValue(tr("Follow DWORD in Dump"), tr("Follow QWORD in Dump")); mFollowInDumpMenu = new QMenu(followDumpMenuName, this); + mFollowInDumpMenu->setIcon(DIcon("dump.png")); int maxDumps = mMultiDump->getMaxCPUTabs(); for(int i = 0; i < maxDumps; i++) diff --git a/src/gui/Src/Gui/HandlesView.cpp b/src/gui/Src/Gui/HandlesView.cpp index 45141367..19352f25 100644 --- a/src/gui/Src/Gui/HandlesView.cpp +++ b/src/gui/Src/Gui/HandlesView.cpp @@ -50,15 +50,15 @@ HandlesView::HandlesView(QWidget* parent) : QWidget(parent) mActionRefresh = new QAction(DIcon("arrow-restart.png"), tr("&Refresh"), this); connect(mActionRefresh, SIGNAL(triggered()), this, SLOT(reloadData())); addAction(mActionRefresh); - mActionCloseHandle = new QAction(DIcon("close-all-tabs.png"), tr("Close handle"), this); + mActionCloseHandle = new QAction(DIcon("disable.png"), tr("Close handle"), this); connect(mActionCloseHandle, SIGNAL(triggered()), this, SLOT(closeHandleSlot())); - mActionDisablePrivilege = new QAction(DIcon("close-all-tabs.png"), tr("Disable Privilege: "), this); + mActionDisablePrivilege = new QAction(DIcon("disable.png"), tr("Disable Privilege: "), this); connect(mActionDisablePrivilege, SIGNAL(triggered()), this, SLOT(disablePrivilegeSlot())); - mActionEnablePrivilege = new QAction(tr("Enable Privilege: "), this); + mActionEnablePrivilege = new QAction(DIcon("enable.png"), tr("Enable Privilege: "), this); connect(mActionEnablePrivilege, SIGNAL(triggered()), this, SLOT(enablePrivilegeSlot())); - mActionDisableAllPrivileges = new QAction(DIcon("close-all-tabs.png"), tr("Disable all privileges"), this); + mActionDisableAllPrivileges = new QAction(DIcon("disable.png"), tr("Disable all privileges"), this); connect(mActionDisableAllPrivileges, SIGNAL(triggered()), this, SLOT(disableAllPrivilegesSlot())); - mActionEnableAllPrivileges = new QAction(tr("Enable all privileges"), this); + mActionEnableAllPrivileges = new QAction(DIcon("enable.png"), tr("Enable all privileges"), this); connect(mActionEnableAllPrivileges, SIGNAL(triggered()), this, SLOT(enableAllPrivilegesSlot())); connect(mHandlesTable, SIGNAL(contextMenuSignal(const QPoint &)), this, SLOT(handlesTableContextMenuSlot(const QPoint &))); @@ -115,7 +115,8 @@ void HandlesView::handlesTableContextMenuSlot(const QPoint & pos) if(mHandlesTable->getRowCount() != 0) { wMenu.addAction(mActionCloseHandle); - QMenu wCopyMenu(tr("&Copy")); + QMenu wCopyMenu(tr("&Copy"), this); + wCopyMenu.setIcon(DIcon("copy.png")); table.setupCopyMenu(&wCopyMenu); if(wCopyMenu.actions().length()) { @@ -133,7 +134,8 @@ void HandlesView::tcpConnectionsTableContextMenuSlot(const QPoint & pos) wMenu.addAction(mActionRefresh); if(mTcpConnectionsTable->getRowCount() != 0) { - QMenu wCopyMenu(tr("&Copy")); + QMenu wCopyMenu(tr("&Copy"), this); + wCopyMenu.setIcon(DIcon("copy.png")); table.setupCopyMenu(&wCopyMenu); if(wCopyMenu.actions().length()) { @@ -166,7 +168,8 @@ void HandlesView::privilegesTableContextMenuSlot(const QPoint & pos) } wMenu.addAction(mActionDisableAllPrivileges); wMenu.addAction(mActionEnableAllPrivileges); - QMenu wCopyMenu(tr("&Copy")); + QMenu wCopyMenu(tr("&Copy"), this); + wCopyMenu.setIcon(DIcon("copy.png")); table.setupCopyMenu(&wCopyMenu); if(wCopyMenu.actions().length()) { diff --git a/src/gui/Src/Gui/LogView.cpp b/src/gui/Src/Gui/LogView.cpp index 510b3244..6e77a978 100644 --- a/src/gui/Src/Gui/LogView.cpp +++ b/src/gui/Src/Gui/LogView.cpp @@ -32,6 +32,15 @@ void LogView::updateStyle() setStyleSheet(QString("QTextEdit { color: %1; background-color: %2 }").arg(ConfigColor("AbstractTableViewTextColor").name(), ConfigColor("AbstractTableViewBackgroundColor").name())); } +template static QAction* setupAction(const QIcon & icon, const QString & text, LogView* this_object, T slot) +{ + QAction* action = new QAction(icon, text, this_object); + action->setShortcutContext(Qt::WidgetShortcut); + this_object->addAction(action); + this_object->connect(action, SIGNAL(triggered()), this_object, slot); + return action; +} + template static QAction* setupAction(const QString & text, LogView* this_object, T slot) { QAction* action = new QAction(text, this_object); @@ -43,10 +52,10 @@ template static QAction* setupAction(const QString & text, LogView* thi void LogView::setupContextMenu() { - actionClear = setupAction(tr("Clea&r"), this, SLOT(clearLogSlot())); - actionCopy = setupAction(tr("&Copy"), this, SLOT(copy())); + actionClear = setupAction(DIcon("eraser.png"), tr("Clea&r"), this, SLOT(clearLogSlot())); + actionCopy = setupAction(DIcon("copy.png"), tr("&Copy"), this, SLOT(copy())); actionSelectAll = setupAction(tr("Select &All"), this, SLOT(selectAll())); - actionSave = setupAction(tr("&Save"), this, SLOT(saveSlot())); + actionSave = setupAction(DIcon("binary_save.png"), tr("&Save"), this, SLOT(saveSlot())); actionToggleLogging = setupAction(tr("Disable &Logging"), this, SLOT(toggleLoggingSlot())); actionRedirectLog = setupAction(tr("&Redirect Log..."), this, SLOT(redirectLogSlot())); diff --git a/src/gui/Src/Gui/MemoryMapView.cpp b/src/gui/Src/Gui/MemoryMapView.cpp index 7347cdbd..272a8159 100644 --- a/src/gui/Src/Gui/MemoryMapView.cpp +++ b/src/gui/Src/Gui/MemoryMapView.cpp @@ -40,11 +40,11 @@ MemoryMapView::MemoryMapView(StdTable* parent) void MemoryMapView::setupContextMenu() { //Follow in Dump - mFollowDump = new QAction(tr("&Follow in Dump"), this); + mFollowDump = new QAction(DIcon("dump.png"), tr("&Follow in Dump"), this); connect(mFollowDump, SIGNAL(triggered()), this, SLOT(followDumpSlot())); //Follow in Disassembler - mFollowDisassembly = new QAction(tr("Follow in &Disassembler"), this); + mFollowDisassembly = new QAction(DIcon(ArchValue("processor32.png", "processor64.png")), tr("Follow in &Disassembler"), this); mFollowDisassembly->setShortcutContext(Qt::WidgetShortcut); mFollowDisassembly->setShortcut(QKeySequence("enter")); connect(mFollowDisassembly, SIGNAL(triggered()), this, SLOT(followDisassemblerSlot())); @@ -65,34 +65,38 @@ void MemoryMapView::setupContextMenu() //Breakpoint menu mBreakpointMenu = new QMenu(tr("Memory &Breakpoint"), this); + mBreakpointMenu->setIcon(DIcon("breakpoint.png")); //Breakpoint->Memory Access mMemoryAccessMenu = new QMenu(tr("Access"), this); - mMemoryAccessSingleshoot = new QAction(tr("&Singleshoot"), this); + mMemoryAccessMenu->setIcon(DIcon("breakpoint_memory_access.png")); + mMemoryAccessSingleshoot = new QAction(DIcon("breakpoint_memory_singleshoot.png"), tr("&Singleshoot"), this); connect(mMemoryAccessSingleshoot, SIGNAL(triggered()), this, SLOT(memoryAccessSingleshootSlot())); mMemoryAccessMenu->addAction(mMemoryAccessSingleshoot); - mMemoryAccessRestore = new QAction(tr("&Restore"), this); + mMemoryAccessRestore = new QAction(DIcon("breakpoint_memory_restore_on_hit.png"), tr("&Restore"), this); connect(mMemoryAccessRestore, SIGNAL(triggered()), this, SLOT(memoryAccessRestoreSlot())); mMemoryAccessMenu->addAction(mMemoryAccessRestore); mBreakpointMenu->addMenu(mMemoryAccessMenu); //Breakpoint->Memory Write mMemoryWriteMenu = new QMenu(tr("Write"), this); - mMemoryWriteSingleshoot = new QAction(tr("&Singleshoot"), this); + mMemoryWriteMenu->setIcon(DIcon("breakpoint_memory_write.png")); + mMemoryWriteSingleshoot = new QAction(DIcon("breakpoint_memory_singleshoot.png"), tr("&Singleshoot"), this); connect(mMemoryWriteSingleshoot, SIGNAL(triggered()), this, SLOT(memoryWriteSingleshootSlot())); mMemoryWriteMenu->addAction(mMemoryWriteSingleshoot); - mMemoryWriteRestore = new QAction(tr("&Restore"), this); + mMemoryWriteRestore = new QAction(DIcon("breakpoint_memory_restore_on_hit.png"), tr("&Restore"), this); connect(mMemoryWriteRestore, SIGNAL(triggered()), this, SLOT(memoryWriteRestoreSlot())); mMemoryWriteMenu->addAction(mMemoryWriteRestore); mBreakpointMenu->addMenu(mMemoryWriteMenu); //Breakpoint->Memory Execute mMemoryExecuteMenu = new QMenu(tr("Execute"), this); - mMemoryExecuteSingleshoot = new QAction(tr("&Singleshoot"), this); + mMemoryExecuteMenu->setIcon(DIcon("breakpoint_memory_execute.png")); + mMemoryExecuteSingleshoot = new QAction(DIcon("breakpoint_memory_singleshoot.png"), tr("&Singleshoot"), this); mMemoryExecuteSingleshoot->setShortcutContext(Qt::WidgetShortcut); connect(mMemoryExecuteSingleshoot, SIGNAL(triggered()), this, SLOT(memoryExecuteSingleshootSlot())); mMemoryExecuteMenu->addAction(mMemoryExecuteSingleshoot); - mMemoryExecuteRestore = new QAction(tr("&Restore"), this); + mMemoryExecuteRestore = new QAction(DIcon("breakpoint_memory_restore_on_hit.png"), tr("&Restore"), this); connect(mMemoryExecuteRestore, SIGNAL(triggered()), this, SLOT(memoryExecuteRestoreSlot())); mMemoryExecuteMenu->addAction(mMemoryExecuteRestore); mBreakpointMenu->addMenu(mMemoryExecuteMenu); @@ -121,7 +125,7 @@ void MemoryMapView::setupContextMenu() connect(mMemoryFree, SIGNAL(triggered()), this, SLOT(memoryFreeSlot())); this->addAction(mMemoryFree); - mFindAddress = new QAction(tr("Find address &page"), this); + mFindAddress = new QAction(DIcon("find.png"), tr("Find address &page"), this); connect(mFindAddress, SIGNAL(triggered()), this, SLOT(findAddressSlot())); this->addAction(mFindAddress); @@ -182,6 +186,7 @@ void MemoryMapView::contextMenuSlot(const QPoint & pos) wMenu.addSeparator(); wMenu.addMenu(mBreakpointMenu); QMenu wCopyMenu(tr("&Copy"), this); + wCopyMenu.setIcon(DIcon("copy.png")); setupCopyMenu(&wCopyMenu); if(wCopyMenu.actions().length()) { @@ -195,7 +200,7 @@ void MemoryMapView::contextMenuSlot(const QPoint & pos) #else //x86 duint selectedAddr = wStr.toULong(0, 16); #endif //_WIN64 - if((DbgGetBpxTypeAt(selectedAddr)&bp_memory) == bp_memory) //memory breakpoint set + if((DbgGetBpxTypeAt(selectedAddr) & bp_memory) == bp_memory) //memory breakpoint set { mMemoryAccessMenu->menuAction()->setVisible(false); mMemoryWriteMenu->menuAction()->setVisible(false); diff --git a/src/gui/Src/Gui/RegistersView.cpp b/src/gui/Src/Gui/RegistersView.cpp index 0fe623a7..17dbe0bb 100644 --- a/src/gui/Src/Gui/RegistersView.cpp +++ b/src/gui/Src/Gui/RegistersView.cpp @@ -453,11 +453,11 @@ RegistersView::RegistersView(CPUWidget* parent, CPUMultiDump* multiDump) : QScro wCM_Incrementx87Stack = setupAction(DIcon("arrow-small-down.png"), tr("Increment x87 Stack"), this); wCM_Decrementx87Stack = setupAction(DIcon("arrow-small-up.png"), tr("Decrement x87 Stack"), this); wCM_ChangeFPUView = new QAction(DIcon("change-view.png"), tr("Change view"), this); - wCM_IncrementPtrSize = setupAction(ArchValue(tr("Increase 4"), tr("Increase 8")), this); - wCM_DecrementPtrSize = setupAction(ArchValue(tr("Decrease 4"), tr("Decrease 8")), this); + wCM_IncrementPtrSize = setupAction(DIcon("register_inc.png"), ArchValue(tr("Increase 4"), tr("Increase 8")), this); + wCM_DecrementPtrSize = setupAction(DIcon("register_dec.png"), ArchValue(tr("Decrease 4"), tr("Decrease 8")), this); wCM_Push = setupAction(tr("Push"), this); wCM_Pop = setupAction(tr("Pop"), this); - wCM_Highlight = setupAction(tr("Highlight"), this); + wCM_Highlight = setupAction(DIcon("highlight.png"), tr("Highlight"), this); mFollowInDumpMenu = CreateDumpNMenu(multiDump); // general purposes register (we allow the user to modify the value) diff --git a/src/gui/Src/Gui/SymbolView.cpp b/src/gui/Src/Gui/SymbolView.cpp index 471a3548..5a7822b9 100644 --- a/src/gui/Src/Gui/SymbolView.cpp +++ b/src/gui/Src/Gui/SymbolView.cpp @@ -100,23 +100,24 @@ SymbolView::~SymbolView() void SymbolView::setupContextMenu() { + QIcon disassembler = DIcon(ArchValue("processor32.png", "processor64.png")); //Symbols - mFollowSymbolAction = new QAction(tr("&Follow in Disassembler"), this); + mFollowSymbolAction = new QAction(disassembler, tr("&Follow in Disassembler"), this); mFollowSymbolAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); mFollowSymbolAction->setShortcut(QKeySequence("enter")); connect(mFollowSymbolAction, SIGNAL(triggered()), this, SLOT(symbolFollow())); - mFollowSymbolDumpAction = new QAction(tr("Follow in &Dump"), this); + mFollowSymbolDumpAction = new QAction(DIcon("dump.png"), tr("Follow in &Dump"), this); connect(mFollowSymbolDumpAction, SIGNAL(triggered()), this, SLOT(symbolFollowDump())); - mToggleBreakpoint = new QAction(tr("Toggle Breakpoint"), this); + mToggleBreakpoint = new QAction(DIcon("breakpoint.png"), tr("Toggle Breakpoint"), this); mToggleBreakpoint->setShortcutContext(Qt::WidgetWithChildrenShortcut); this->addAction(mToggleBreakpoint); mSearchListView->mList->addAction(mToggleBreakpoint); mSearchListView->mSearchList->addAction(mToggleBreakpoint); connect(mToggleBreakpoint, SIGNAL(triggered()), this, SLOT(toggleBreakpoint())); - mToggleBookmark = new QAction(tr("Toggle Bookmark"), this); + mToggleBookmark = new QAction(DIcon("bookmark_toggle.png"), tr("Toggle Bookmark"), this); mToggleBookmark->setShortcutContext(Qt::WidgetWithChildrenShortcut); this->addAction(mToggleBookmark); mSearchListView->mList->addAction(mToggleBookmark); @@ -124,12 +125,12 @@ void SymbolView::setupContextMenu() connect(mToggleBookmark, SIGNAL(triggered()), this, SLOT(toggleBookmark())); //Modules - mFollowModuleAction = new QAction(tr("&Follow in Disassembler"), this); + mFollowModuleAction = new QAction(disassembler, tr("&Follow in Disassembler"), this); mFollowModuleAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); mFollowModuleAction->setShortcut(QKeySequence("enter")); connect(mFollowModuleAction, SIGNAL(triggered()), this, SLOT(moduleFollow())); - mFollowModuleEntryAction = new QAction(tr("Follow &Entry Point in Disassembler"), this); + mFollowModuleEntryAction = new QAction(disassembler, tr("Follow &Entry Point in Disassembler"), this); connect(mFollowModuleEntryAction, SIGNAL(triggered()), this, SLOT(moduleEntryFollow())); mDownloadSymbolsAction = new QAction(tr("&Download Symbols for This Module"), this); diff --git a/src/gui/images/disable.png b/src/gui/images/disable.png new file mode 100644 index 00000000..18f15107 Binary files /dev/null and b/src/gui/images/disable.png differ diff --git a/src/gui/images/enable.png b/src/gui/images/enable.png new file mode 100644 index 00000000..210b1a6c Binary files /dev/null and b/src/gui/images/enable.png differ diff --git a/src/gui/resource.qrc b/src/gui/resource.qrc index eb58718d..7b536669 100644 --- a/src/gui/resource.qrc +++ b/src/gui/resource.qrc @@ -250,5 +250,7 @@ images/binary_save.png images/animal-dog.png images/graph.png + images/enable.png + images/disable.png