/* * 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/smolbote.hg * * SPDX-License-Identifier: GPL-3.0 */ #ifndef SMOLBOTE_WEBENGINEPROFILE_H #define SMOLBOTE_WEBENGINEPROFILE_H #include #include #include #include class WebProfile : public QWebEngineProfile { Q_OBJECT public: explicit WebProfile(QObject *parent = nullptr); explicit WebProfile(const QString &name, QObject *parent = nullptr); ~WebProfile() override; static void setDefaultProfile(WebProfile *profile) { Q_CHECK_PTR(profile); WebProfile::profile = profile; } static WebProfile *defaultProfile() { Q_CHECK_PTR(WebProfile::profile); return WebProfile::profile; } QString name() const; QString search() const { return m_search; } QUrl homepage() const; QUrl newtab() const; void addBookmark(const QString &title, const QString &url) { if(!title.isEmpty() && !url.isEmpty()) emit addBookmarkRequested(title, url); } signals: void addBookmarkRequested(const QString &title, const QString &url); public slots: void loadProfile(QHash conf); void saveProfile(const QString &path = QString()); private: static WebProfile *profile; QString m_configPath; QString m_name; QString m_search = QString("about:blank"); QUrl m_homepage = QUrl("about:blank"); QUrl m_newtab = QUrl("about:blank"); }; #endif // SMOLBOTE_WEBENGINEPROFILE_H