[gnome-software/wip/async-plugin-repo-funcs: 6/26] gs-page: Replace GS_PLUGIN_ACTION_INSTALL_REPO job with manage repository job




commit 264d38e1e80e5618e416fbd1a45085aa646188f5
Author: Milan Crha <mcrha redhat com>
Date:   Tue Jun 14 12:23:36 2022 +0200

    gs-page: Replace GS_PLUGIN_ACTION_INSTALL_REPO job with manage repository job

 src/gs-page.c | 25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)
---
diff --git a/src/gs-page.c b/src/gs-page.c
index 71e929612..e14da6848 100644
--- a/src/gs-page.c
+++ b/src/gs-page.c
@@ -278,21 +278,28 @@ gs_page_install_app (GsPage *page,
        }
 
        helper = g_slice_new0 (GsPageHelper);
-       if (gs_app_get_kind (app) == AS_COMPONENT_KIND_REPOSITORY)
-               helper->action = GS_PLUGIN_ACTION_INSTALL_REPO;
-       else
-               helper->action = GS_PLUGIN_ACTION_INSTALL;
        helper->app = g_object_ref (app);
        helper->page = g_object_ref (page);
        helper->cancellable = g_object_ref (cancellable);
        helper->interaction = interaction;
        helper->propagate_error = TRUE;
 
-       plugin_job = gs_plugin_job_newv (helper->action,
-                                        "interactive", (interaction == GS_SHELL_INTERACTION_FULL),
-                                        "propagate-error", helper->propagate_error,
-                                        "app", helper->app,
-                                        NULL);
+       if (gs_app_get_kind (app) == AS_COMPONENT_KIND_REPOSITORY) {
+               helper->action = GS_PLUGIN_ACTION_INSTALL_REPO;
+               plugin_job = gs_plugin_job_manage_repository_new (helper->app,
+                                                                 GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_INSTALL |
+                                                                 ((interaction == GS_SHELL_INTERACTION_FULL) 
?
+                                                                  
GS_PLUGIN_MANAGE_REPOSITORY_FLAGS_INTERACTIVE : 0));
+               gs_plugin_job_set_propagate_error (plugin_job, helper->propagate_error);
+       } else {
+               helper->action = GS_PLUGIN_ACTION_INSTALL;
+               plugin_job = gs_plugin_job_newv (helper->action,
+                                                "interactive", (interaction == GS_SHELL_INTERACTION_FULL),
+                                                "propagate-error", helper->propagate_error,
+                                                "app", helper->app,
+                                                NULL);
+       }
+
        gs_plugin_loader_job_process_async (priv->plugin_loader,
                                            plugin_job,
                                            helper->cancellable,


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