From 0b70b2802e355a44e6ccbbfcabd03c0992f812e0 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Wed, 18 Apr 2018 21:37:52 +0200 Subject: Load URL/Search page menu actions --- src/browser.cpp | 3 +++ src/webengine/webprofile.h | 10 ++++++++++ src/webengine/webview.h | 3 +++ src/webengine/widgets/pagemenu.cpp | 20 +++++++++++++++++++- 4 files changed, 35 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/browser.cpp b/src/browser.cpp index 0caae05..9b691e4 100644 --- a/src/browser.cpp +++ b/src/browser.cpp @@ -28,6 +28,7 @@ Browser::Browser(int &argc, char *argv[]) Browser::~Browser() { + m_bookmarks->save(); qDeleteAll(m_windows); m_windows.clear(); } @@ -61,11 +62,13 @@ void Browser::setup(const QString &defaultProfile) auto *p = new WebProfile(this); p->loadProfile(m_config->section("profile")); p->setRequestInterceptor(m_urlFilter.get()); + connect(p, &WebProfile::addBookmarkRequested, m_bookmarks.get(), &BookmarksWidget::addBookmark); connect(p, &WebProfile::downloadRequested, m_downloads.get(), &DownloadsWidget::addDownload); WebProfile::setDefaultProfile(p); } else { auto *p = new WebProfile(defaultProfile, this); p->setRequestInterceptor(m_urlFilter.get()); + connect(p, &WebProfile::addBookmarkRequested, m_bookmarks.get(), &BookmarksWidget::addBookmark); connect(p, &WebProfile::downloadRequested, m_downloads.get(), &DownloadsWidget::addDownload); WebProfile::setDefaultProfile(p); } diff --git a/src/webengine/webprofile.h b/src/webengine/webprofile.h index 0b3ce7f..ddb642c 100644 --- a/src/webengine/webprofile.h +++ b/src/webengine/webprofile.h @@ -11,6 +11,7 @@ #include #include +#include #include class WebProfile : public QWebEngineProfile @@ -41,6 +42,15 @@ public: 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()); diff --git a/src/webengine/webview.h b/src/webengine/webview.h index d59847b..5ab04cd 100644 --- a/src/webengine/webview.h +++ b/src/webengine/webview.h @@ -34,6 +34,9 @@ public: return m_toolsMenu; } + WebProfile *profile() { + return m_profile; + } void setPage(QWebEnginePage *page); bool isLoaded() const; int loadProgress() const; diff --git a/src/webengine/widgets/pagemenu.cpp b/src/webengine/widgets/pagemenu.cpp index a90d223..b66c787 100644 --- a/src/webengine/widgets/pagemenu.cpp +++ b/src/webengine/widgets/pagemenu.cpp @@ -8,6 +8,7 @@ #include "pagemenu.h" #include "../webview.h" +#include "webengine/webprofile.h" #include #include #include @@ -28,11 +29,28 @@ PageMenu::PageMenu(WebView *parent) auto *copyUrlAction = addAction(tr("Copy page URL")); connect(copyUrlAction, &QAction::triggered, parent, [parent]() { qApp->clipboard()->setText(parent->url().toString()); + parent->setFocus(); + }); + + auto *loadUrlAction = addAction(tr("Load URL")); + connect(loadUrlAction, &QAction::triggered, parent, [=]() { + parent->load(QUrl::fromUserInput(qApp->clipboard()->text())); + parent->setFocus(); + }); + + auto *searchAction = addAction(tr("Search")); + connect(searchAction, &QAction::triggered, parent, [=]() { + parent->search(qApp->clipboard()->text()); + }); + + connect(this, &PageMenu::aboutToShow, this, [=]() { + loadUrlAction->setText(tr("Load URL: '%1'").arg(qApp->clipboard()->text())); + searchAction->setText(tr("Search: '%1'").arg(qApp->clipboard()->text())); }); auto *bookmarkAction = addAction(tr("Bookmark page")); connect(bookmarkAction, &QAction::triggered, parent, [parent]() { - parent->triggerViewAction(WebView::BookmarkPage); + parent->profile()->addBookmark(parent->title(), parent->url().toString()); }); addSeparator(); -- cgit v1.2.1