diff options
Diffstat (limited to 'src/mainwindow/addressbar.cpp')
-rw-r--r-- | src/mainwindow/addressbar.cpp | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/src/mainwindow/addressbar.cpp b/src/mainwindow/addressbar.cpp index b1d005a..d37a6a7 100644 --- a/src/mainwindow/addressbar.cpp +++ b/src/mainwindow/addressbar.cpp @@ -10,6 +10,7 @@ #include "ui_addressbar.h" #include <QShortcut> #include "configuration.h" +#include "webengine/webview.h" AddressBar::AddressBar(QWidget *parent) : QWidget(parent) @@ -42,22 +43,30 @@ AddressBar::AddressBar(QWidget *parent) } else { emit search(ui->urlBar->text()); } + ui->urlBar->clearFocus(); }); } -AddressBar::~AddressBar() +void AddressBar::connectView(WebView *view) { - disconnect(this); -} + disconnect(url_connection); + disconnect(progress_connection); + disconnect(search_connection); + disconnect(load_connection); + disconnect(focus_connection); -void AddressBar::setUrl(const QUrl &url) -{ - if(url.isEmpty()) + if(view == nullptr) { ui->urlBar->clear(); - else - ui->urlBar->setUrl(url); -} + ui->loadingBar->setValue(100); + } else { + ui->urlBar->setUrl(view->url()); + ui->loadingBar->setValue(100); + url_connection = connect(view, &WebView::urlChanged, ui->urlBar, &UrlLineEdit::setUrl); + progress_connection = connect(view, &WebView::loadProgress, ui->loadingBar, &QProgressBar::setValue); -void AddressBar::setProgress(int value) { - ui->loadingBar->setValue(std::min(value, 100)); + search_connection = connect(this, &AddressBar::search, view, &WebView::search); + load_connection = connect(this, &AddressBar::load, view, qOverload<const QUrl &>(&WebView::load)); + focus_connection = connect(this, &AddressBar::giveFocus, view, qOverload<>(&WebView::setFocus)); + } } + |