diff options
Diffstat (limited to 'src/ephy-search-provider.c')
-rw-r--r-- | src/ephy-search-provider.c | 179 |
1 files changed, 88 insertions, 91 deletions
diff --git a/src/ephy-search-provider.c b/src/ephy-search-provider.c index 3db9817be..e1231dc8a 100644 --- a/src/ephy-search-provider.c +++ b/src/ephy-search-provider.c @@ -30,8 +30,7 @@ #include <gio/gdesktopappinfo.h> #include <libsoup/soup.h> -struct _EphySearchProvider -{ +struct _EphySearchProvider { GApplication parent_instance; EphyShellSearchProvider2 *skeleton; @@ -43,8 +42,7 @@ struct _EphySearchProvider EphyCompletionModel *model; }; -struct _EphySearchProviderClass -{ +struct _EphySearchProviderClass { GApplicationClass parent_class; }; @@ -54,9 +52,9 @@ G_DEFINE_TYPE (EphySearchProvider, ephy_search_provider, G_TYPE_APPLICATION) static void on_model_updated (EphyHistoryService *service, - gboolean success, - gpointer result_data, - gpointer user_data) + gboolean success, + gpointer result_data, + gpointer user_data) { GTask *task = user_data; EphySearchProvider *self = g_task_get_source_object (task); @@ -84,7 +82,7 @@ on_model_updated (EphyHistoryService *service, g_task_return_pointer (task, g_ptr_array_free (results, FALSE), - (GDestroyNotify) g_strfreev); + (GDestroyNotify)g_strfreev); } static char ** @@ -96,11 +94,11 @@ gather_results_finish (EphySearchProvider *self, } static void -gather_results_async (EphySearchProvider *self, - char **terms, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) +gather_results_async (EphySearchProvider *self, + char **terms, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) { GTask *task; char *search_string; @@ -139,10 +137,10 @@ complete_request (GObject *object, } static gboolean -handle_get_initial_result_set (EphyShellSearchProvider2 *skeleton, - GDBusMethodInvocation *invocation, - char **terms, - EphySearchProvider *self) +handle_get_initial_result_set (EphyShellSearchProvider2 *skeleton, + GDBusMethodInvocation *invocation, + char **terms, + EphySearchProvider *self) { g_application_hold (G_APPLICATION (self)); g_cancellable_reset (self->cancellable); @@ -154,11 +152,11 @@ handle_get_initial_result_set (EphyShellSearchProvider2 *skeleton, } static gboolean -handle_get_subsearch_result_set (EphyShellSearchProvider2 *skeleton, - GDBusMethodInvocation *invocation, - char **previous_results, - char **terms, - EphySearchProvider *self) +handle_get_subsearch_result_set (EphyShellSearchProvider2 *skeleton, + GDBusMethodInvocation *invocation, + char **previous_results, + char **terms, + EphySearchProvider *self) { g_application_hold (G_APPLICATION (self)); g_cancellable_reset (self->cancellable); @@ -170,10 +168,10 @@ handle_get_subsearch_result_set (EphyShellSearchProvider2 *skeleton, } static gboolean -handle_get_result_metas (EphyShellSearchProvider2 *skeleton, - GDBusMethodInvocation *invocation, - char **results, - EphySearchProvider *self) +handle_get_result_metas (EphyShellSearchProvider2 *skeleton, + GDBusMethodInvocation *invocation, + char **results, + EphySearchProvider *self) { GtkTreeModel *model = GTK_TREE_MODEL (self->model); GtkTreeIter iter; @@ -188,68 +186,67 @@ handle_get_result_metas (EphyShellSearchProvider2 *skeleton, g_variant_builder_init (&builder, G_VARIANT_TYPE ("aa{sv}")); - for (i = 0; results[i]; i++) - { - if (g_str_has_prefix (results[i], "special:search:")) { - g_variant_builder_open (&builder, G_VARIANT_TYPE ("a{sv}")); - g_variant_builder_add (&builder, "{sv}", - "id", g_variant_new_string ("special:search")); - g_variant_builder_add (&builder, "{sv}", - "name", g_variant_new_take_string (g_strdup_printf(_("Search the Web for %s"), - results[i] + strlen("special:search:")))); - g_variant_builder_add (&builder, "{sv}", - "gicon", g_variant_new_string ("web-browser")); - g_variant_builder_close (&builder); - continue; - } - - if (!gtk_tree_model_get_iter_from_string (model, &iter, results[i])) - continue; - - gtk_tree_model_get (model, &iter, - EPHY_COMPLETION_TEXT_COL, &name, - EPHY_COMPLETION_URL_COL, &url, - EPHY_COMPLETION_FAVICON_COL, &favicon, - EPHY_COMPLETION_EXTRA_COL, &is_bookmark, - -1); - + for (i = 0; results[i]; i++) { + if (g_str_has_prefix (results[i], "special:search:")) { g_variant_builder_open (&builder, G_VARIANT_TYPE ("a{sv}")); g_variant_builder_add (&builder, "{sv}", - "id", g_variant_new_string (url)); + "id", g_variant_new_string ("special:search")); + g_variant_builder_add (&builder, "{sv}", + "name", g_variant_new_take_string (g_strdup_printf (_("Search the Web for %s"), + results[i] + strlen ("special:search:")))); g_variant_builder_add (&builder, "{sv}", - "name", g_variant_new_string (name)); + "gicon", g_variant_new_string ("web-browser")); + g_variant_builder_close (&builder); + continue; + } - if (favicon == NULL) { - char *type; + if (!gtk_tree_model_get_iter_from_string (model, &iter, results[i])) + continue; - type = g_content_type_from_mime_type ("text/html"); - favicon = g_content_type_get_icon (type); + gtk_tree_model_get (model, &iter, + EPHY_COMPLETION_TEXT_COL, &name, + EPHY_COMPLETION_URL_COL, &url, + EPHY_COMPLETION_FAVICON_COL, &favicon, + EPHY_COMPLETION_EXTRA_COL, &is_bookmark, + -1); - if (is_bookmark) { - GEmblem *emblem; - GIcon *emblem_icon, *emblemed; + g_variant_builder_open (&builder, G_VARIANT_TYPE ("a{sv}")); + g_variant_builder_add (&builder, "{sv}", + "id", g_variant_new_string (url)); + g_variant_builder_add (&builder, "{sv}", + "name", g_variant_new_string (name)); - emblem_icon = g_themed_icon_new ("emblem-favorite"); - emblem = g_emblem_new (emblem_icon); + if (favicon == NULL) { + char *type; - emblemed = g_emblemed_icon_new (favicon, emblem); + type = g_content_type_from_mime_type ("text/html"); + favicon = g_content_type_get_icon (type); - g_object_unref (emblem); - g_object_unref (emblem_icon); - g_object_unref (favicon); - favicon = emblemed; - } - } + if (is_bookmark) { + GEmblem *emblem; + GIcon *emblem_icon, *emblemed; - g_variant_builder_add (&builder, "{sv}", - "icon", g_icon_serialize (favicon)); - g_variant_builder_close (&builder); + emblem_icon = g_themed_icon_new ("emblem-favorite"); + emblem = g_emblem_new (emblem_icon); + + emblemed = g_emblemed_icon_new (favicon, emblem); - g_object_unref (favicon); - g_free (name); - g_free (url); + g_object_unref (emblem); + g_object_unref (emblem_icon); + g_object_unref (favicon); + favicon = emblemed; + } } + g_variant_builder_add (&builder, "{sv}", + "icon", g_icon_serialize (favicon)); + g_variant_builder_close (&builder); + + g_object_unref (favicon); + g_free (name); + g_free (url); + } + ephy_shell_search_provider2_complete_get_result_metas (skeleton, invocation, g_variant_builder_end (&builder)); @@ -260,8 +257,8 @@ handle_get_result_metas (EphyShellSearchProvider2 *skeleton, } static void -launch_uri (const char *uri, - guint timestamp) +launch_uri (const char *uri, + guint timestamp) { char *str; @@ -272,9 +269,9 @@ launch_uri (const char *uri, } static void -launch_search (EphySearchProvider *self, - char **terms, - guint timestamp) +launch_search (EphySearchProvider *self, + char **terms, + guint timestamp) { char *search_string, *url_search, *query_param, *effective_url; @@ -305,12 +302,12 @@ launch_search (EphySearchProvider *self, } static gboolean -handle_activate_result (EphyShellSearchProvider2 *skeleton, - GDBusMethodInvocation *invocation, - char *identifier, - char **terms, - guint timestamp, - EphySearchProvider *self) +handle_activate_result (EphyShellSearchProvider2 *skeleton, + GDBusMethodInvocation *invocation, + char *identifier, + char **terms, + guint timestamp, + EphySearchProvider *self) { g_application_hold (G_APPLICATION (self)); g_cancellable_cancel (self->cancellable); @@ -327,11 +324,11 @@ handle_activate_result (EphyShellSearchProvider2 *skeleton, } static gboolean -handle_launch_search (EphyShellSearchProvider2 *skeleton, - GDBusMethodInvocation *invocation, - char **terms, - guint timestamp, - EphySearchProvider *self) +handle_launch_search (EphyShellSearchProvider2 *skeleton, + GDBusMethodInvocation *invocation, + char **terms, + guint timestamp, + EphySearchProvider *self) { g_application_hold (G_APPLICATION (self)); g_cancellable_cancel (self->cancellable); |