aboutsummaryrefslogtreecommitdiff
path: root/src/addressbar/addressbar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/addressbar/addressbar.cpp')
-rw-r--r--src/addressbar/addressbar.cpp39
1 files changed, 35 insertions, 4 deletions
diff --git a/src/addressbar/addressbar.cpp b/src/addressbar/addressbar.cpp
index 4f2ae6a..1c10d69 100644
--- a/src/addressbar/addressbar.cpp
+++ b/src/addressbar/addressbar.cpp
@@ -8,6 +8,7 @@
#include "addressbar.h"
#include "urllineedit.h"
+#include "webengine/webview.h"
#include <QProgressBar>
#include <QVBoxLayout>
#include <QShortcut>
@@ -27,6 +28,13 @@ AddressBar::AddressBar(const QHash<QString, QString> &config, QWidget *parent)
urlBar->setFocus();
urlBar->selectAll();
});
+
+ urlBar->pageMenu_action->setShortcut(QKeySequence(config.value("addressbar.shortcuts.pageMenu")));
+ urlBar->pageMenu_action->setToolTip(tr("Page Actions (%1)").arg(urlBar->pageMenu_action->shortcut().toString()));
+
+ urlBar->toolsMenu_action->setShortcut(QKeySequence(config.value("addressbar.shortcuts.toolsMenu")));
+ urlBar->toolsMenu_action->setToolTip(tr("Tools (%1)").arg(urlBar->toolsMenu_action->shortcut().toString()));
+
connect(urlBar, &UrlLineEdit::textEdited, [=](const QString &text) {
std::function<void(QStringList&)> callback = std::bind(&UrlLineEdit::updateCompleter, urlBar, std::placeholders::_1);
emit complete(text, callback);
@@ -40,16 +48,39 @@ AddressBar::AddressBar(const QHash<QString, QString> &config, QWidget *parent)
AddressBar::~AddressBar()
{
+ disconnect(urlChangedConnection);
+ disconnect(loadUrlConnection);
disconnect(progressBarConnection);
}
void AddressBar::connectWebView(WebView* view)
{
+ disconnect(urlChangedConnection);
+ disconnect(loadUrlConnection);
disconnect(progressBarConnection);
- urlBar->connectWebView(view);
- if(view != nullptr) {
- progressBar->setValue(view->loadProgress());
- progressBarConnection = connect(view, &QWebEngineView::loadProgress, progressBar, &QProgressBar::setValue);
+ if(view == nullptr) {
+ urlBar->clear();
+ urlBar->pageMenu_action->setMenu(nullptr);
+ urlBar->toolsMenu_action->setMenu(nullptr);
+
+ progressBar->setValue(100);
+ return;
}
+
+ urlBar->setUrl(view->url());
+ urlBar->pageMenu_action->setMenu(view->pageMenu());
+ urlBar->toolsMenu_action->setMenu(view->toolsMenu());
+ urlChangedConnection = connect(view, &WebView::urlChanged, urlBar, &UrlLineEdit::setUrl);
+ loadUrlConnection = connect(urlBar, &UrlLineEdit::returnPressed, [=]() {
+ if(urlBar->text().startsWith('#')) {;
+ view->search(urlBar->text().mid(1));
+ } else {
+ view->load(QUrl::fromUserInput(urlBar->text()));
+ }
+ view->setFocus();
+ });
+
+ progressBar->setValue(view->loadProgress());
+ progressBarConnection = connect(view, &QWebEngineView::loadProgress, progressBar, &QProgressBar::setValue);
}