1
0
Fork 0

Added Symbolic Name copy to copy context meny in CPU disassembly window. (#1186)

This commit is contained in:
Alexandros Naskos 2016-10-23 00:59:40 +03:00 committed by Duncan Ogilvie
parent fbf0ddacca
commit 0f2b337f03
2 changed files with 17 additions and 0 deletions

View File

@ -245,6 +245,16 @@ void CPUDisassembly::setupRightClickContextMenu()
copyMenu->addAction(makeAction(DIcon("copy_address.png"), tr("&RVA"), SLOT(copyRvaSlot())));
copyMenu->addAction(makeAction(DIcon("copy_disassembly.png"), tr("Disassembly"), SLOT(copyDisassemblySlot())));
copyMenu->addAction(makeAction(DIcon("data-copy.png"), tr("&Data..."), SLOT(copyDataSlot())));
copyMenu->addMenu(makeMenu(DIcon("copy_selection.png"), tr("Symbolic Name")), [this](QMenu * menu)
{
QSet<QString> labels;
if(!getLabelsFromInstruction(rvaToVa(getInitialSelection()), labels))
return false;
for(auto label : labels)
menu->addAction(makeAction(label, SLOT(labelCopySlot())));
return true;
});
mMenuBuilder->addMenu(makeMenu(DIcon("copy.png"), tr("&Copy")), copyMenu);
mMenuBuilder->addAction(makeShortcutAction(DIcon("eraser.png"), tr("&Restore selection"), SLOT(undoSelectionSlot()), "ActionUndoSelection"), [this](QMenu*)
@ -1519,6 +1529,12 @@ void CPUDisassembly::copyDataSlot()
dataDialog.exec();
}
void CPUDisassembly::labelCopySlot()
{
QString symbol = ((QAction*)sender())->text();
Bridge::CopyToClipboard(symbol);
}
void CPUDisassembly::findCommandSlot()
{
if(!DbgIsDebugging())

View File

@ -89,6 +89,7 @@ public slots:
void copyRvaSlot();
void copyDisassemblySlot();
void copyDataSlot();
void labelCopySlot();
void findCommandSlot();
void openSourceSlot();
void decompileSelectionSlot();