[tracker/direct-wait: 1/3] tracker-store: Small busy callback improvements



commit 765227e4ff700ab1d9031efd9712f5d9c2b1224f
Author: Jürg Billeter <j bitron ch>
Date:   Mon Aug 23 17:22:36 2010 +0200

    tracker-store: Small busy callback improvements

 src/libtracker-data/tracker-data-manager.c |    4 +++
 src/tracker-store/tracker-status.c         |   41 ++++-----------------------
 2 files changed, 10 insertions(+), 35 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c
index d8359b3..b5ca294 100644
--- a/src/libtracker-data/tracker-data-manager.c
+++ b/src/libtracker-data/tracker-data-manager.c
@@ -3053,6 +3053,10 @@ tracker_data_manager_init (TrackerDBManagerFlags  flags,
 
 	g_free (ontologies_dir);
 
+	if (busy_callback) {
+		busy_callback ("Idle", 1, busy_user_data);
+	}
+
 	return TRUE;
 }
 
diff --git a/src/tracker-store/tracker-status.c b/src/tracker-store/tracker-status.c
index 6db83e0..a8c07f7 100644
--- a/src/tracker-store/tracker-status.c
+++ b/src/tracker-store/tracker-status.c
@@ -39,7 +39,6 @@ typedef struct {
 	gchar *status;
 	guint timer_id;
 	TrackerStatus *object;
-	gboolean last;
 } TrackerStatusPrivate;
 
 enum {
@@ -112,7 +111,7 @@ tracker_status_init (TrackerStatus *object)
 
 	priv->object = object;
 	priv->timer_id = 0;
-	priv->progress = 1;
+	priv->progress = 0;
 	priv->status = g_strdup ("Idle");
 }
 
@@ -125,34 +124,10 @@ busy_notification_timeout (gpointer user_data)
 	               priv->status,
 	               priv->progress);
 
-	priv->last = TRUE;
-
 	return FALSE;
 }
 
 static void
-busy_notification_destroy (gpointer user_data)
-{
-	TrackerStatusPrivate *priv = user_data;
-
-	if (priv->last) {
-		g_free (priv->status);
-		priv->status = g_strdup ("Idle");
-	}
-
-	priv->progress = 1;
-	priv->timer_id = 0;
-}
-
-static void
-busy_notification_idle_destroy (gpointer user_data)
-{
-	TrackerStatusPrivate *priv = user_data;
-
-	priv->timer_id = 0;
-}
-
-static void
 tracker_status_callback (const gchar *status,
                          gdouble progress,
                          gpointer user_data)
@@ -161,7 +136,6 @@ tracker_status_callback (const gchar *status,
 	TrackerStatusPrivate *priv = user_data;
 
 	priv->progress = progress;
-	priv->last = FALSE;
 
 	if (g_strcmp0 (status, priv->status) != 0) {
 		g_free (priv->status);
@@ -170,16 +144,13 @@ tracker_status_callback (const gchar *status,
 
 	if (priv->timer_id == 0) {
 		if (first_time) {
-			priv->timer_id = g_idle_add_full (G_PRIORITY_DEFAULT,
-			                                  busy_notification_timeout,
-			                                  priv,
-			                                  busy_notification_idle_destroy);
+			priv->timer_id = g_idle_add (busy_notification_timeout,
+			                             priv);
 			first_time = FALSE;
 		} else {
-			priv->timer_id = g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, PROGRESS_TIMEOUT_S,
-			                                             busy_notification_timeout,
-			                                             priv,
-			                                             busy_notification_destroy);
+			priv->timer_id = g_timeout_add_seconds (PROGRESS_TIMEOUT_S,
+			                                        busy_notification_timeout,
+			                                        priv);
 		}
 	}
 



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