diff options
Diffstat (limited to 'src/urlbar/urlbar.cpp')
-rw-r--r-- | src/urlbar/urlbar.cpp | 42 |
1 files changed, 25 insertions, 17 deletions
diff --git a/src/urlbar/urlbar.cpp b/src/urlbar/urlbar.cpp index c8aa43ff..61c44907 100644 --- a/src/urlbar/urlbar.cpp +++ b/src/urlbar/urlbar.cpp @@ -89,9 +89,6 @@ UrlBar::UrlBar(QWidget *parent) // doesn't show the clear button setClearButtonShown(false); - // trap Key_Enter & Key_Return events, while emitting the returnPressed signal - setTrapReturnKey(true); - // insert decoded URLs setUrlDropsEnabled(true); @@ -116,9 +113,6 @@ UrlBar::UrlBar(QWidget *parent) // bookmark icon connect(Application::bookmarkProvider()->bookmarkManager(), SIGNAL(changed(const QString &, const QString &)), this, SLOT(onBookmarksChanged())); - // load typed urls - connect(this, SIGNAL(returnPressed(const QString &)), this, SLOT(loadTyped(const QString &))); - _suggestionTimer->setSingleShot(true); connect(_suggestionTimer, SIGNAL(timeout()), this, SLOT(suggest())); @@ -138,7 +132,6 @@ void UrlBar::setQUrl(const QUrl& url) { if (url.scheme() == QL1S("about")) { - _icon->setIcon(KIcon("arrow-right")); clear(); setFocus(); } @@ -241,7 +234,8 @@ void UrlBar::keyPressEvent(QKeyEvent *event) // this handles the Modifiers + Return key combinations QString currentText = text().trimmed(); if ((event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return) - && !currentText.startsWith(QL1S("http://"), Qt::CaseInsensitive)) + && !currentText.startsWith(QL1S("http://"), Qt::CaseInsensitive) + && event->modifiers() != Qt::NoModifier) { QString append; if (event->modifiers() == Qt::ControlModifier) @@ -257,19 +251,28 @@ void UrlBar::keyPressEvent(QKeyEvent *event) append = QL1S(".net"); } - QUrl url(QL1S("http://www.") + currentText); - QString host = url.host(); - if (!host.endsWith(append, Qt::CaseInsensitive)) + if (!append.isEmpty()) { - host += append; - url.setHost(host); + QUrl url(QL1S("http://www.") + currentText); + QString host = url.host(); + if (!host.endsWith(append, Qt::CaseInsensitive)) + { + host += append; + url.setHost(host); + } + + // now, load it! + activated(url); } + } - // now, load it! - activated(url); + else if ((event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return) + && !currentText.isEmpty()) + { + loadTyped(currentText); } - if (event->key() == Qt::Key_Escape) + else if (event->key() == Qt::Key_Escape) { clearFocus(); event->accept(); @@ -503,5 +506,10 @@ void UrlBar::suggest() void UrlBar::refreshFavicon() { - _icon->setIcon(Application::iconManager()->iconForUrl(_tab->view()->url())); + KUrl u = _tab->url(); + if(u.scheme() == QL1S("about")) { + _icon->setIcon(KIcon("arrow-right")); + return; + } + _icon->setIcon(Application::iconManager()->iconForUrl(u)); } |