From 82e9d0c0eecaac181b7a00d77da686a63dc5f363 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Thu, 29 Dec 2016 12:11:40 +0100 Subject: [PATCH] LocationBar: Complete domain when going back to original text --- src/lib/navigation/completer/locationcompleter.cpp | 7 +++++-- src/lib/navigation/completer/locationcompleter.h | 2 +- src/lib/navigation/locationbar.cpp | 8 ++++++-- src/lib/navigation/locationbar.h | 2 +- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/lib/navigation/completer/locationcompleter.cpp b/src/lib/navigation/completer/locationcompleter.cpp index 1210601d5..2c2a7d86c 100644 --- a/src/lib/navigation/completer/locationcompleter.cpp +++ b/src/lib/navigation/completer/locationcompleter.cpp @@ -119,11 +119,14 @@ void LocationCompleter::currentChanged(const QModelIndex &index) { QString completion = index.data().toString(); + bool isOriginal = false; + if (completion.isEmpty()) { + isOriginal = true; completion = m_originalText; } - emit showCompletion(completion); + emit showCompletion(completion, isOriginal); } void LocationCompleter::indexActivated(const QModelIndex &index) @@ -256,7 +259,7 @@ void LocationCompleter::loadUrl(const QUrl &url) closePopup(); // Show url in locationbar - emit showCompletion(url.toEncoded()); + emit showCompletion(url.toEncoded(), false); // Load url emit loadCompletion(); diff --git a/src/lib/navigation/completer/locationcompleter.h b/src/lib/navigation/completer/locationcompleter.h index 3ea5f972b..c2a0e13a9 100644 --- a/src/lib/navigation/completer/locationcompleter.h +++ b/src/lib/navigation/completer/locationcompleter.h @@ -46,7 +46,7 @@ public slots: void showMostVisited(); signals: - void showCompletion(const QString &completion); + void showCompletion(const QString &completion, bool isOriginal); void showDomainCompletion(const QString &completion); void loadCompletion(); void clearCompletion(); diff --git a/src/lib/navigation/locationbar.cpp b/src/lib/navigation/locationbar.cpp index aefb5c250..defa44292 100644 --- a/src/lib/navigation/locationbar.cpp +++ b/src/lib/navigation/locationbar.cpp @@ -74,7 +74,7 @@ LocationBar::LocationBar(BrowserWindow* window) m_completer = new LocationCompleter(this); m_completer->setMainWindow(m_window); m_completer->setLocationBar(this); - connect(m_completer, SIGNAL(showCompletion(QString)), this, SLOT(showCompletion(QString))); + connect(m_completer, SIGNAL(showCompletion(QString,bool)), this, SLOT(showCompletion(QString,bool))); connect(m_completer, SIGNAL(showDomainCompletion(QString)), this, SLOT(showDomainCompletion(QString))); connect(m_completer, SIGNAL(loadCompletion()), this, SLOT(requestLoadUrl())); connect(m_completer, SIGNAL(clearCompletion()), this, SLOT(clearCompletion())); @@ -154,12 +154,16 @@ void LocationBar::updatePlaceHolderText() setPlaceholderText(tr("Enter URL address")); } -void LocationBar::showCompletion(const QString &completion) +void LocationBar::showCompletion(const QString &completion, bool isOriginal) { LineEdit::setText(completion); // Move cursor to the end end(false); + + if (isOriginal) { + completer()->complete(); + } } void LocationBar::clearCompletion() diff --git a/src/lib/navigation/locationbar.h b/src/lib/navigation/locationbar.h index b5caac64b..edda35576 100644 --- a/src/lib/navigation/locationbar.h +++ b/src/lib/navigation/locationbar.h @@ -60,7 +60,7 @@ private slots: void setPrivacyState(bool state); void setGoIconVisible(bool state); - void showCompletion(const QString &completion); + void showCompletion(const QString &completion, bool isOriginal); void showDomainCompletion(const QString &completion); void clearCompletion();