From 359839213db33bdf95811adc883940eb50fb50e4 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Tue, 17 Apr 2018 14:05:10 +0200 Subject: Clean up UrlLineEdit --- src/addressbar/addressbar.cpp | 39 +++++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) (limited to 'src/addressbar/addressbar.cpp') 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 #include #include @@ -27,6 +28,13 @@ AddressBar::AddressBar(const QHash &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 callback = std::bind(&UrlLineEdit::updateCompleter, urlBar, std::placeholders::_1); emit complete(text, callback); @@ -40,16 +48,39 @@ AddressBar::AddressBar(const QHash &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); } -- cgit v1.2.1