Add copy and paste right click menu to terminal plugin
This commit is contained in:
@@ -2,7 +2,8 @@
|
|||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
|
#include <QMenu>
|
||||||
|
#include <QAction>
|
||||||
|
|
||||||
QString TerminalPlugin::pname()
|
QString TerminalPlugin::pname()
|
||||||
{
|
{
|
||||||
@@ -18,21 +19,48 @@ QWidget* TerminalPlugin::pcontent()
|
|||||||
{
|
{
|
||||||
QWidget *test = new QWidget();
|
QWidget *test = new QWidget();
|
||||||
QVBoxLayout *mainLayout = new QVBoxLayout;
|
QVBoxLayout *mainLayout = new QVBoxLayout;
|
||||||
|
|
||||||
console = new QTermWidget(test);
|
console = new QTermWidget(test);
|
||||||
|
|
||||||
QFont font = QApplication::font();
|
QFont font = QApplication::font();
|
||||||
font.setFamily("Monospace");
|
font.setFamily("Monospace");
|
||||||
font.setPointSize(12);
|
font.setPointSize(12);
|
||||||
|
|
||||||
console->setTerminalFont(font);
|
console->setTerminalFont(font);
|
||||||
|
|
||||||
console->setScrollBarPosition(QTermWidget::ScrollBarRight);
|
console->setScrollBarPosition(QTermWidget::ScrollBarRight);
|
||||||
console->setColorScheme("WhiteOnBlack");
|
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->setWindowTitle(tr("Terminal Plugin"));
|
||||||
test->resize(600, 400);
|
test->resize(600, 400);
|
||||||
mainLayout->addWidget(console);
|
mainLayout->addWidget(console);
|
||||||
test->setLayout(mainLayout);
|
test->setLayout(mainLayout);
|
||||||
QIcon icon = QIcon(":/images/monkey.png");
|
|
||||||
test->setWindowIcon(icon);
|
|
||||||
return test;
|
return test;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user