Compare commits

...

3 Commits

3 changed files with 40 additions and 9 deletions

View File

@@ -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);

View File

@@ -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;
}

View File

@@ -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();
}