/******************************************************************************* ** ** smolbote: yet another qute browser ** Copyright (C) 2017 Xian Nox ** ** This program is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 3 of the License, or ** (at your option) any later version. ** ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with this program. If not, see . ** ******************************************************************************/ #ifndef BROWSER_H #define BROWSER_H #include "singleapplication.h" #include #include "forms/downloadswidget.h" #include "settings.h" #include "webengine/webengineprofile.h" #include "filter/blockermanager.h" #include "webengine/urlinterceptor.h" #include #ifdef browser #undef browser #endif #define browser Browser::instance() class MainWindow; class Browser : public SingleApplication { Q_OBJECT public: explicit Browser(int &argc, char *argv[]); ~Browser(); QString applicationLongVersion() const; void loadSettings(const QString &path); void loadPlugins(); void loadProfiles(); static Browser *instance(); Settings *settings(); BookmarksWidget *bookmarks(); DownloadsWidget *downloads(); BlockerManager *blocklists(); MainWindow *activeWindow(); WebEngineProfile *profile(const QString name); QStringList profiles(); QObject *plugin(const QString name); QStringList plugins(); public slots: MainWindow* createWindow(const QHash options); void clean(); private: Q_DISABLE_COPY(Browser) std::unique_ptr m_settings; QVector> m_windows; QHash m_profiles; UrlRequestInterceptor *m_urlRequestInterceptor = nullptr; BookmarksWidget *m_bookmarksManager = nullptr; DownloadsWidget *m_downloadManager = nullptr; BlockerManager *m_blocklistManager = nullptr; QObject *m_plugin = nullptr; }; #endif // BROWSER_H