aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-04-18 21:37:52 +0200
committerAqua-sama <aqua@iserlohn-fortress.net>2018-04-18 21:37:52 +0200
commit0b70b2802e355a44e6ccbbfcabd03c0992f812e0 (patch)
tree26491a414e5711574aa3a925662b6ca78d59704f /src
parentStyle pass (diff)
downloadsmolbote-0b70b2802e355a44e6ccbbfcabd03c0992f812e0.tar.xz
Load URL/Search page menu actions
Diffstat (limited to 'src')
-rw-r--r--src/browser.cpp3
-rw-r--r--src/webengine/webprofile.h10
-rw-r--r--src/webengine/webview.h3
-rw-r--r--src/webengine/widgets/pagemenu.cpp20
4 files changed, 35 insertions, 1 deletions
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 <QHash>
#include <QUrl>
+#include <QString>
#include <QWebEngineProfile>
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<QString, QString> 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 <QApplication>
#include <QClipboard>
#include <QFileDialog>
@@ -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();