From f47e32c5d0451308d5f0ff99e31397bd8ce53f73 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Sun, 2 Jul 2017 14:36:54 +0200 Subject: Added homepage button --- src/mainwindow.cpp | 11 ++++++++--- src/webengine/webengineprofile.cpp | 7 +++++++ src/webengine/webengineprofile.h | 4 ++++ src/widgets/webviewtabbar.cpp | 15 ++++++++++++++- src/widgets/webviewtabbar.h | 7 +++++++ 5 files changed, 40 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index a72a784..bda8bdb 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -70,18 +70,23 @@ MainWindow::MainWindow(QUrl defaultUrl, QWidget *parent) : QToolButton *backButton = new QToolButton(this); backButton->setIcon(style()->standardIcon(QStyle::SP_ArrowBack)); connect(backButton, SIGNAL(clicked()), tabBar->signalMapper(), SLOT(map())); - tabBar->signalMapper()->setMapping(backButton, QWebEnginePage::Back); + tabBar->signalMapper()->setMapping(backButton, WebViewTabBar::Back); QToolButton *forwardButton = new QToolButton(this); forwardButton->setIcon(style()->standardIcon(QStyle::SP_ArrowForward)); connect(forwardButton, SIGNAL(clicked()), tabBar->signalMapper(), SLOT(map())); - tabBar->signalMapper()->setMapping(forwardButton, QWebEnginePage::Forward); + tabBar->signalMapper()->setMapping(forwardButton, WebViewTabBar::Forward); QToolButton *reloadButton = new QToolButton(this); reloadButton->setIcon(style()->standardIcon(QStyle::SP_BrowserReload)); connect(reloadButton, SIGNAL(clicked()), tabBar->signalMapper(), SLOT(map())); - tabBar->signalMapper()->setMapping(reloadButton, QWebEnginePage::Reload); + tabBar->signalMapper()->setMapping(reloadButton, WebViewTabBar::Reload); + QToolButton *homepageButton = new QToolButton(this); + homepageButton->setIcon(style()->standardIcon(QStyle::SP_DirHomeIcon)); + connect(homepageButton, SIGNAL(clicked()), tabBar->signalMapper(), SLOT(map())); + tabBar->signalMapper()->setMapping(homepageButton, WebViewTabBar::Homepage); navigationToolBar->addWidget(backButton); navigationToolBar->addWidget(forwardButton); navigationToolBar->addWidget(reloadButton); + navigationToolBar->addWidget(homepageButton); navigationToolBar->addWidget(urlLineEdit); this->addToolBar(Qt::TopToolBarArea, navigationToolBar); diff --git a/src/webengine/webengineprofile.cpp b/src/webengine/webengineprofile.cpp index ddf62a8..5d00495 100644 --- a/src/webengine/webengineprofile.cpp +++ b/src/webengine/webengineprofile.cpp @@ -28,12 +28,14 @@ WebEngineProfile::WebEngineProfile(QObject *parent) : { // Off-the-record constructor m_name = tr("Off-the-record"); + m_homepage = QUrl("https://duckduckgo.com"); } WebEngineProfile::WebEngineProfile(const QString &name, const QString &path, QObject *parent) : QWebEngineProfile(name, parent) { m_name = name; + m_homepage = QUrl("https://duckduckgo.com"); setPersistentStoragePath(path + name); setCachePath(path + name); @@ -126,6 +128,11 @@ ProfileView *WebEngineProfile::dialog() return m_profileDialog; } +QUrl WebEngineProfile::homepage() const +{ + return m_homepage; +} + void WebEngineProfile::saveProfile() { QSettings config(persistentStoragePath() + "/profile.ini", QSettings::IniFormat); diff --git a/src/webengine/webengineprofile.h b/src/webengine/webengineprofile.h index f13b266..8ddf329 100644 --- a/src/webengine/webengineprofile.h +++ b/src/webengine/webengineprofile.h @@ -22,6 +22,7 @@ #define WEBENGINEPROFILE_H #include +#include #include "forms/profileview.h" class WebEngineProfile : public QWebEngineProfile @@ -37,6 +38,8 @@ public: ProfileView *dialog(); + QUrl homepage() const; + signals: public slots: @@ -44,6 +47,7 @@ public slots: private: QString m_name; + QUrl m_homepage; ProfileView *m_profileDialog = nullptr; }; diff --git a/src/widgets/webviewtabbar.cpp b/src/widgets/webviewtabbar.cpp index 4d3a859..bd24304 100644 --- a/src/widgets/webviewtabbar.cpp +++ b/src/widgets/webviewtabbar.cpp @@ -172,5 +172,18 @@ void WebViewTabBar::updateVectorArrangement(int from, int to) void WebViewTabBar::webAction(int action) { - currentView()->pageAction(static_cast(action))->trigger(); + switch (action) { + case WebActions::Back: + currentView()->pageAction(QWebEnginePage::Back)->trigger(); + break; + case WebActions::Forward: + currentView()->pageAction(QWebEnginePage::Forward)->trigger(); + break; + case WebActions::Reload: + currentView()->pageAction(QWebEnginePage::Reload)->trigger(); + break; + case WebActions::Homepage: + currentView()->load(m_profile->homepage()); + break; + } } diff --git a/src/widgets/webviewtabbar.h b/src/widgets/webviewtabbar.h index 31a3ab2..4682a94 100644 --- a/src/widgets/webviewtabbar.h +++ b/src/widgets/webviewtabbar.h @@ -31,6 +31,13 @@ class WebViewTabBar : public QTabBar Q_OBJECT public: + enum WebActions { + Back = QWebEnginePage::Back, + Forward = QWebEnginePage::Forward, + Reload = QWebEnginePage::Reload, + Homepage + }; + explicit WebViewTabBar(WebEngineProfile *profile = nullptr, QWidget *parent = 0); ~WebViewTabBar(); -- cgit v1.2.1