Add copy and paste right click menu to terminal plugin
This commit is contained in:
@@ -2,7 +2,8 @@
|
||||
#include <QVBoxLayout>
|
||||
#include <QWidget>
|
||||
#include <QApplication>
|
||||
|
||||
#include <QMenu>
|
||||
#include <QAction>
|
||||
|
||||
QString TerminalPlugin::pname()
|
||||
{
|
||||
@@ -18,21 +19,48 @@ QWidget* TerminalPlugin::pcontent()
|
||||
{
|
||||
QWidget *test = new QWidget();
|
||||
QVBoxLayout *mainLayout = new QVBoxLayout;
|
||||
|
||||
console = new QTermWidget(test);
|
||||
|
||||
QFont font = QApplication::font();
|
||||
font.setFamily("Monospace");
|
||||
font.setPointSize(12);
|
||||
|
||||
console->setTerminalFont(font);
|
||||
|
||||
console->setScrollBarPosition(QTermWidget::ScrollBarRight);
|
||||
console->setColorScheme("WhiteOnBlack");
|
||||
|
||||
console->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
connect(console, &QWidget::customContextMenuRequested, this, [=](const QPoint &pos) {
|
||||
QMenu menu;
|
||||
|
||||
QAction *copyAct = new QAction(tr("Copy"), &menu);
|
||||
QAction *pasteAct = new QAction(tr("Paste"), &menu);
|
||||
|
||||
if (console->selectedText().isEmpty()) {
|
||||
copyAct->setEnabled(false);
|
||||
}
|
||||
|
||||
connect(copyAct, &QAction::triggered, [=]() {
|
||||
console->copyClipboard();
|
||||
});
|
||||
|
||||
connect(pasteAct, &QAction::triggered, [=]() {
|
||||
console->pasteClipboard();
|
||||
});
|
||||
|
||||
menu.addAction(copyAct);
|
||||
menu.addAction(pasteAct);
|
||||
|
||||
|
||||
QPoint globalPos = console->mapToGlobal(pos);
|
||||
menu.exec(globalPos);
|
||||
});
|
||||
|
||||
test->setWindowTitle(tr("Terminal Plugin"));
|
||||
test->resize(600, 400);
|
||||
mainLayout->addWidget(console);
|
||||
test->setLayout(mainLayout);
|
||||
QIcon icon = QIcon(":/images/monkey.png");
|
||||
test->setWindowIcon(icon);
|
||||
|
||||
return test;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user