diff options
| author | Aqua-sama <aqua@iserlohn-fortress.net> | 2017-06-03 17:22:50 +0200 | 
|---|---|---|
| committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2017-06-03 17:22:50 +0200 | 
| commit | 8917ca1cfb8a77a84fea06f6a9c00558f5a21e88 (patch) | |
| tree | 2e03ed197f38e93764a3926776888636b22e8e21 /src/plugins | |
| parent | Test plugin loading (diff) | |
| download | smolbote-8917ca1cfb8a77a84fea06f6a9c00558f5a21e88.tar.xz | |
Adding plugin action to the menu bar
Diffstat (limited to 'src/plugins')
| -rw-r--r-- | src/plugins/plugins.qbs | 5 | ||||
| -rw-r--r-- | src/plugins/testplugin/testplugin.cpp | 31 | ||||
| -rw-r--r-- | src/plugins/testplugin/testplugin.h | 45 | ||||
| -rw-r--r-- | src/plugins/tomleditor/tomleditor.qbs | 26 | ||||
| -rw-r--r-- | src/plugins/tomleditor/tomleditorform.cpp | 53 | ||||
| -rw-r--r-- | src/plugins/tomleditor/tomleditorform.h | 56 | ||||
| -rw-r--r-- | src/plugins/tomleditor/tomleditorform.ui | 22 | 
7 files changed, 238 insertions, 0 deletions
| 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 <http://www.gnu.org/licenses/>. + ** + ******************************************************************************/ + +#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 <http://www.gnu.org/licenses/>. + ** + ******************************************************************************/ + +#ifndef TESTPLUGIN_H +#define TESTPLUGIN_H + +#include <QObject> +#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 <http://www.gnu.org/licenses/>. + ** + ******************************************************************************/ + +#include "tomleditorform.h" +#include "ui_tomleditorform.h" + +#include <QAction> + +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 <http://www.gnu.org/licenses/>. + ** + ******************************************************************************/ + +#ifndef TOMLEDITORFORM_H +#define TOMLEDITORFORM_H + +#include <QWidget> +#include <interfaces.h> + +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 @@ +<?xml version='1.0'?> +<ui version="4.0"> + <author/> + <comment/> + <exportmacro/> + <class>TomlEditorForm</class> + <widget name="TomlEditorForm" class="QWidget"> +  <property name="geometry"> +   <rect> +    <x>0</x> +    <y>0</y> +    <width>240</width> +    <height>320</height> +   </rect> +  </property> +  <property name="windowTitle"> +   <string>Form</string> +  </property> + </widget> + <pixmapfunction/> + <connections/> +</ui> | 
