aboutsummaryrefslogtreecommitdiffstats
path: root/gui/infotab.cc
blob: 29d557d2f875464f031e3605a29ba0e4665eef06 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include "infotab.h"
#include <QGridLayout>

NEXTPNR_NAMESPACE_BEGIN

InfoTab::InfoTab(QWidget *parent) : QWidget(parent)
{
    plainTextEdit = new QPlainTextEdit();
    plainTextEdit->setReadOnly(true);
    QFont f("unexistent");
    f.setStyleHint(QFont::Monospace);
    plainTextEdit->setFont(f);

    plainTextEdit->setContextMenuPolicy(Qt::CustomContextMenu);
    QAction *clearAction = new QAction("Clear &buffer", this);
    clearAction->setStatusTip("Clears display buffer");
    connect(clearAction, SIGNAL(triggered()), this, SLOT(clearBuffer()));
    contextMenu = plainTextEdit->createStandardContextMenu();
    contextMenu->addSeparator();
    contextMenu->addAction(clearAction);
    connect(plainTextEdit, SIGNAL(customContextMenuRequested(const QPoint)),
            this, SLOT(showContextMenu(const QPoint)));

    QGridLayout *mainLayout = new QGridLayout();
    mainLayout->addWidget(plainTextEdit);
    setLayout(mainLayout);
}

void InfoTab::info(std::string str)
{
    plainTextEdit->moveCursor(QTextCursor::End);
    plainTextEdit->insertPlainText(str.c_str());
    plainTextEdit->moveCursor(QTextCursor::End);
}

void InfoTab::showContextMenu(const QPoint &pt)
{
    contextMenu->exec(mapToGlobal(pt));
}

void InfoTab::clearBuffer() { plainTextEdit->clear(); }

NEXTPNR_NAMESPACE_END