aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-01-14 20:34:50 +0100
committerAqua-sama <aqua@iserlohn-fortress.net>2018-01-14 20:34:50 +0100
commit037b039bfbfeda2e9b7ebef7e38616575411c876 (patch)
tree6767f8edc0860b60b590dc30a37319a7c1c66a0d /plugins
parentMinor fixes (diff)
downloadsmolbote-037b039bfbfeda2e9b7ebef7e38616575411c876.tar.xz
Initial plugins testing
Diffstat (limited to 'plugins')
-rw-r--r--plugins/ProfileEditor/CMakeLists.txt18
-rw-r--r--plugins/ProfileEditor/ProfileEditor.json5
-rw-r--r--plugins/ProfileEditor/profileeditorplugin.cpp27
-rw-r--r--plugins/ProfileEditor/profileeditorplugin.h29
-rw-r--r--plugins/interfaces.h39
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