From 8917ca1cfb8a77a84fea06f6a9c00558f5a21e88 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Sat, 3 Jun 2017 17:22:50 +0200 Subject: Adding plugin action to the menu bar --- src/plugins/plugins.qbs | 5 +++ src/plugins/testplugin/testplugin.cpp | 31 +++++++++++++++++ src/plugins/testplugin/testplugin.h | 45 +++++++++++++++++++++++++ src/plugins/tomleditor/tomleditor.qbs | 26 ++++++++++++++ src/plugins/tomleditor/tomleditorform.cpp | 53 +++++++++++++++++++++++++++++ src/plugins/tomleditor/tomleditorform.h | 56 +++++++++++++++++++++++++++++++ src/plugins/tomleditor/tomleditorform.ui | 22 ++++++++++++ 7 files changed, 238 insertions(+) create mode 100644 src/plugins/plugins.qbs create mode 100644 src/plugins/testplugin/testplugin.cpp create mode 100644 src/plugins/testplugin/testplugin.h create mode 100644 src/plugins/tomleditor/tomleditor.qbs create mode 100644 src/plugins/tomleditor/tomleditorform.cpp create mode 100644 src/plugins/tomleditor/tomleditorform.h create mode 100644 src/plugins/tomleditor/tomleditorform.ui (limited to 'src/plugins') diff --git a/src/plugins/plugins.qbs b/src/plugins/plugins.qbs new file mode 100644 index 0000000..72b4ba2 --- /dev/null +++ b/src/plugins/plugins.qbs @@ -0,0 +1,5 @@ +Project { + references: [ + "tomleditor/tomleditor.qbs", + ] +} diff --git a/src/plugins/testplugin/testplugin.cpp b/src/plugins/testplugin/testplugin.cpp new file mode 100644 index 0000000..10cab91 --- /dev/null +++ b/src/plugins/testplugin/testplugin.cpp @@ -0,0 +1,31 @@ +/******************************************************************************* + ** + ** smolbote: yet another qute browser + ** Copyright (C) 2017 Xian Nox + ** + ** This program is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** This program is distributed in the hope that it will be useful, + ** but WITHOUT ANY WARRANTY; without even the implied warranty of + ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ** GNU General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with this program. If not, see . + ** + ******************************************************************************/ + +#include "testplugin.h" + +TestPlugin::TestPlugin(QObject *parent) : QObject(parent) +{ + +} + +QString TestPlugin::name() const +{ + return QString("Test Plugin"); +} diff --git a/src/plugins/testplugin/testplugin.h b/src/plugins/testplugin/testplugin.h new file mode 100644 index 0000000..eec3b1f --- /dev/null +++ b/src/plugins/testplugin/testplugin.h @@ -0,0 +1,45 @@ +/******************************************************************************* + ** + ** smolbote: yet another qute browser + ** Copyright (C) 2017 Xian Nox + ** + ** This program is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** This program is distributed in the hope that it will be useful, + ** but WITHOUT ANY WARRANTY; without even the implied warranty of + ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ** GNU General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with this program. If not, see . + ** + ******************************************************************************/ + +#ifndef TESTPLUGIN_H +#define TESTPLUGIN_H + +#include +#include "interfaces.h" + +class TestPlugin : public QObject, + public PluginInterface +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID PluginInterface_iid) + Q_INTERFACES(PluginInterface) + +public: + explicit TestPlugin(QObject *parent = nullptr); + + // PluginInterface + QString name() const override; + +signals: + +public slots: +}; + +#endif // TESTPLUGIN_H diff --git a/src/plugins/tomleditor/tomleditor.qbs b/src/plugins/tomleditor/tomleditor.qbs new file mode 100644 index 0000000..9b577a7 --- /dev/null +++ b/src/plugins/tomleditor/tomleditor.qbs @@ -0,0 +1,26 @@ +import qbs 1.0 + +Project { + name: "tomleditor" + + DynamicLibrary { + id: tomleditor + name: "tomleditor" + Depends { name: "cpp" } + Depends { name: "Qt"; submodules: ["core", "widgets", "webengine", "webenginewidgets"] } + + cpp.includePaths: ["../.."] + files: [ + "tomleditorform.cpp", + "tomleditorform.h", + "tomleditorform.ui", + ] + + Group { + fileTagsFilter: product.type + qbs.install: true + qbs.installDir: "lib/smolbote/plugins" + } + + } // DynamicLibrary testPlugin +} diff --git a/src/plugins/tomleditor/tomleditorform.cpp b/src/plugins/tomleditor/tomleditorform.cpp new file mode 100644 index 0000000..0a7d2f8 --- /dev/null +++ b/src/plugins/tomleditor/tomleditorform.cpp @@ -0,0 +1,53 @@ +/******************************************************************************* + ** + ** smolbote: yet another qute browser + ** Copyright (C) 2017 Xian Nox + ** + ** This program is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** This program is distributed in the hope that it will be useful, + ** but WITHOUT ANY WARRANTY; without even the implied warranty of + ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ** GNU General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with this program. If not, see . + ** + ******************************************************************************/ + +#include "tomleditorform.h" +#include "ui_tomleditorform.h" + +#include + +TomlEditorForm::TomlEditorForm(QWidget *parent) : + QWidget(parent), + ui(new Ui::TomlEditorForm) +{ + ui->setupUi(this); + m_action = new QAction(tr("Editor")); + connect(m_action, SIGNAL(triggered()), this, SLOT(show())); +} + +TomlEditorForm::~TomlEditorForm() +{ + delete ui; +} + +QString TomlEditorForm::name() const +{ + return QString("Toml Editor Plugin"); +} + +QWidget *TomlEditorForm::widget() +{ + return this; +} + +QAction *TomlEditorForm::action() +{ + return m_action; +} diff --git a/src/plugins/tomleditor/tomleditorform.h b/src/plugins/tomleditor/tomleditorform.h new file mode 100644 index 0000000..d0bf022 --- /dev/null +++ b/src/plugins/tomleditor/tomleditorform.h @@ -0,0 +1,56 @@ +/******************************************************************************* + ** + ** smolbote: yet another qute browser + ** Copyright (C) 2017 Xian Nox + ** + ** This program is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** This program is distributed in the hope that it will be useful, + ** but WITHOUT ANY WARRANTY; without even the implied warranty of + ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ** GNU General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with this program. If not, see . + ** + ******************************************************************************/ + +#ifndef TOMLEDITORFORM_H +#define TOMLEDITORFORM_H + +#include +#include + +namespace Ui { +class TomlEditorForm; +} + +class TomlEditorForm : public QWidget, + public PluginInterface, + public GuiInterface +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID PluginInterface_iid) + Q_INTERFACES(PluginInterface GuiInterface) + +public: + explicit TomlEditorForm(QWidget *parent = 0); + ~TomlEditorForm(); + + // PluginInterface + QString name() const override; + + // GuiInterface + QWidget *widget() override; + QAction *action() override; + +private: + Ui::TomlEditorForm *ui; + + QAction *m_action; +}; + +#endif // TOMLEDITORFORM_H diff --git a/src/plugins/tomleditor/tomleditorform.ui b/src/plugins/tomleditor/tomleditorform.ui new file mode 100644 index 0000000..adc750e --- /dev/null +++ b/src/plugins/tomleditor/tomleditorform.ui @@ -0,0 +1,22 @@ + + + + + + TomlEditorForm + + + + 0 + 0 + 240 + 320 + + + + Form + + + + + -- cgit v1.2.1