add shortcut to copy line and etc
This commit is contained in:
parent
db439380aa
commit
ea8941ba0a
|
|
@ -11,6 +11,14 @@ AbstractStdTable::AbstractStdTable(QWidget* parent) : AbstractTableView(parent)
|
|||
connect(this, SIGNAL(headerButtonPressed(int)), this, SLOT(headerButtonPressedSlot(int)));
|
||||
|
||||
Initialize();
|
||||
|
||||
// Set up copy menu
|
||||
mCopyLine = makeShortcutAction(DIcon("copy_table_line.png"), tr("&Line"), SLOT(copyLineSlot()), "ActionCopyLine");
|
||||
mCopyTable = makeShortcutAction(DIcon("copy_cropped_table.png"), tr("Cropped &Table"), SLOT(copyTableSlot()), "ActionCopyCroppedTable");
|
||||
mCopyTableResize = makeShortcutAction(DIcon("copy_full_table.png"), tr("&Full Table"), SLOT(copyTableResizeSlot()), "ActionCopyTable");
|
||||
mCopyLineToLog = makeShortcutAction(DIcon("copy_table_line.png"), tr("Line, To Log"), SLOT(copyLineToLogSlot()), "ActionCopyLineToLog");
|
||||
mCopyTableToLog = makeShortcutAction(DIcon("copy_cropped_table.png"), tr("Cropped Table, To Log"), SLOT(copyTableToLogSlot()), "ActionCopyCroppedTableToLog");
|
||||
mCopyTableResizeToLog = makeShortcutAction(DIcon("copy_full_table.png"), tr("Full Table, To Log"), SLOT(copyTableResizeToLogSlot()), "ActionCopyTableToLog");
|
||||
}
|
||||
|
||||
QString AbstractStdTable::paintContent(QPainter* painter, dsint rowBase, int rowOffset, int col, int x, int y, int w, int h)
|
||||
|
|
@ -882,30 +890,18 @@ void AbstractStdTable::setupCopyMenu(QMenu* copyMenu)
|
|||
return;
|
||||
copyMenu->setIcon(DIcon("copy.png"));
|
||||
//Copy->Whole Line
|
||||
QAction* mCopyLine = new QAction(DIcon("copy_table_line.png"), tr("&Line"), copyMenu);
|
||||
connect(mCopyLine, SIGNAL(triggered()), this, SLOT(copyLineSlot()));
|
||||
copyMenu->addAction(mCopyLine);
|
||||
//Copy->Cropped Table
|
||||
QAction* mCopyTable = new QAction(DIcon("copy_cropped_table.png"), tr("Cropped &Table"), copyMenu);
|
||||
connect(mCopyTable, SIGNAL(triggered()), this, SLOT(copyTableSlot()));
|
||||
copyMenu->addAction(mCopyTable);
|
||||
//Copy->Full Table
|
||||
QAction* mCopyTableResize = new QAction(DIcon("copy_full_table.png"), tr("&Full Table"), copyMenu);
|
||||
connect(mCopyTableResize, SIGNAL(triggered()), this, SLOT(copyTableResizeSlot()));
|
||||
copyMenu->addAction(mCopyTableResize);
|
||||
//Copy->Separator
|
||||
copyMenu->addSeparator();
|
||||
//Copy->Whole Line To Log
|
||||
QAction* mCopyLineToLog = new QAction(DIcon("copy_table_line.png"), tr("Line, To Log"), copyMenu);
|
||||
connect(mCopyLineToLog, SIGNAL(triggered()), this, SLOT(copyLineToLogSlot()));
|
||||
copyMenu->addAction(mCopyLineToLog);
|
||||
//Copy->Cropped Table To Log
|
||||
QAction* mCopyTableToLog = new QAction(DIcon("copy_cropped_table.png"), tr("Cropped Table, To Log"), copyMenu);
|
||||
connect(mCopyTableToLog, SIGNAL(triggered()), this, SLOT(copyTableToLogSlot()));
|
||||
copyMenu->addAction(mCopyTableToLog);
|
||||
//Copy->Full Table To Log
|
||||
QAction* mCopyTableResizeToLog = new QAction(DIcon("copy_full_table.png"), tr("Full Table, To Log"), copyMenu);
|
||||
connect(mCopyTableResizeToLog, SIGNAL(triggered()), this, SLOT(copyTableResizeToLogSlot()));
|
||||
copyMenu->addAction(mCopyTableResizeToLog);
|
||||
//Copy->Separator
|
||||
copyMenu->addSeparator();
|
||||
|
|
@ -934,19 +930,19 @@ void AbstractStdTable::setupCopyMenu(MenuBuilder* copyMenu)
|
|||
if(!getColumnCount())
|
||||
return;
|
||||
//Copy->Whole Line
|
||||
copyMenu->addAction(makeAction(DIcon("copy_table_line.png"), tr("&Line"), SLOT(copyLineSlot())));
|
||||
copyMenu->addAction(mCopyLine);
|
||||
//Copy->Cropped Table
|
||||
copyMenu->addAction(makeAction(DIcon("copy_cropped_table.png"), tr("Cropped &Table"), SLOT(copyTableSlot())));
|
||||
copyMenu->addAction(mCopyTable);
|
||||
//Copy->Full Table
|
||||
copyMenu->addAction(makeAction(DIcon("copy_full_table.png"), tr("&Full Table"), SLOT(copyTableResizeSlot())));
|
||||
copyMenu->addAction(mCopyTableResize);
|
||||
//Copy->Separator
|
||||
copyMenu->addSeparator();
|
||||
//Copy->Whole Line To Log
|
||||
copyMenu->addAction(makeAction(DIcon("copy_table_line.png"), tr("Line, To Log"), SLOT(copyLineToLogSlot())));
|
||||
copyMenu->addAction(mCopyLineToLog);
|
||||
//Copy->Cropped Table
|
||||
copyMenu->addAction(makeAction(DIcon("copy_cropped_table.png"), tr("Cropped Table, To Log"), SLOT(copyTableToLogSlot())));
|
||||
copyMenu->addAction(mCopyTableToLog);
|
||||
//Copy->Full Table
|
||||
copyMenu->addAction(makeAction(DIcon("copy_full_table.png"), tr("Full Table, To Log"), SLOT(copyTableResizeToLogSlot())));
|
||||
copyMenu->addAction(mCopyTableResizeToLog);
|
||||
//Copy->Separator
|
||||
copyMenu->addSeparator();
|
||||
//Copy->ColName
|
||||
|
|
|
|||
|
|
@ -144,4 +144,11 @@ protected:
|
|||
int mAddressColumn = -1;
|
||||
bool bAddressLabel = true;
|
||||
bool bDisassemblyPopupEnabled = true;
|
||||
|
||||
QAction* mCopyLine;
|
||||
QAction* mCopyTable;
|
||||
QAction* mCopyTableResize;
|
||||
QAction* mCopyLineToLog;
|
||||
QAction* mCopyTableToLog;
|
||||
QAction* mCopyTableResizeToLog;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -208,7 +208,7 @@ void CPUStack::setupContextMenu()
|
|||
|
||||
//Follow CSP
|
||||
mMenuBuilder->addAction(makeShortcutAction(DIcon("neworigin.png"), ArchValue(tr("Follow E&SP"), tr("Follow R&SP")), SLOT(gotoCspSlot()), "ActionGotoOrigin"));
|
||||
mMenuBuilder->addAction(makeAction(DIcon("cbp.png"), ArchValue(tr("Follow E&BP"), tr("Follow R&BP")), SLOT(gotoCbpSlot())), [this](QMenu*)
|
||||
mMenuBuilder->addAction(makeShortcutAction(DIcon("cbp.png"), ArchValue(tr("Follow E&BP"), tr("Follow R&BP")), SLOT(gotoCbpSlot()), "ActionGotoCBP"), [this](QMenu*)
|
||||
{
|
||||
return DbgMemIsValidReadPtr(DbgValFromString("cbp"));
|
||||
});
|
||||
|
|
|
|||
|
|
@ -2176,18 +2176,14 @@ void DisassemblerGraphView::setupContextMenu()
|
|||
});
|
||||
breakpointMenu->build(mMenuBuilder);
|
||||
|
||||
mMenuBuilder->addAction(makeShortcutAction(DIcon("comment.png"), tr("&Comment"), SLOT(setCommentSlot()), "ActionSetComment"), [this](QMenu*)
|
||||
auto zoomActionHelperNonZero = [this](QMenu*)
|
||||
{
|
||||
return zoomActionHelper() != 0;
|
||||
});
|
||||
mMenuBuilder->addAction(makeShortcutAction(DIcon("label.png"), tr("&Label"), SLOT(setLabelSlot()), "ActionSetLabel"), [this](QMenu*)
|
||||
{
|
||||
return zoomActionHelper() != 0;
|
||||
});
|
||||
mMenuBuilder->addAction(makeShortcutAction(DIcon("xrefs.png"), tr("Xrefs..."), SLOT(xrefSlot()), "ActionXrefs"), [this](QMenu*)
|
||||
{
|
||||
return zoomActionHelper() != 0;
|
||||
});
|
||||
};
|
||||
|
||||
mMenuBuilder->addAction(makeShortcutAction(DIcon("comment.png"), tr("&Comment"), SLOT(setCommentSlot()), "ActionSetComment"), zoomActionHelperNonZero);
|
||||
mMenuBuilder->addAction(makeShortcutAction(DIcon("label.png"), tr("&Label"), SLOT(setLabelSlot()), "ActionSetLabel"), zoomActionHelperNonZero);
|
||||
mMenuBuilder->addAction(makeShortcutAction(DIcon("xrefs.png"), tr("Xrefs..."), SLOT(xrefSlot()), "ActionXrefs"), zoomActionHelperNonZero);
|
||||
|
||||
MenuBuilder* gotoMenu = new MenuBuilder(this);
|
||||
gotoMenu->addAction(makeShortcutAction(DIcon("geolocation-goto.png"), tr("Expression"), SLOT(gotoExpressionSlot()), "ActionGotoExpression"));
|
||||
|
|
@ -2273,29 +2269,16 @@ void DisassemblerGraphView::setupContextMenu()
|
|||
gotoMenu->addBuilder(childrenAndParentMenu);
|
||||
mMenuBuilder->addMenu(makeMenu(DIcon("goto.png"), tr("Go to")), gotoMenu);
|
||||
|
||||
mMenuBuilder->addAction(mZoomToCursor = makeShortcutAction(DIcon("zoom.png"), tr("&Zoom 100%"), SLOT(zoomToCursorSlot()), "ActionGraphZoomToCursor"), [this](QMenu*)
|
||||
auto ifgraphZoomMode = [this](QMenu*)
|
||||
{
|
||||
if(!graphZoomMode)
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
});
|
||||
mMenuBuilder->addAction(mFitToWindow = makeShortcutAction(DIcon("fit.png"), tr("&Fit to window"), SLOT(fitToWindowSlot()), "ActionGraphFitToWindow"), [this](QMenu*)
|
||||
{
|
||||
if(!graphZoomMode)
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
});
|
||||
return graphZoomMode;
|
||||
};
|
||||
|
||||
mMenuBuilder->addAction(mZoomToCursor = makeShortcutAction(DIcon("zoom.png"), tr("&Zoom 100%"), SLOT(zoomToCursorSlot()), "ActionGraphZoomToCursor"), ifgraphZoomMode);
|
||||
mMenuBuilder->addAction(mFitToWindow = makeShortcutAction(DIcon("fit.png"), tr("&Fit to window"), SLOT(fitToWindowSlot()), "ActionGraphFitToWindow"), ifgraphZoomMode);
|
||||
|
||||
mMenuBuilder->addSeparator();
|
||||
mMenuBuilder->addAction(mToggleOverview = makeShortcutAction(DIcon("graph.png"), tr("&Overview"), SLOT(toggleOverviewSlot()), "ActionGraphToggleOverview"), [this](QMenu*)
|
||||
{
|
||||
if(graphZoomMode)
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
});
|
||||
mMenuBuilder->addAction(mToggleOverview = makeShortcutAction(DIcon("graph.png"), tr("&Overview"), SLOT(toggleOverviewSlot()), "ActionGraphToggleOverview"), ifgraphZoomMode);
|
||||
mToggleOverview->setCheckable(true);
|
||||
mMenuBuilder->addAction(mToggleSummary = makeShortcutAction(DIcon("summary.png"), tr("S&ummary"), SLOT(toggleSummarySlot()), "ActionGraphToggleSummary"));
|
||||
mToggleSummary->setCheckable(true);
|
||||
|
|
|
|||
|
|
@ -489,6 +489,7 @@ Configuration::Configuration() : QObject(), noMoreMsgbox(false)
|
|||
defaultShortcuts.insert("ActionAssemble", Shortcut({tr("Actions"), tr("Assemble")}, "Space"));
|
||||
defaultShortcuts.insert("ActionSetNewOriginHere", Shortcut({tr("Actions"), tr("Set New Origin Here")}, "Ctrl+*"));
|
||||
defaultShortcuts.insert("ActionGotoOrigin", Shortcut({tr("Actions"), tr("Goto Origin")}, "*"));
|
||||
defaultShortcuts.insert("ActionGotoCBP", Shortcut({tr("Actions"), tr("Goto EBP/RBP")}));
|
||||
defaultShortcuts.insert("ActionGotoPrevious", Shortcut({tr("Actions"), tr("Goto Previous")}, "-"));
|
||||
defaultShortcuts.insert("ActionGotoNext", Shortcut({tr("Actions"), tr("Goto Next")}, "+"));
|
||||
defaultShortcuts.insert("ActionGotoExpression", Shortcut({tr("Actions"), tr("Goto Expression")}, "Ctrl+G"));
|
||||
|
|
@ -613,6 +614,13 @@ Configuration::Configuration() : QObject(), noMoreMsgbox(false)
|
|||
defaultShortcuts.insert("ActionCopyFileOffset", Shortcut({tr("Actions"), tr("Copy File Offset")}));
|
||||
defaultShortcuts.insert("ActionToggleRunTrace", Shortcut({tr("Actions"), tr("Start or Stop Run Trace")}));
|
||||
|
||||
defaultShortcuts.insert("ActionCopyLine", Shortcut({tr("Actions"), tr("Copy -> Line")}));
|
||||
defaultShortcuts.insert("ActionCopyCroppedTable", Shortcut({tr("Actions"), tr("Copy -> Cropped Table")}));
|
||||
defaultShortcuts.insert("ActionCopyTable", Shortcut({tr("Actions"), tr("Copy -> Table")}));
|
||||
defaultShortcuts.insert("ActionCopyLineToLog", Shortcut({tr("Actions"), tr("Copy -> Line, To Log")}));
|
||||
defaultShortcuts.insert("ActionCopyCroppedTableToLog", Shortcut({tr("Actions"), tr("Copy -> Cropped Table, To Log")}));
|
||||
defaultShortcuts.insert("ActionCopyTableToLog", Shortcut({tr("Actions"), tr("Copy -> Table, To Log")}));
|
||||
|
||||
Shortcuts = defaultShortcuts;
|
||||
|
||||
load();
|
||||
|
|
|
|||
Loading…
Reference in New Issue