From 3d51652105662cc4ebf0707aa1e52d790f01c480 Mon Sep 17 00:00:00 2001
From: Andrea Diamantini <adjam7@gmail.com>
Date: Thu, 2 Sep 2010 11:10:28 +0200
Subject: don't calculate suggestions on fast typing resolution or when user
 types a local url (something starting with /)

---
 src/urlbar/completionwidget.cpp |  9 +++++++--
 src/urlbar/urlresolver.cpp      | 10 ++++++++--
 src/urlbar/urlresolver.h        | 18 +++++++++---------
 3 files changed, 24 insertions(+), 13 deletions(-)

diff --git a/src/urlbar/completionwidget.cpp b/src/urlbar/completionwidget.cpp
index 1b931535..a2bf5dbc 100644
--- a/src/urlbar/completionwidget.cpp
+++ b/src/urlbar/completionwidget.cpp
@@ -320,10 +320,15 @@ void CompletionWidget::setVisible(bool visible)
 
 void CompletionWidget::itemChosen(ListItem *item, Qt::MouseButton button, Qt::KeyboardModifiers modifier)
 {
-    if (button == Qt::MidButton || modifier == Qt::ControlModifier)
+    if (button == Qt::MidButton 
+        || modifier == Qt::ControlModifier)
+    {
         emit chosenUrl(item->url(), Rekonq::NewFocusedTab);
+    }
     else
+    {
         emit chosenUrl(item->url(), Rekonq::CurrentTab);
+    }
     hide();
 }
 
@@ -344,6 +349,6 @@ void CompletionWidget::suggestUrls(const QString &text)
 
     UrlResolver *res = new UrlResolver(text);
     connect(res, SIGNAL(suggestionsReady(const UrlSearchList &, const QString &)), this, SLOT(updateSearchList(const UrlSearchList &, const QString &)));
+    res->computeSuggestions();
     _resList = res->orderedSearchItems();
-    
 }
diff --git a/src/urlbar/urlresolver.cpp b/src/urlbar/urlresolver.cpp
index 6743727b..21d804ef 100644
--- a/src/urlbar/urlresolver.cpp
+++ b/src/urlbar/urlresolver.cpp
@@ -64,6 +64,7 @@ KService::Ptr UrlResolver::_searchEngine;
 QRegExp UrlResolver::_browseRegexp;
 QRegExp UrlResolver::_searchEnginesRegexp;
 
+
 UrlResolver::UrlResolver(const QString &typedUrl)
         : QObject()
         , _typedString(typedUrl.trimmed())
@@ -110,8 +111,6 @@ UrlResolver::UrlResolver(const QString &typedUrl)
         }
         _searchEnginesRegexp = QRegExp(reg);
     }
-
-    computeSuggestions();
 }
 
 
@@ -378,6 +377,13 @@ void UrlResolver::computeBookmarks()
 //opensearch suggestion
 void UrlResolver::computeSuggestions()
 {
+    if(_typedString.startsWith('/'))
+    {
+        UrlSearchList list;
+        emit suggestionsReady(list, _typedString);
+        return;
+    }
+    
     if (Application::opensearchManager()->isSuggestionAvailable())
     {
         connect(Application::opensearchManager(),
diff --git a/src/urlbar/urlresolver.h b/src/urlbar/urlresolver.h
index dc579e0e..700fd460 100644
--- a/src/urlbar/urlresolver.h
+++ b/src/urlbar/urlresolver.h
@@ -114,6 +114,14 @@ public:
         _searchEngine = engine;
     };
 
+    void computeSuggestions();
+
+private Q_SLOTS:
+    void suggestionsReceived(const QString &text, const QStringList &suggestions);    
+
+Q_SIGNALS:
+    void suggestionsReady(const UrlSearchList &, const QString &);
+
 private:
     QString _typedString;
 
@@ -127,7 +135,6 @@ private:
     void computeHistory();
     void computeQurlFromUserInput();
     void computeBookmarks();
-    void computeSuggestions();
 
     UrlSearchItem privilegedItem(UrlSearchList* list);
     UrlSearchList orderLists();
@@ -135,14 +142,7 @@ private:
     static QRegExp _browseRegexp;
     static QRegExp _searchEnginesRegexp;
 
-    static KService::Ptr _searchEngine;
-    
-private slots:
-    void suggestionsReceived(const QString &text, const QStringList &suggestions);    
-
-Q_SIGNALS:
-    void suggestionsReady(const UrlSearchList &, const QString &);
-    
+    static KService::Ptr _searchEngine;    
 };
 
 // ------------------------------------------------------------------------------
-- 
cgit v1.2.1