[gnome-software: 12/20] gs-search-page: Port ACTION_SEARCH to use GsPluginJobListApps




commit 8c67700491f93ef9dd70368395e4c03f92e9c297
Author: Philip Withnall <pwithnall endlessos org>
Date:   Fri Jul 1 18:08:05 2022 +0100

    gs-search-page: Port ACTION_SEARCH to use GsPluginJobListApps
    
    Signed-off-by: Philip Withnall <pwithnall endlessos org>
    
    Helps: #1472

 src/gs-search-page.c | 38 +++++++++++++++++++++-----------------
 1 file changed, 21 insertions(+), 17 deletions(-)
---
diff --git a/src/gs-search-page.c b/src/gs-search-page.c
index 1d0f5211e..b86f7389a 100644
--- a/src/gs-search-page.c
+++ b/src/gs-search-page.c
@@ -263,6 +263,8 @@ static void
 gs_search_page_load (GsSearchPage *self)
 {
        g_autoptr(GsPluginJob) plugin_job = NULL;
+       g_autoptr(GsAppQuery) query = NULL;
+       const gchar *keywords[2] = { NULL, };
 
        self->changed = FALSE;
 
@@ -274,23 +276,25 @@ gs_search_page_load (GsSearchPage *self)
        /* search for apps */
        gs_search_page_waiting_cancel (self);
        self->waiting_id = g_timeout_add (250, gs_search_page_waiting_show_cb, self);
-       plugin_job = gs_plugin_job_newv (GS_PLUGIN_ACTION_SEARCH,
-                                        "search", self->value,
-                                        "max-results", self->max_results,
-                                        "timeout", 0, /* This is a user action, let it take as long as it 
needs to */
-                                        "refine-flags", GS_PLUGIN_REFINE_FLAGS_REQUIRE_ICON |
-                                                        GS_PLUGIN_REFINE_FLAGS_REQUIRE_VERSION |
-                                                        GS_PLUGIN_REFINE_FLAGS_REQUIRE_HISTORY |
-                                                        GS_PLUGIN_REFINE_FLAGS_REQUIRE_SETUP_ACTION |
-                                                        GS_PLUGIN_REFINE_FLAGS_REQUIRE_REVIEW_RATINGS |
-                                                        GS_PLUGIN_REFINE_FLAGS_REQUIRE_DESCRIPTION |
-                                                        GS_PLUGIN_REFINE_FLAGS_REQUIRE_LICENSE |
-                                                        GS_PLUGIN_REFINE_FLAGS_REQUIRE_PERMISSIONS |
-                                                        GS_PLUGIN_REFINE_FLAGS_REQUIRE_RATING,
-                                        "dedupe-flags", GS_APP_LIST_FILTER_FLAG_PREFER_INSTALLED |
-                                                        GS_APP_LIST_FILTER_FLAG_KEY_ID_PROVIDES,
-                                        NULL);
-       gs_plugin_job_set_sort_func (plugin_job, gs_search_page_sort_cb, self);
+
+       keywords[0] = self->value;
+       query = gs_app_query_new ("keywords", keywords,
+                                 "refine-flags", GS_PLUGIN_REFINE_FLAGS_REQUIRE_ICON |
+                                                 GS_PLUGIN_REFINE_FLAGS_REQUIRE_VERSION |
+                                                 GS_PLUGIN_REFINE_FLAGS_REQUIRE_HISTORY |
+                                                 GS_PLUGIN_REFINE_FLAGS_REQUIRE_SETUP_ACTION |
+                                                 GS_PLUGIN_REFINE_FLAGS_REQUIRE_REVIEW_RATINGS |
+                                                 GS_PLUGIN_REFINE_FLAGS_REQUIRE_DESCRIPTION |
+                                                 GS_PLUGIN_REFINE_FLAGS_REQUIRE_LICENSE |
+                                                 GS_PLUGIN_REFINE_FLAGS_REQUIRE_PERMISSIONS |
+                                                 GS_PLUGIN_REFINE_FLAGS_REQUIRE_RATING,
+                                 "dedupe-flags", GS_APP_LIST_FILTER_FLAG_PREFER_INSTALLED |
+                                                 GS_APP_LIST_FILTER_FLAG_KEY_ID_PROVIDES,
+                                 "max-results", self->max_results,
+                                 "sort-func", gs_search_page_sort_cb,
+                                 "sort-user-data", self,
+                                 NULL);
+       plugin_job = gs_plugin_job_list_apps_new (query, GS_PLUGIN_LIST_APPS_FLAGS_NONE);
        gs_plugin_loader_job_process_async (self->plugin_loader, plugin_job,
                                            self->search_cancellable,
                                            gs_search_page_get_search_cb,


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