Compare commits
3 Commits
455d8945ec
...
b735e80fe5
| Author | SHA1 | Date | |
|---|---|---|---|
| b735e80fe5 | |||
| d7e3355cf6 | |||
| e25d8686da |
@@ -13,7 +13,7 @@
|
||||
#include <QLabel>
|
||||
|
||||
QString FileExplorerPlugin::pname() {
|
||||
return "Test Plugin";
|
||||
return "File Explorer Plugin";
|
||||
}
|
||||
|
||||
QString FileExplorerPlugin::pdesc() {
|
||||
@@ -27,7 +27,7 @@ QWidget* FileExplorerPlugin::pcontent() {
|
||||
projectRoot = QDir::currentPath(); // default project directory; adjust if needed
|
||||
|
||||
mainWidget = new QWidget();
|
||||
mainWidget->setWindowTitle("Test Plugin - File Manager");
|
||||
mainWidget->setWindowTitle("File Explorer Plugin");
|
||||
mainWidget->resize(1000, 600);
|
||||
|
||||
QVBoxLayout *vLayout = new QVBoxLayout(mainWidget);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ void MainWindow::initSettings()
|
||||
for (const QString &group : settings.childGroups()) {
|
||||
settings.beginGroup(group);
|
||||
|
||||
QString pluginName = group.section('_', 0, 0);
|
||||
QString pluginName = group.split("_").first();
|
||||
pluginName = QUrl::fromPercentEncoding(pluginName.toUtf8());
|
||||
|
||||
Interface *iPlugin = nullptr;
|
||||
@@ -92,9 +92,11 @@ void MainWindow::initSettings()
|
||||
|
||||
if (iPlugin) {
|
||||
QWidget *pluginWidget = iPlugin->pcontent();
|
||||
QString uniqueId = QUuid::createUuid().toString();
|
||||
if (pluginWidget) {
|
||||
QMdiSubWindow *sub = mdi->addSubWindow(pluginWidget);
|
||||
sub->setProperty("uniqueId", group);
|
||||
sub->setProperty("name", iPlugin->pname());
|
||||
sub->setProperty("uniqueId", uniqueId);
|
||||
sub->restoreGeometry(settings.value("geometry").toByteArray());
|
||||
sub->setAttribute(Qt::WA_DeleteOnClose);
|
||||
sub->show();
|
||||
@@ -119,7 +121,7 @@ void MainWindow::saveSettings()
|
||||
settings.beginGroup("Plugins");
|
||||
QList<QMdiSubWindow*> subWindows = mdi->subWindowList();
|
||||
for (QMdiSubWindow* sub : subWindows) {
|
||||
QString id = sub->windowTitle() + "_" + sub->property("uniqueId").toString();
|
||||
QString id = sub->property("name").toString() + "_" + sub->property("uniqueId").toString();
|
||||
settings.beginGroup(id);
|
||||
settings.setValue("geometry", sub->saveGeometry());
|
||||
settings.endGroup();
|
||||
@@ -174,6 +176,7 @@ void MainWindow::changePlugin()
|
||||
QWidget* pluginContent = iPlugin->pcontent();
|
||||
auto *sub = mdi->addSubWindow(pluginContent);
|
||||
sub->setProperty("uniqueId", uniqueId);
|
||||
sub->setProperty("name", iPlugin->pname());
|
||||
sub->setAttribute(Qt::WA_DeleteOnClose);
|
||||
sub->show();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user