summaryrefslogtreecommitdiff
path: root/src/urlbar/urlresolver.cpp
diff options
context:
space:
mode:
authorAndrea Diamantini <adjam7@gmail.com>2010-04-15 23:59:35 +0200
committerAndrea Diamantini <adjam7@gmail.com>2010-04-15 23:59:35 +0200
commitcc6d332afeb2ed940bcd3ca6bc307916b3ddf953 (patch)
treedf470b3f9d62a4034b27cf37df93e3cfe38f60b3 /src/urlbar/urlresolver.cpp
parentMerge commit 'refs/merge-requests/124' of git://gitorious.org/rekonq/mainline... (diff)
parentintroduce search listitem (diff)
downloadrekonq-cc6d332afeb2ed940bcd3ca6bc307916b3ddf953.tar.xz
Merge commit 'refs/merge-requests/77' of git://gitorious.org/rekonq/mainline into m77
Diffstat (limited to 'src/urlbar/urlresolver.cpp')
-rw-r--r--src/urlbar/urlresolver.cpp58
1 files changed, 24 insertions, 34 deletions
diff --git a/src/urlbar/urlresolver.cpp b/src/urlbar/urlresolver.cpp
index 4ff6b461..fd4cdfcb 100644
--- a/src/urlbar/urlresolver.cpp
+++ b/src/urlbar/urlresolver.cpp
@@ -60,7 +60,7 @@ bool UrlSearchItem::operator==(UrlSearchItem i)
}
UrlResolver::UrlResolver(const QString &typedUrl)
- : _urlString( typedUrl.trimmed() )
+ : _urlString(typedUrl.trimmed())
{
}
@@ -78,19 +78,15 @@ UrlSearchList UrlResolver::orderedSearchItems()
if(isHttp())
{
list << qurlFromUserInputResolution();
- list << webSearchesResolution();
- }
- else
- {
- list << webSearchesResolution();
- list << qurlFromUserInputResolution();
}
+
+ list << webSearchesResolution();
if (_urlString.length()>2)
{
int firstResults = list.count();
int checkPoint = 9 - firstResults;
-
+
UrlSearchList historyList = historyResolution();
int historyResults = historyList.count();
@@ -136,7 +132,12 @@ UrlSearchList UrlResolver::orderedSearchItems()
bool UrlResolver::isHttp()
{
- QString r = "[\\d\\w-.]+\\.(a[cdefgilmnoqrstuwz]|b[abdefghijmnorstvwyz]|"\
+ QString ipv4 = "^0*([1-9]?\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.0*([1-9]?\\d|1\\d\\d|2[0-4]\\d|25[0-5])"\
+ "\\.0*([1-9]?\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.0*([1-9]?\\d|1\\d\\d|2[0-4]\\d|25[0-5])";
+
+ QString ipv6 = "^([0-9a-fA-F]{4}|0)(\\:([0-9a-fA-F]{4}|0)){7}";
+
+ QString address = "[\\d\\w-.]+\\.(a[cdefgilmnoqrstuwz]|b[abdefghijmnorstvwyz]|"\
"c[acdfghiklmnoruvxyz]|d[ejkmnoz]|e[ceghrst]|f[ijkmnor]|g[abdefghilmnpqrstuwy]|"\
"h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|"\
"m[acdghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eouw]|"\
@@ -144,9 +145,11 @@ bool UrlResolver::isHttp()
"y[etu]|z[amw]|aero|arpa|biz|com|coop|edu|info|int|gov|mil|museum|name|net|org|"\
"pro)";
- return (QRegExp(r, Qt::CaseInsensitive).indexIn(_urlString) != -1)
- || _urlString.startsWith("http:")
- || _urlString.startsWith("https:");
+ return _urlString.startsWith("http://")
+ || _urlString.startsWith("https://")
+ || (QRegExp(address, Qt::CaseInsensitive).indexIn(_urlString) != -1)
+ || (QRegExp(ipv4, Qt::CaseInsensitive).indexIn(_urlString) != -1)
+ || (QRegExp(ipv6, Qt::CaseInsensitive).indexIn(_urlString) != -1);
}
//////////////////////////////////////////////////////////////////////////
@@ -156,19 +159,8 @@ bool UrlResolver::isHttp()
// STEP 1 = QUrl from User Input (easily the best solution... )
UrlSearchList UrlResolver::qurlFromUserInputResolution()
{
- UrlSearchList list;
-
- QString url2 = _urlString;
- QUrl urlFromUserInput = QUrl::fromUserInput(url2);
- if(urlFromUserInput.isValid())
- {
- KUrl gUrl(urlFromUserInput);
- QString gTitle = i18n("Browse");
- UrlSearchItem gItem(UrlSearchItem::Browse, gUrl, gTitle);
- list << gItem;
- }
-
- return list;
+ UrlSearchItem gItem(UrlSearchItem::Browse, KUrl(_urlString), QString());
+ return UrlSearchList() << gItem;
}
@@ -176,14 +168,12 @@ UrlSearchList UrlResolver::qurlFromUserInputResolution()
UrlSearchList UrlResolver::webSearchesResolution()
{
UrlSearchList list;
-
- KUrl url1(_urlString);
- if(url1.isRelative())
+
+ if(KUrl(_urlString).isRelative())
{
- // KUriFilter has the worst performance possible here and let this trick unusable
- KUrl gUrl( QString("gg:") + _urlString );
- QString gTitle = i18n("Search Google for %1", _urlString);
- UrlSearchItem gItem(UrlSearchItem::Search, gUrl, gTitle );
+ QString gUrl = QString("http://www.google.com/search?q=%1&ie=UTF-8&oe=UTF-8").arg(_urlString);
+ QString gTitle = i18n("Search Google for ") + _urlString;
+ UrlSearchItem gItem(UrlSearchItem::Search, KUrl(), gTitle);
list << gItem;
}
@@ -200,7 +190,7 @@ UrlSearchList UrlResolver::historyResolution()
QStringList historyResults = historyCompletion->substringCompletion(_urlString);
Q_FOREACH(const QString &s, historyResults)
{
- UrlSearchItem it(UrlSearchItem::History, KUrl(s), Application::historyManager()->titleForHistoryUrl(s) ); //, QString("view-history"));
+ UrlSearchItem it(UrlSearchItem::History, KUrl(s), Application::historyManager()->titleForHistoryUrl(s));
list << it;
}
@@ -217,7 +207,7 @@ UrlSearchList UrlResolver::bookmarksResolution()
QStringList bookmarkResults = bookmarkCompletion->substringCompletion(_urlString);
Q_FOREACH(const QString &s, bookmarkResults)
{
- UrlSearchItem it(UrlSearchItem::Bookmark, KUrl(s), Application::bookmarkProvider()->titleForBookmarkUrl(s) ); //, QString("rating") );
+ UrlSearchItem it(UrlSearchItem::Bookmark, KUrl(s), Application::bookmarkProvider()->titleForBookmarkUrl(s));
list << it;
}