cutter/src/menus/DisassemblyContextMenu.h
0xcpy 16ebe024a3 Right click edit instruction fix #312 (#328)
* Right click edit instruction fix #312
* added bytes editing
2018-02-12 21:12:13 +01:00

114 lines
3.0 KiB
C++

#ifndef DISASSEMBLYCONTEXTMENU_H
#define DISASSEMBLYCONTEXTMENU_H
#include "cutter.h"
#include <QMenu>
#include <QKeySequence>
class DisassemblyContextMenu : public QMenu
{
Q_OBJECT
public:
DisassemblyContextMenu(QWidget *parent = nullptr);
~DisassemblyContextMenu();
signals:
void copy();
public slots:
void setOffset(RVA offset);
void setCanCopy(bool enabled);
private slots:
void aboutToShowSlot();
void on_actionEditInstruction_triggered();
void on_actionEditBytes_triggered();
void on_actionCopy_triggered();
void on_actionAddComment_triggered();
void on_actionCreateFunction_triggered();
void on_actionAddFlag_triggered();
void on_actionRename_triggered();
void on_actionRenameUsedHere_triggered();
void on_actionXRefs_triggered();
void on_actionDisplayOptions_triggered();
void on_actionDeleteComment_triggered();
void on_actionDeleteFlag_triggered();
void on_actionDeleteFunction_triggered();
void on_actionSetBaseBinary_triggered();
void on_actionSetBaseOctal_triggered();
void on_actionSetBaseDecimal_triggered();
void on_actionSetBaseHexadecimal_triggered();
void on_actionSetBasePort_triggered();
void on_actionSetBaseIPAddr_triggered();
void on_actionSetBaseSyscall_triggered();
void on_actionSetBaseString_triggered();
void on_actionSetBits16_triggered();
void on_actionSetBits32_triggered();
void on_actionSetBits64_triggered();
private:
QKeySequence getCopySequence() const;
QKeySequence getCommentSequence() const;
QKeySequence getAddFlagSequence() const;
QKeySequence getRenameSequence() const;
QKeySequence getRenameUsedHereSequence() const;
QKeySequence getXRefSequence() const;
QKeySequence getDisplayOptionsSequence() const;
RVA offset;
bool canCopy;
QList<QAction*> anonymousActions;
QMenu *editMenu;
QAction *editMenuAction;
QAction actionEditInstruction;
QAction actionEditBytes;
QAction actionCopy;
QAction *copySeparator;
QAction actionAddComment;
QAction actionAddFlag;
QAction actionCreateFunction;
QAction actionRename;
QAction actionRenameUsedHere;
QAction actionXRefs;
QAction actionDisplayOptions;
QAction actionDeleteComment;
QAction actionDeleteFlag;
QAction actionDeleteFunction;
QMenu *setBaseMenu;
QAction *setBaseMenuAction;
QAction actionSetBaseBinary;
QAction actionSetBaseOctal;
QAction actionSetBaseDecimal;
QAction actionSetBaseHexadecimal;
QAction actionSetBasePort;
QAction actionSetBaseIPAddr;
QAction actionSetBaseSyscall;
QAction actionSetBaseString;
QMenu *setBitsMenu;
QAction *setBitsMenuAction;
QAction actionSetBits16;
QAction actionSetBits32;
QAction actionSetBits64;
// For creating anonymous entries (that are always visible)
void createAction(QString name, QKeySequence keySequence, const char *slot);
void createAction(QAction *action, QString name, QKeySequence keySequence, const char *slot);
};
#endif // DISASSEMBLYCONTEXTMENU_H