diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2020-02-15 14:53:56 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2020-02-29 15:41:55 +0200 |
commit | 26e2926d5424f0c248892b4755c699541d46e856 (patch) | |
tree | 16ed0e75a31c4779d4d140b07262e89bca6971a0 /include | |
parent | Added example firefox/palemoon bookmarks to test (diff) | |
download | smolbote-26e2926d5424f0c248892b4755c699541d46e856.tar.xz |
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()
Diffstat (limited to 'include')
-rw-r--r-- | include/filterinterface.h | 36 | ||||
-rw-r--r-- | include/meson.build | 6 | ||||
-rw-r--r-- | include/plugininterface.h | 2 | ||||
-rw-r--r-- | include/profileinterface.h | 84 |
4 files changed, 43 insertions, 85 deletions
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 <QWebEngineUrlRequestInfo> +#include <QtPlugin> + +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 <QString> -#include <QUrl> -#include <QWebEngineProfile> -#include <QWebEngineSettings> -#include <QNetworkCookie> - -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<QNetworkCookie> cookies() const = 0; - virtual const QMap<QByteArray, QByteArray> 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); -}; |