[gnome-packagekit/glib2: 45/79] moo



commit 22bd137cad1e28571738668a3caff841966733a9
Author: Richard Hughes <richard hughsie com>
Date:   Sat Sep 26 13:13:19 2009 +0100

    moo

 src/gpk-check-update.c |   18 +++++++++++-------
 1 files changed, 11 insertions(+), 7 deletions(-)
---
diff --git a/src/gpk-check-update.c b/src/gpk-check-update.c
index 50a6f23..8325acd 100644
--- a/src/gpk-check-update.c
+++ b/src/gpk-check-update.c
@@ -1027,16 +1027,14 @@ out:
  * gpk_check_update_get_active_roles:
  **/
 static PkBitfield
-gpk_check_update_get_active_roles (GpkCheckUpdate *cupdate)
+gpk_check_update_get_active_roles (GpkCheckUpdate *cupdate, gchar **tids)
 {
 	PkRoleEnum role;
 	PkBitfield roles = 0;
-	gchar **tids;
 	guint i;
 	PkProgress *progress;
 	GError *error = NULL;
 
-	tids = pk_transaction_list_get_ids (cupdate->priv->tlist);
 	for (i=0; tids[i] != NULL; i++) {
 		/* get progress */
 		progress = pk_client_get_progress (PK_CLIENT(cupdate->priv->task), tids[i], cupdate->priv->cancellable, &error);
@@ -1063,10 +1061,12 @@ static void
 gpk_check_update_query_updates (GpkCheckUpdate *cupdate)
 {
 	PkBitfield roles;
+	gchar **tids;
 	g_return_if_fail (GPK_IS_CHECK_UPDATE (cupdate));
 
 	/* No point if we are already updating */
-	roles = gpk_check_update_get_active_roles (cupdate);
+	tids = pk_transaction_list_get_ids (cupdate->priv->tlist);
+	roles = gpk_check_update_get_active_roles (cupdate, tids);
 	if (pk_bitfield_contain (roles, PK_ROLE_ENUM_UPDATE_PACKAGES) ||
 	    pk_bitfield_contain (roles, PK_ROLE_ENUM_UPDATE_SYSTEM)) {
 		egg_debug ("Not checking for updates as already in progress");
@@ -1077,6 +1077,7 @@ gpk_check_update_query_updates (GpkCheckUpdate *cupdate)
 	pk_client_get_updates_async (PK_CLIENT(cupdate->priv->task), PK_FILTER_ENUM_NONE, cupdate->priv->cancellable, NULL, NULL,
 				     (GAsyncReadyCallback) gpk_check_update_get_updates_finished_cb, cupdate);
 out:
+	g_strfreev (tids);
 	return;
 }
 
@@ -1148,13 +1149,13 @@ gpk_check_update_restart_schedule_cb (PkClient *client, GpkCheckUpdate *cupdate)
  * gpk_check_update_transaction_list_changed_cb:
  **/
 static void
-gpk_check_update_transaction_list_changed_cb (PkControl *control, GpkCheckUpdate *cupdate)
+gpk_check_update_transaction_list_changed_cb (PkControl *control, gchar **transaction_ids, GpkCheckUpdate *cupdate)
 {
 	PkBitfield roles;
 	g_return_if_fail (GPK_IS_CHECK_UPDATE (cupdate));
 
 	/* inhibit icon if we are updating */
-	roles = gpk_check_update_get_active_roles (cupdate);
+	roles = gpk_check_update_get_active_roles (cupdate, transaction_ids);
 	cupdate->priv->icon_inhibit_update_in_progress =
 		(pk_bitfield_contain (roles, PK_ROLE_ENUM_UPDATE_SYSTEM) ||
 		 pk_bitfield_contain (roles, PK_ROLE_ENUM_UPDATE_PACKAGES));
@@ -1400,6 +1401,7 @@ gpk_check_update_init (GpkCheckUpdate *cupdate)
 {
 	gboolean ret;
 	PkBitfield roles;
+	gchar **tids;
 
 	cupdate->priv = GPK_CHECK_UPDATE_GET_PRIVATE (cupdate);
 
@@ -1457,7 +1459,9 @@ gpk_check_update_init (GpkCheckUpdate *cupdate)
 	/* we need the task list so we can hide the update icon when we are doing the update */
 	cupdate->priv->tlist = pk_transaction_list_new ();
 
-	roles = gpk_check_update_get_active_roles (cupdate);
+	tids = pk_transaction_list_get_ids (cupdate->priv->tlist);
+	roles = gpk_check_update_get_active_roles (cupdate, tids);
+	g_strfreev (tids);
 	/* coldplug update in progress */
 	cupdate->priv->icon_inhibit_update_in_progress =
 		(pk_bitfield_contain (roles, PK_ROLE_ENUM_UPDATE_SYSTEM) ||



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