47 lines
1.3 KiB
C++
47 lines
1.3 KiB
C++
#include "mainwindow.h"
|
|
#include "ui_mainwindow.h"
|
|
|
|
#include <QMenu>
|
|
#include <QDialog>
|
|
#include <QVBoxLayout>
|
|
#include <QPlainTextEdit>
|
|
|
|
MainWindow::MainWindow(QWidget *parent) :
|
|
QMainWindow{parent},
|
|
m_ui{std::make_unique<Ui::MainWindow>()}
|
|
{
|
|
m_ui->setupUi(this);
|
|
|
|
m_ui->treeView->setModel(&m_model);
|
|
|
|
connect(m_ui->treeView, &QWidget::customContextMenuRequested, [&view=*m_ui->treeView,&model=m_model](const QPoint &pos){
|
|
const auto index = view.indexAt(pos);
|
|
if (!index.isValid())
|
|
return;
|
|
|
|
const auto &entry = model.getEntry(index);
|
|
|
|
QMenu menu;
|
|
const auto showLogAction = menu.addAction("Show log");
|
|
const auto selectedAction = menu.exec(view.viewport()->mapToGlobal(pos));
|
|
|
|
if (selectedAction == showLogAction)
|
|
{
|
|
QDialog dialog;
|
|
QVBoxLayout layout;
|
|
QPlainTextEdit widget;
|
|
QFont font = widget.document()->defaultFont();
|
|
font.setFamily("Courier New");
|
|
widget.document()->setDefaultFont(font);
|
|
widget.setLineWrapMode(QPlainTextEdit::NoWrap);
|
|
widget.setReadOnly(true);
|
|
widget.setPlainText(entry.logOutput());
|
|
layout.addWidget(&widget);
|
|
dialog.setLayout(&layout);
|
|
dialog.exec();
|
|
}
|
|
});
|
|
}
|
|
|
|
MainWindow::~MainWindow() = default;
|