GUI: disassembly summary in graph
This commit is contained in:
parent
f96a11fede
commit
f7d3f7cb74
|
@ -39,6 +39,7 @@ DisassemblerGraphView::DisassemblerGraphView(QWidget* parent)
|
|||
this->scroll_base_y = 0;
|
||||
this->scroll_mode = false;
|
||||
this->drawOverview = false;
|
||||
this->onlySummary = false;
|
||||
this->blocks.clear();
|
||||
this->saveGraph = false;
|
||||
|
||||
|
@ -1559,7 +1560,13 @@ void DisassemblerGraphView::loadCurrentGraph()
|
|||
}
|
||||
instr.text = Text(richText);
|
||||
|
||||
block.instrs.push_back(instr);
|
||||
//The summary contains calls, rets, user comments and string references
|
||||
if(!onlySummary ||
|
||||
instrTok.branchType == Instruction_t::Call ||
|
||||
instrTok.instStr.startsWith("ret", Qt::CaseInsensitive) ||
|
||||
(!commentText.text.isEmpty() && !autoComment) ||
|
||||
commentText.text.contains('\"'))
|
||||
block.instrs.push_back(instr);
|
||||
}
|
||||
}
|
||||
func.blocks.push_back(block);
|
||||
|
@ -1615,6 +1622,8 @@ void DisassemblerGraphView::setupContextMenu()
|
|||
mMenuBuilder->addSeparator();
|
||||
mMenuBuilder->addAction(mToggleOverview = makeShortcutAction(DIcon("graph.png"), tr("&Overview"), SLOT(toggleOverviewSlot()), "ActionGraphToggleOverview"));
|
||||
mToggleOverview->setCheckable(true);
|
||||
mMenuBuilder->addAction(mToggleSummary = makeShortcutAction(DIcon("summary.png"), tr("S&ummary"), SLOT(toggleSummarySlot()), "ActionGraphToggleSummary"));
|
||||
mToggleSummary->setCheckable(true);
|
||||
mMenuBuilder->addAction(mToggleSyncOrigin = makeShortcutAction(DIcon("lock.png"), tr("&Sync with origin"), SLOT(toggleSyncOriginSlot()), "ActionGraphSyncOrigin"));
|
||||
mMenuBuilder->addAction(makeShortcutAction(DIcon("sync.png"), tr("&Refresh"), SLOT(refreshSlot()), "ActionRefresh"));
|
||||
mMenuBuilder->addAction(makeShortcutAction(DIcon("image.png"), tr("&Save as image"), SLOT(saveImageSlot()), "ActionGraphSaveImage"));
|
||||
|
@ -1705,8 +1714,20 @@ void DisassemblerGraphView::shortcutsUpdatedSlot()
|
|||
void DisassemblerGraphView::toggleOverviewSlot()
|
||||
{
|
||||
drawOverview = !drawOverview;
|
||||
mToggleOverview->setChecked(drawOverview);
|
||||
this->viewport()->update();
|
||||
if(onlySummary)
|
||||
{
|
||||
onlySummary = false;
|
||||
loadCurrentGraph();
|
||||
}
|
||||
else
|
||||
this->viewport()->update();
|
||||
}
|
||||
|
||||
void DisassemblerGraphView::toggleSummarySlot()
|
||||
{
|
||||
drawOverview = false;
|
||||
onlySummary = !onlySummary;
|
||||
loadCurrentGraph();
|
||||
}
|
||||
|
||||
void DisassemblerGraphView::selectionGetSlot(SELECTIONDATA* selection)
|
||||
|
|
|
@ -258,6 +258,7 @@ public slots:
|
|||
void fontsUpdatedSlot();
|
||||
void shortcutsUpdatedSlot();
|
||||
void toggleOverviewSlot();
|
||||
void toggleSummarySlot();
|
||||
void selectionGetSlot(SELECTIONDATA* selection);
|
||||
void tokenizerConfigUpdatedSlot();
|
||||
void loadCurrentGraph();
|
||||
|
@ -301,6 +302,7 @@ private:
|
|||
CachedFontMetrics* mFontMetrics;
|
||||
MenuBuilder* mMenuBuilder;
|
||||
bool drawOverview;
|
||||
bool onlySummary;
|
||||
bool syncOrigin;
|
||||
int overviewXOfs;
|
||||
int overviewYOfs;
|
||||
|
@ -311,6 +313,7 @@ private:
|
|||
LayoutType layoutType;
|
||||
|
||||
QAction* mToggleOverview;
|
||||
QAction* mToggleSummary;
|
||||
QAction* mToggleSyncOrigin;
|
||||
|
||||
QColor disassemblyBackgroundColor;
|
||||
|
|
|
@ -534,6 +534,7 @@ Configuration::Configuration() : QObject(), noMoreMsgbox(false)
|
|||
defaultShortcuts.insert("ActionGraphFollowDisassembler", Shortcut(tr("Actions -> Graph -> Follow in disassembler"), "Shift+Return"));
|
||||
defaultShortcuts.insert("ActionGraphSaveImage", Shortcut(tr("Actions -> Graph -> Save as image"), "I"));
|
||||
defaultShortcuts.insert("ActionGraphToggleOverview", Shortcut(tr("Actions -> Graph -> Toggle overview"), "O"));
|
||||
defaultShortcuts.insert("ActionGraphToggleSummary", Shortcut(tr("Actions -> Graph -> Toggle summary"), "U"));
|
||||
defaultShortcuts.insert("ActionGraphSyncOrigin", Shortcut(tr("Actions -> Graph -> Toggle sync with origin"), "S"));
|
||||
defaultShortcuts.insert("ActionGraphDecompile", Shortcut(tr("Actions -> Graph -> Decompile"), "Tab"));
|
||||
defaultShortcuts.insert("ActionIncrementx87Stack", Shortcut(tr("Actions -> Increment x87 Stack")));
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 493 B |
|
@ -293,5 +293,6 @@
|
|||
<file>images/narrow.png</file>
|
||||
<file>images/wide.png</file>
|
||||
<file>images/layout.png</file>
|
||||
<file>images/summary.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
Loading…
Reference in New Issue