From 060b735c50dc968d8d6b074c4aa31409fcae0b5e Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Sat, 9 Jun 2018 14:49:23 +0200 Subject: Focus view when URL bar loses focus --- lib/addressbar/addressbar.cpp | 6 ++++++ lib/addressbar/addressbar.h | 1 + lib/addressbar/urllineedit.cpp | 1 + lib/addressbar/urllineedit.h | 3 +++ 4 files changed, 11 insertions(+) (limited to 'lib') diff --git a/lib/addressbar/addressbar.cpp b/lib/addressbar/addressbar.cpp index 3768aeb..2409cb9 100644 --- a/lib/addressbar/addressbar.cpp +++ b/lib/addressbar/addressbar.cpp @@ -47,6 +47,7 @@ AddressBar::~AddressBar() disconnect(urlChangedConnection); disconnect(loadUrlConnection); disconnect(progressBarConnection); + disconnect(focusConnection); } void AddressBar::setView(QWebEngineView *view) @@ -54,6 +55,7 @@ void AddressBar::setView(QWebEngineView *view) disconnect(urlChangedConnection); disconnect(loadUrlConnection); disconnect(progressBarConnection); + disconnect(focusConnection); progressBar->setValue(100); @@ -78,6 +80,10 @@ void AddressBar::setView(QWebEngineView *view) progressBar->setValue(100); progressBarConnection = connect(view, &QWebEngineView::loadProgress, progressBar, &QProgressBar::setValue); + + focusConnection = connect(urlBar, &UrlLineEdit::focusView, view, [view]() { + view->setFocus(); + }); } void AddressBar::setPageMenu(QMenu *menu) diff --git a/lib/addressbar/addressbar.h b/lib/addressbar/addressbar.h index 861f985..d035d8d 100644 --- a/lib/addressbar/addressbar.h +++ b/lib/addressbar/addressbar.h @@ -39,6 +39,7 @@ private: QMetaObject::Connection urlChangedConnection, loadUrlConnection; QMetaObject::Connection progressBarConnection; + QMetaObject::Connection focusConnection; }; #endif // SMOLBOTE_ADDRESSBAR_H diff --git a/lib/addressbar/urllineedit.cpp b/lib/addressbar/urllineedit.cpp index 79d7bf8..21f88eb 100644 --- a/lib/addressbar/urllineedit.cpp +++ b/lib/addressbar/urllineedit.cpp @@ -113,6 +113,7 @@ void UrlLineEdit::focusOutEvent(QFocusEvent *event) if(url.isValid()) setUrl(url); + emit focusView(); QLineEdit::focusOutEvent(event); } diff --git a/lib/addressbar/urllineedit.h b/lib/addressbar/urllineedit.h index f28983d..2198a0e 100644 --- a/lib/addressbar/urllineedit.h +++ b/lib/addressbar/urllineedit.h @@ -27,6 +27,9 @@ public slots: void updateCompleter(const QStringList &l); +signals: + void focusView(); + public: QAction *menuAction = nullptr; // pageMenu action: zoom, print -- cgit v1.2.1