#include "mainwindow.h" #include "ui_mainwindow.h" #include #include #include #include MainWindow::MainWindow(QWidget *parent) : QMainWindow{parent}, m_ui{std::make_unique()} { 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;