#ifndef BROWSERVIEW_H
#define BROWSERVIEW_H
-// Qt framework headers.
+// Application headers.
+#include "structs/PrivacyWebEngine.h"
+
+// KDE Framework headers.
+#include <KLineEdit>
+
+// Qt toolkit headers.
#include <QPushButton>
#include <QWebEngineHistory>
+#include <QWebEngineProfile>
#include <QWebEngineSettings>
#include <QWebEngineView>
-// KDE Framework headers.
-#include <KLineEdit>
-
class BrowserView : public QWidget
{
// Include the Q_OBJECT macro.
// The primary contructor.
explicit BrowserView(QWidget *parent);
+ // The destructor.
+ ~BrowserView();
+
// The public functions.
- void applyOnTheFlyZoomFactor(const double &zoomFactor) const;
+ void applyOnTheFlyZoomFactor(const double &zoomFactor);
void loadInitialWebsite();
+ void toggleDomStorage() const;
+ void toggleJavaScript() const;
+ void toggleLocalStorage();
+
+ // The public static variables.
+ static QString webEngineDefaultUserAgent;
signals:
// The signals.
+ void addCookie(const QNetworkCookie &cookie) const;
+ void removeCookie(const QNetworkCookie &cookie) const;
+ void clearUrlLineEditFocus() const;
+ void hideProgressBar() const;
void linkHovered(const QString &linkUrl) const;
- void userAgentUpdated(const QString &userAgent) const;
- void searchEngineUpdated(const QString &searchEngine) const;
- void zoomFactorUpdated(const double &zoomFactor) const;
+ void showProgressBar(const int &progress) const;
+ void updateBackAction(const bool &isEnabled) const;
+ void updateDomStorageAction(const bool &isEnabled) const;
+ void updateDomainSettingsIndicator(const bool &status, const QString &domainSettingsDomain) const;
+ void updateForwardAction(const bool &isEnabled) const;
+ void updateJavaScriptAction(const bool &isEnabled) const;
+ void updateLocalStorageAction(const bool &isEnabled) const;
+ void updateSearchEngineActions(const QString &searchEngine) const;
+ void updateUrlLineEdit(const QUrl &newUrl) const;
+ void updateUserAgentActions(const QString &userAgent) const;
+ void updateZoomFactorAction(const double &zoomFactor) const;
public Q_SLOTS:
// The public slots.
+ void addCookieToStore(QNetworkCookie cookie) const;
void applyApplicationSettings();
- void applyDomainSettingsAndReload() const;
- void applyDomainSettingsWithoutReloading() const;
+ void applyDomainSettingsAndReload();
+ void applyDomainSettingsWithoutReloading(const QString &hostname);
void applyOnTheFlySearchEngine(QAction *searchEngineActionPointer);
void applyOnTheFlyUserAgent(QAction *userAgentActionPointer) const;
+ void back() const;
+ void deleteAllCookies() const;
+ void deleteCookieFromStore(const QNetworkCookie &cookie) const;
+ void forward() const;
+ void home() const;
+ void loadUrlFromLineEdit(QString url) const;
+ void mouseBack() const;
+ void mouseForward() const;
+ void refresh() const;
private Q_SLOTS:
// The private slots.
- void goHome() const;
- void loadUrlFromTextBox(QString urlFromUser) const;
+ void cookieAdded(const QNetworkCookie &cookie) const;
+ void cookieRemoved(const QNetworkCookie &cookie) const;
+ void loadFinished() const;
+ void loadProgress(const int &progress) const;
+ void loadStarted() const;
void pageLinkHovered(const QString &linkUrl) const;
- void toggleJavaScript() const;
- void openDomainSettings() const;
- void updateInterface() const;
+ void updateUrl(const QUrl &url) const;
private:
// The private variables.
- QPushButton *backButtonPointer;
- QPushButton *forwardButtonPointer;
- QPushButton *javaScriptButtonPointer;
+ double currentZoomFactor; // This can be removed once <https://redmine.stoutner.com/issues/799> has been resolved.
+ PrivacyWebEngine *currentPrivacyWebEnginePointer;
+ QList<PrivacyWebEngine*> *privacyWebEngineListPointer;
QString searchEngineUrl;
- KLineEdit *urlLineEditPointer;
+ QWebEngineCookieStore *webEngineCookieStorePointer;
QWebEngineHistory *webEngineHistoryPointer;
+ QWebEnginePage *webEnginePagePointer;
QWebEngineProfile *webEngineProfilePointer;
QWebEngineSettings *webEngineSettingsPointer;
QWebEngineView *webEngineViewPointer;
// The private functions.
- void applyDomainSettings(bool reloadWebsite) const;
+ void applyDomainSettings(const QString &hostname, const bool reloadWebsite);
};
#endif