From 26e2926d5424f0c248892b4755c699541d46e856 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Sat, 15 Feb 2020 14:53:56 +0200 Subject: Remove ProfileInterface Plugins should define their own specific interfaces rather than subclassing from ProfileInterface: - add Filter for QWebEngineUrlRequestInterceptor filters - add FilterPlugin for Filter loading Remove deprecated Browser::profileList() --- include/filterinterface.h | 36 ++++++++++++++++++++ include/meson.build | 6 ++++ include/plugininterface.h | 2 +- include/profileinterface.h | 84 ---------------------------------------------- 4 files changed, 43 insertions(+), 85 deletions(-) create mode 100644 include/filterinterface.h create mode 100644 include/meson.build delete mode 100644 include/profileinterface.h (limited to 'include') diff --git a/include/filterinterface.h b/include/filterinterface.h new file mode 100644 index 0000000..fb04e25 --- /dev/null +++ b/include/filterinterface.h @@ -0,0 +1,36 @@ +/* + * 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: https://library.iserlohn-fortress.net/aqua/smolbote.git + * + * SPDX-License-Identifier: MIT + */ + +#pragma once + +#include +#include + +class Filter +{ +public: + virtual ~Filter() = default; + + virtual void filter(QWebEngineUrlRequestInfo &info) const = 0; + + virtual bool isUpToDate() const = 0; +}; + +// A class to provide filter interfaces +class QIODevice; +class FilterPlugin +{ +public: + virtual ~FilterPlugin() = default; + + virtual Filter* load(QIODevice* from) const = 0; +}; + +#define FilterPluginIid "net.iserlohn-fortress.smolbote.FilterPlugin" +Q_DECLARE_INTERFACE(FilterPlugin, FilterPluginIid) + diff --git a/include/meson.build b/include/meson.build new file mode 100644 index 0000000..c2bf758 --- /dev/null +++ b/include/meson.build @@ -0,0 +1,6 @@ +dep_plugininterface = declare_dependency( + include_directories: include_directories('.') +) + +plugininterface_include = include_directories('.') + diff --git a/include/plugininterface.h b/include/plugininterface.h index 6da417c..4c36d8a 100644 --- a/include/plugininterface.h +++ b/include/plugininterface.h @@ -1,7 +1,7 @@ /* * 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: https://neueland.iserlohn-fortress.net/gitea/aqua/smolbote + * location: https://library.iserlohn-fortress.net/aqua/smolbote.git * * SPDX-License-Identifier: MIT */ diff --git a/include/profileinterface.h b/include/profileinterface.h deleted file mode 100644 index e25b085..0000000 --- a/include/profileinterface.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * 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: https://neueland.iserlohn-fortress.net/gitea/aqua/smolbote - * - * SPDX-License-Identifier: MIT - */ - -#pragma once - -#include -#include -#include -#include -#include - -class Profile : public QWebEngineProfile -{ - Q_OBJECT - - Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) - Q_PROPERTY(QString search READ search WRITE setSearch NOTIFY searchChanged) - Q_PROPERTY(QUrl homepage READ homepage WRITE setHomepage NOTIFY homepageChanged) - Q_PROPERTY(QUrl newtab READ newtab WRITE setNewtab NOTIFY newtabChanged) - - // QWebEngineProfile should-be properties - Q_PROPERTY(QString cachePath READ cachePath WRITE setCachePath NOTIFY propertyChanged) - Q_PROPERTY(QString persistentStoragePath READ persistentStoragePath WRITE setPersistentStoragePath NOTIFY propertyChanged) - Q_PROPERTY(int persistentCookiesPolicy READ persistentCookiesPolicy WRITE setPersistentCookiesPolicy NOTIFY propertyChanged) - - Q_PROPERTY(QString httpAcceptLanguage READ httpAcceptLanguage WRITE setHttpAcceptLanguage NOTIFY propertyChanged) - Q_PROPERTY(int httpCacheMaximumSize READ httpCacheMaximumSize WRITE setHttpCacheMaximumSize NOTIFY propertyChanged) - Q_PROPERTY(int httpCacheType READ httpCacheType WRITE setHttpCacheType NOTIFY propertyChanged) - Q_PROPERTY(QString httpUserAgent READ httpUserAgent WRITE setHttpUserAgent NOTIFY propertyChanged) - - Q_PROPERTY(bool spellCheckEnabled READ isSpellCheckEnabled WRITE setSpellCheckEnabled NOTIFY propertyChanged) - -protected: - explicit Profile(QObject *parent = nullptr) : QWebEngineProfile(parent) {} - explicit Profile(const QString &storageName, QObject *parent = nullptr) : QWebEngineProfile(storageName, parent) {} - -public: - virtual const QString name() const = 0; - virtual void setName(const QString &name) = 0; - - virtual const QVector cookies() const = 0; - virtual const QMap headers() const = 0; - - // search url - virtual QString search() const = 0; - virtual void setSearch(const QString &url) = 0; - - // homepage url - virtual QUrl homepage() const = 0; - virtual void setHomepage(const QUrl &url) = 0; - - // new tab url - virtual QUrl newtab() const = 0; - virtual void setNewtab(const QUrl &url) = 0; - - virtual void setCachePath(const QString &path) = 0; - virtual void setPersistentStoragePath(const QString &path) = 0; - virtual void setPersistentCookiesPolicy(int policy) = 0; - - virtual void setHttpAcceptLanguage(const QString &httpAcceptLanguage) = 0; - virtual void setHttpCacheMaximumSize(int maxSize) = 0; - virtual void setHttpCacheType(int type) = 0; - virtual void setHttpUserAgent(const QString &userAgent) = 0; - virtual void setHttpHeader(const QString &name, const QString &value) = 0; - virtual void removeHttpHeader(const QString &name) = 0; - - virtual void setSpellCheckEnabled(bool enable) = 0; - -signals: - void nameChanged(const QString &name); - void searchChanged(const QString &url); - void homepageChanged(const QUrl &url); - void newtabChanged(const QUrl &url); - - void propertyChanged(const QString &name, const QVariant &value); - void attributeChanged(const QWebEngineSettings::WebAttribute attribute, const bool value); - void headerChanged(const QString &name, const QString &value); - void headerRemoved(const QString &name); -}; -- cgit v1.2.1