GUI: open source file and show source file in directory options for the SourceView
This commit is contained in:
parent
5ca4802f18
commit
862ccbfb2d
|
@ -5,6 +5,7 @@
|
|||
#include <QLineEdit>
|
||||
#include <QCheckBox>
|
||||
#include "SearchListViewTable.h"
|
||||
#include "MenuBuilder.h"
|
||||
|
||||
namespace Ui
|
||||
{
|
||||
|
@ -46,6 +47,8 @@ signals:
|
|||
protected:
|
||||
bool eventFilter(QObject* obj, QEvent* event);
|
||||
|
||||
#include "ActionHelpers.h"
|
||||
|
||||
private:
|
||||
QCheckBox* mRegexCheckbox;
|
||||
QCheckBox* mLockCheckbox;
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
#include <QFile>
|
||||
#include <QTextStream>
|
||||
#include <QMessageBox>
|
||||
#include <QProcess>
|
||||
#include <QDir>
|
||||
#include <QDesktopServices>
|
||||
#include "Configuration.h"
|
||||
|
||||
SourceView::SourceView(QString path, int line, QWidget* parent)
|
||||
|
@ -16,11 +19,17 @@ SourceView::SourceView(QString path, int line, QWidget* parent)
|
|||
addColumnAt(6, tr("Line"));
|
||||
addColumnAt(0, tr("Code"));
|
||||
|
||||
connect(this, SIGNAL(listContextMenuSignal(QMenu*)), this, SLOT(sourceContextMenu(QMenu*)));
|
||||
|
||||
loadFile();
|
||||
setSelection(line);
|
||||
auto cip = DbgValFromString("cip");
|
||||
mList->disassembleAtSlot(0, cip);
|
||||
mSearchList->disassembleAtSlot(0, cip);
|
||||
|
||||
mMenuBuilder = new MenuBuilder(this);
|
||||
mMenuBuilder->addAction(makeAction(tr("Open source file"), SLOT(openSourceFileSlot())));
|
||||
mMenuBuilder->addAction(makeAction(tr("Show source file in directory"), SLOT(showInDirectorySlot())));
|
||||
}
|
||||
|
||||
void SourceView::setSelection(int line)
|
||||
|
@ -58,3 +67,22 @@ void SourceView::loadFile()
|
|||
reloadData();
|
||||
file.close();
|
||||
}
|
||||
|
||||
void SourceView::sourceContextMenu(QMenu* menu)
|
||||
{
|
||||
menu->addSeparator();
|
||||
mMenuBuilder->build(menu);
|
||||
}
|
||||
|
||||
void SourceView::openSourceFileSlot()
|
||||
{
|
||||
QDesktopServices::openUrl(QUrl::fromLocalFile(mSourcePath));
|
||||
}
|
||||
|
||||
void SourceView::showInDirectorySlot()
|
||||
{
|
||||
QStringList args;
|
||||
args << "/select," << QDir::toNativeSeparators(mSourcePath);
|
||||
auto process = new QProcess(this);
|
||||
process->start("explorer.exe", args);
|
||||
}
|
||||
|
|
|
@ -16,9 +16,16 @@ public:
|
|||
void setupContextMenu();
|
||||
void setSelection(int line);
|
||||
|
||||
private slots:
|
||||
void sourceContextMenu(QMenu* menu);
|
||||
void openSourceFileSlot();
|
||||
void showInDirectorySlot();
|
||||
|
||||
private:
|
||||
QString mSourcePath;
|
||||
int mIpLine;
|
||||
MenuBuilder* mMenuBuilder;
|
||||
|
||||
void loadFile();
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue