[gnome-software] Simplify progress marshalling code
- From: Kalev Lember <klember src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software] Simplify progress marshalling code
- Date: Mon, 3 Aug 2015 10:52:43 +0000 (UTC)
commit 0d4cbdaffd6d2c3393c5d8c22bce96ec0526ea3d
Author: Kalev Lember <klember redhat com>
Date: Mon Aug 3 12:12:46 2015 +0200
Simplify progress marshalling code
No need to go through GsPluginLoader and GsPage any more now that we
keep track of the associated GsApp in the packagekit plugin.
src/gs-page.c | 20 --------------------
src/gs-plugin-loader.c | 29 -----------------------------
src/gs-plugin-loader.h | 3 ---
src/gs-plugin.c | 15 ++++++---------
src/gs-plugin.h | 6 ------
5 files changed, 6 insertions(+), 67 deletions(-)
---
diff --git a/src/gs-page.c b/src/gs-page.c
index 8f2529a..0a1917f 100644
--- a/src/gs-page.c
+++ b/src/gs-page.c
@@ -43,7 +43,6 @@ G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GsPage, gs_page, GTK_TYPE_BIN)
typedef struct {
GsApp *app;
GsPage *page;
- guint progress_id;
} InstallRemoveData;
static void
@@ -68,9 +67,6 @@ gs_page_app_installed_cb (GObject *source,
gboolean ret;
_cleanup_error_free_ GError *error = NULL;
- /* no longer update this application */
- g_signal_handler_disconnect (plugin_loader, data->progress_id);
-
ret = gs_plugin_loader_app_action_finish (plugin_loader,
res,
&error);
@@ -125,18 +121,6 @@ gs_page_app_removed_cb (GObject *source,
install_remove_data_free (data);
}
-static void
-gs_page_app_progress_changed_cb (GsPluginLoader *loader,
- GsApp *app,
- guint percentage,
- InstallRemoveData *data)
-{
- /* some plugins can't map the progress to a specific package */
- if (app == NULL)
- app = data->app;
- gs_app_set_progress (app, percentage);
-}
-
void
gs_page_install_app (GsPage *page, GsApp *app)
{
@@ -154,10 +138,6 @@ gs_page_install_app (GsPage *page, GsApp *app)
data = g_slice_new0 (InstallRemoveData);
data->app = g_object_ref (app);
data->page = g_object_ref (page);
- data->progress_id =
- g_signal_connect (priv->plugin_loader, "progress-changed",
- G_CALLBACK (gs_page_app_progress_changed_cb),
- data);
gs_plugin_loader_app_action_async (priv->plugin_loader,
app,
GS_PLUGIN_LOADER_ACTION_INSTALL,
diff --git a/src/gs-plugin-loader.c b/src/gs-plugin-loader.c
index bd253c4..a30a199 100644
--- a/src/gs-plugin-loader.c
+++ b/src/gs-plugin-loader.c
@@ -56,7 +56,6 @@ G_DEFINE_TYPE_WITH_PRIVATE (GsPluginLoader, gs_plugin_loader, G_TYPE_OBJECT)
enum {
SIGNAL_STATUS_CHANGED,
- SIGNAL_PROGRESS_CHANGED,
SIGNAL_PENDING_APPS_CHANGED,
SIGNAL_UPDATES_CHANGED,
SIGNAL_LAST
@@ -2731,26 +2730,6 @@ gs_plugin_loader_status_update_cb (GsPlugin *plugin,
}
/**
- * gs_plugin_loader_progress_update_cb:
- */
-static void
-gs_plugin_loader_progress_update_cb (GsPlugin *plugin,
- GsApp *app,
- guint percentage,
- gpointer user_data)
-{
- GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (user_data);
-
- /* new, or an app, so emit */
- g_debug ("emitting %i%%(%s)",
- percentage,
- app != NULL ? gs_app_get_id (app) : "<general>");
- g_signal_emit (plugin_loader,
- signals[SIGNAL_PROGRESS_CHANGED],
- 0, app, percentage);
-}
-
-/**
* gs_plugin_loader_updates_changed_delay_cb:
*/
static gboolean
@@ -2841,8 +2820,6 @@ gs_plugin_loader_open_plugin (GsPluginLoader *plugin_loader,
plugin->name = g_strdup (plugin_name ());
plugin->status_update_fn = gs_plugin_loader_status_update_cb;
plugin->status_update_user_data = plugin_loader;
- plugin->progress_update_fn = gs_plugin_loader_progress_update_cb;
- plugin->progress_update_user_data = plugin_loader;
plugin->updates_changed_fn = gs_plugin_loader_updates_changed_cb;
plugin->updates_changed_user_data = plugin_loader;
plugin->profile = g_object_ref (plugin_loader->priv->profile);
@@ -3137,12 +3114,6 @@ gs_plugin_loader_class_init (GsPluginLoaderClass *klass)
G_STRUCT_OFFSET (GsPluginLoaderClass, status_changed),
NULL, NULL, g_cclosure_marshal_generic,
G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_UINT);
- signals [SIGNAL_PROGRESS_CHANGED] =
- g_signal_new ("progress-changed",
- G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GsPluginLoaderClass, progress_changed),
- NULL, NULL, g_cclosure_marshal_generic,
- G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_UINT);
signals [SIGNAL_PENDING_APPS_CHANGED] =
g_signal_new ("pending-apps-changed",
G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
diff --git a/src/gs-plugin-loader.h b/src/gs-plugin-loader.h
index 3744e49..de24cda 100644
--- a/src/gs-plugin-loader.h
+++ b/src/gs-plugin-loader.h
@@ -52,9 +52,6 @@ typedef struct
void (*status_changed) (GsPluginLoader *plugin_loader,
GsApp *app,
GsPluginStatus status);
- void (*progress_changed) (GsPluginLoader *plugin_loader,
- GsApp *app,
- guint percentage);
void (*pending_apps_changed) (GsPluginLoader *plugin_loader);
void (*updates_changed) (GsPluginLoader *plugin_loader);
} GsPluginLoaderClass;
diff --git a/src/gs-plugin.c b/src/gs-plugin.c
index 0f7a17b..3361de9 100644
--- a/src/gs-plugin.c
+++ b/src/gs-plugin.c
@@ -280,13 +280,8 @@ gs_plugin_progress_update_cb (gpointer user_data)
{
GsPluginStatusHelper *helper = (GsPluginStatusHelper *) user_data;
- /* call back into the loader */
- helper->plugin->progress_update_fn (helper->plugin,
- helper->app,
- helper->percentage,
- helper->plugin->progress_update_user_data);
- if (helper->app != NULL)
- g_object_unref (helper->app);
+ gs_app_set_progress (helper->app, helper->percentage);
+ g_object_unref (helper->app);
g_slice_free (GsPluginStatusHelper, helper);
return FALSE;
}
@@ -299,11 +294,13 @@ gs_plugin_progress_update (GsPlugin *plugin, GsApp *app, guint percentage)
{
GsPluginStatusHelper *helper;
+ if (app == NULL)
+ return;
+
helper = g_slice_new0 (GsPluginStatusHelper);
helper->plugin = plugin;
helper->percentage = percentage;
- if (app != NULL)
- helper->app = g_object_ref (app);
+ helper->app = g_object_ref (app);
g_idle_add (gs_plugin_progress_update_cb, helper);
}
diff --git a/src/gs-plugin.h b/src/gs-plugin.h
index c0bba4d..857c637 100644
--- a/src/gs-plugin.h
+++ b/src/gs-plugin.h
@@ -52,10 +52,6 @@ typedef void (*GsPluginStatusUpdate) (GsPlugin *plugin,
GsApp *app,
GsPluginStatus status,
gpointer user_data);
-typedef void (*GsPluginProgressUpdate) (GsPlugin *plugin,
- GsApp *app,
- guint percentage,
- gpointer user_data);
typedef void (*GsPluginUpdatesChanged) (GsPlugin *plugin,
gpointer user_data);
@@ -74,8 +70,6 @@ struct GsPlugin {
gint scale;
GsPluginStatusUpdate status_update_fn;
gpointer status_update_user_data;
- GsPluginProgressUpdate progress_update_fn;
- gpointer progress_update_user_data;
GsPluginUpdatesChanged updates_changed_fn;
gpointer updates_changed_user_data;
GsProfile *profile;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]