[epiphany] Add gconf key to control the search engine used in auto-search



commit ffe63b2868201600e3c0bf9f203de387c3616c40
Author: Carl van Tonder <carl supervacuo com>
Date:   Tue Dec 8 18:14:52 2009 +0200

    Add gconf key to control the search engine used in auto-search
    
    Defaults to Google, like it used to.
    
    Bug #604087
    
    Signed-off-by: Xan Lopez <xan gnome org>

 data/epiphany.schemas.in |   11 +++++++++++
 embed/ephy-web-view.c    |   16 ++++++++++++++--
 lib/ephy-prefs.h         |    1 +
 3 files changed, 26 insertions(+), 2 deletions(-)
---
diff --git a/data/epiphany.schemas.in b/data/epiphany.schemas.in
index a847aa2..5faccc4 100644
--- a/data/epiphany.schemas.in
+++ b/data/epiphany.schemas.in
@@ -11,6 +11,17 @@
         <long>Address of the user's home page.</long>
         </locale>
       </schema>
+      <schema>
+        <key>/schemas/apps/epiphany/general/url_search</key>
+        <applyto>/apps/epiphany/general/url_search</applyto>
+        <owner>epiphany</owner>
+        <type>string</type>
+        <default>http://www.google.com/search?q=%s&ie=UTF-8&oe=UTF-8</default>
+        <locale name="C">
+        <short>URL Search</short>
+        <long>Search string for keywords entered in the URL bar.</long>
+        </locale>
+     </schema>
      <schema>
         <key>/schemas/apps/epiphany/dialogs/history_date_filter</key>
         <applyto>/apps/epiphany/dialogs/history_date_filter</applyto>
diff --git a/embed/ephy-web-view.c b/embed/ephy-web-view.c
index 09172b4..a0a7c3a 100644
--- a/embed/ephy-web-view.c
+++ b/embed/ephy-web-view.c
@@ -36,6 +36,7 @@
 #include "ephy-embed-single.h"
 #include "ephy-embed-type-builtins.h"
 #include "ephy-embed-utils.h"
+#include "ephy-prefs.h"
 #include "ephy-marshal.h"
 #include "ephy-permission-manager.h"
 #include "ephy-favicon-cache.h"
@@ -1128,10 +1129,21 @@ normalize_or_autosearch_url (EphyWebView *view, const char *url)
   if (soup_uri == NULL &&
       priv->non_search_regex &&
       !g_regex_match (priv->non_search_regex, url, 0, NULL)) {
-    char *query_param = soup_form_encode ("q", url, NULL);
+    char *query_param, *url_search;
+
+    url_search = eel_gconf_get_string (CONF_URL_SEARCH);
+
+    if (url_search == NULL || url_search[0] == '\0') {
+      g_free (url_search);
+
+      url_search = g_strdup (_("http://www.google.com/search?q=%s&ie=UTF-8&oe=UTF-8";));
+    }
+
+    query_param = soup_form_encode ("q", url, NULL);
     /* + 2 here is getting rid of 'q=' */
-    effective_url = g_strdup_printf (_("http://www.google.com/search?q=%s&ie=UTF-8&oe=UTF-8";), query_param + 2);
+    effective_url = g_strdup_printf (url_search, query_param + 2);
     g_free (query_param);
+    g_free (url_search);
   } else
     effective_url = ephy_embed_utils_normalize_address (url);
 
diff --git a/lib/ephy-prefs.h b/lib/ephy-prefs.h
index 33d5388..b3fac06 100644
--- a/lib/ephy-prefs.h
+++ b/lib/ephy-prefs.h
@@ -31,6 +31,7 @@ G_BEGIN_DECLS
 
 /* General */
 #define CONF_GENERAL_HOMEPAGE			"/apps/epiphany/general/homepage"
+#define CONF_URL_SEARCH     			"/apps/epiphany/general/url_search"
 #define CONF_ALWAYS_SHOW_TABS_BAR		"/apps/epiphany/general/always_show_tabs_bar"
 #define CONF_WINDOWS_SHOW_TOOLBARS		"/apps/epiphany/general/show_toolbars"
 #define CONF_WINDOWS_SHOW_BOOKMARKS_BAR		"/apps/epiphany/general/show_bookmarks_bar"



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]