/* * 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); };