From dadd2ac929daa925bf7c91379e064427241afc1f Mon Sep 17 00:00:00 2001 From: megabigbug Date: Tue, 20 Jul 2010 23:12:45 +0200 Subject: remove useless bookmarkPath attribute of UrlSearchItem add a regexp for detect url of search engines remove url that are detected from history suggestions --- src/urlbar/urlresolver.cpp | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) (limited to 'src/urlbar/urlresolver.cpp') diff --git a/src/urlbar/urlresolver.cpp b/src/urlbar/urlresolver.cpp index 50f1692f..115f0295 100644 --- a/src/urlbar/urlresolver.cpp +++ b/src/urlbar/urlresolver.cpp @@ -31,6 +31,7 @@ #include "application.h" #include "historymanager.h" #include "bookmarksmanager.h" +#include "searchengine.h" // KDE Includes #include @@ -59,7 +60,7 @@ QRegExp UrlResolver::_browseRegexp; - +QRegExp UrlResolver::_searchEnginesRegexp; UrlResolver::UrlResolver(const QString &typedUrl) : _typedString(typedUrl.trimmed()) @@ -90,6 +91,18 @@ UrlResolver::UrlResolver(const QString &typedUrl) _browseRegexp = QRegExp('(' + protocol + ")|(" + localhost + ")|(" + local + ")|(" + address + ")|(" + ipv6 + ")|(" + ipv4 +')'); } + if ( _searchEnginesRegexp.isEmpty() ) + { + QString reg; + QString engineUrl; + foreach(KService::Ptr s, SearchEngine::favorites()) + { + engineUrl = QRegExp::escape(s->property("Query").toString()).replace("\\\\\\{@\\}","[\\d\\w-.]+"); + if (reg.isEmpty()) reg = "(" + engineUrl + ")"; + else reg = reg + "|(" + engineUrl + ")"; + } + _searchEnginesRegexp = QRegExp(reg); + } } @@ -300,12 +313,17 @@ UrlSearchList UrlResolver::webSearchesResolution() // STEP 3 = history completion UrlSearchList UrlResolver::historyResolution() { - QList mostVisited = Application::historyManager()->findMostVisited(_typedString); + QList found = Application::historyManager()->find(_typedString); + qSort(found); + UrlSearchList list; - foreach (HistoryHashItem i, mostVisited) + foreach (HistoryHashItem i, found) { - UrlSearchItem gItem(UrlSearchItem::History, i.url, i.title); - list << gItem; + if (_searchEnginesRegexp.indexIn(i.url) == -1) //filter all urls that are search engine results + { + UrlSearchItem gItem(UrlSearchItem::History, i.url, i.title); + list << gItem; + } } return list; } -- cgit v1.2.1