diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-01-14 20:34:50 +0100 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-01-14 20:34:50 +0100 |
commit | 037b039bfbfeda2e9b7ebef7e38616575411c876 (patch) | |
tree | 6767f8edc0860b60b590dc30a37319a7c1c66a0d /plugins | |
parent | Minor fixes (diff) | |
download | smolbote-037b039bfbfeda2e9b7ebef7e38616575411c876.tar.xz |
Initial plugins testing
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/ProfileEditor/CMakeLists.txt | 18 | ||||
-rw-r--r-- | plugins/ProfileEditor/ProfileEditor.json | 5 | ||||
-rw-r--r-- | plugins/ProfileEditor/profileeditorplugin.cpp | 27 | ||||
-rw-r--r-- | plugins/ProfileEditor/profileeditorplugin.h | 29 | ||||
-rw-r--r-- | plugins/interfaces.h | 39 |
5 files changed, 118 insertions, 0 deletions
diff --git a/plugins/ProfileEditor/CMakeLists.txt b/plugins/ProfileEditor/CMakeLists.txt new file mode 100644 index 0000000..3eaa0f5 --- /dev/null +++ b/plugins/ProfileEditor/CMakeLists.txt @@ -0,0 +1,18 @@ +cmake_minimum_required(VERSION 3.1.0) + +find_package(Qt5Core REQUIRED) +find_package(Qt5Widgets REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) + +set(CMAKE_AUTOMOC ON) + +add_library(ProfileEditorPlugin SHARED + profileeditorplugin.cpp + profileeditorplugin.h) + +target_include_directories(ProfileEditorPlugin + PUBLIC ..) + +target_link_libraries(ProfileEditorPlugin + PRIVATE Qt5::Widgets + PRIVATE Qt5::WebEngineWidgets) diff --git a/plugins/ProfileEditor/ProfileEditor.json b/plugins/ProfileEditor/ProfileEditor.json new file mode 100644 index 0000000..e371eee --- /dev/null +++ b/plugins/ProfileEditor/ProfileEditor.json @@ -0,0 +1,5 @@ +{ + "name": "Profile Editor", + "shortcut": "Ctrl+F2", + "author": "Aqua-sama <aqua@iserlohn-fortress.net" +} diff --git a/plugins/ProfileEditor/profileeditorplugin.cpp b/plugins/ProfileEditor/profileeditorplugin.cpp new file mode 100644 index 0000000..1f4f16e --- /dev/null +++ b/plugins/ProfileEditor/profileeditorplugin.cpp @@ -0,0 +1,27 @@ +/* + * This file is part of smolbote. It's copyrighted by the contributors recorded + * in the version control history of the file, available from its original + * location: git://neueland.iserlohn-fortress.net/smolbote.git + * + * SPDX-License-Identifier: GPL-3.0 + */ + +#include "profileeditorplugin.h" +#include <QLabel> +#include <QVBoxLayout> + +QWidget *ProfileEditorPlugin::createWidget(QWebEngineProfile *profile, QWidget *parent) +{ + QWidget *widget = new QWidget(parent); + widget->setWindowFlags(Qt::ToolTip); + widget->setVisible(false); + auto *layout = new QVBoxLayout(widget); + widget->setLayout(layout); + + QLabel *storageName_label = new QLabel(profile->storageName(), widget); + if(storageName_label->text().isEmpty()) + storageName_label->setText(tr("Off-the-record")); + layout->addWidget(storageName_label); + + return widget; +} diff --git a/plugins/ProfileEditor/profileeditorplugin.h b/plugins/ProfileEditor/profileeditorplugin.h new file mode 100644 index 0000000..3115ab2 --- /dev/null +++ b/plugins/ProfileEditor/profileeditorplugin.h @@ -0,0 +1,29 @@ +/* + * This file is part of smolbote. It's copyrighted by the contributors recorded + * in the version control history of the file, available from its original + * location: git://neueland.iserlohn-fortress.net/smolbote.git + * + * SPDX-License-Identifier: GPL-3.0 + */ + +#ifndef PROFILEEDITORPLUGIN_H +#define PROFILEEDITORPLUGIN_H + +#include <QWebEngineProfile> +#include <QWidget> +#include <interfaces.h> + +class ProfileEditorPlugin : public QObject, public PluginInterface, public ProfileInterface +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID ProfileInterfaceIid FILE "ProfileEditor.json") + Q_INTERFACES(PluginInterface ProfileInterface) + +public: + // PluginInterface + + // ProfileInterface + QWidget *createWidget(QWebEngineProfile *profile, QWidget *parent) override; +}; + +#endif //PROFILEEDITORPLUGIN_H diff --git a/plugins/interfaces.h b/plugins/interfaces.h new file mode 100644 index 0000000..a43964a --- /dev/null +++ b/plugins/interfaces.h @@ -0,0 +1,39 @@ +/* + * This file is part of smolbote. It's copyrighted by the contributors recorded + * in the version control history of the file, available from its original + * location: git://neueland.iserlohn-fortress.net/smolbote.git + * + * SPDX-License-Identifier: MIT + */ + +#ifndef INTERFACES_H +#define INTERFACES_H + +#include <QtPlugin> + +class QString; +class QAction; +class QWidget; +class QWebEngineProfile; + +class PluginInterface +{ +public: + virtual ~PluginInterface() = default; +}; + +class ProfileInterface +{ +public: + virtual ~ProfileInterface() = default; + + virtual QWidget *createWidget(QWebEngineProfile *profile, QWidget *parent) = 0; +}; + +#define PluginInterfaceIid "net.iserlohn-fortress.smolbote.PluginInterface" +Q_DECLARE_INTERFACE(PluginInterface, PluginInterfaceIid) + +#define ProfileInterfaceIid "net.iserlohn-fortress.smolbote.ProfileInterface" +Q_DECLARE_INTERFACE(ProfileInterface, ProfileInterfaceIid) + +#endif //INTERFACES_H |