Hi there,

This path will make it more easy later to support things like GetState
and StateChanged (which has a percentage value, for example).

-- 
Philip Van Hoof, freelance software developer
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
http://pvanhoof.be/blog
http://codeminded.be



Index: src/trackerd/tracker-email-modest.c
===================================================================
--- src/trackerd/tracker-email-modest.c	(revision 1267)
+++ src/trackerd/tracker-email-modest.c	(working copy)
@@ -911,9 +911,8 @@
 				email_free_mail_message (mail_msg);
 
 				if (!tracker_cache_process_events (db_con->data, TRUE)) {
-					tracker->status = STATUS_SHUTDOWN;
+					tracker_set_status (tracker, STATUS_SHUTDOWN, 0, TRUE);
 					tracker->shutdown = TRUE;
-					tracker_dbus_send_index_status_change_signal ();
 					return;
 				}
 
Index: src/trackerd/tracker-utils.c
===================================================================
--- src/trackerd/tracker-utils.c	(revision 1267)
+++ src/trackerd/tracker-utils.c	(working copy)
@@ -2621,8 +2621,17 @@
 
 }
 
+void
+tracker_set_status (Tracker *tracker, TrackerStatus status, gdouble percentage, gboolean signal)
+{
+	TrackerStatus old = tracker->status;
 
+	tracker->status = status;
 
+	if (signal && old != status)
+		tracker_dbus_send_index_status_change_signal ();
+}
+
 gboolean
 tracker_pause (void)
 {
Index: src/trackerd/tracker-utils.h
===================================================================
--- src/trackerd/tracker-utils.h	(revision 1267)
+++ src/trackerd/tracker-utils.h	(working copy)
@@ -539,4 +539,6 @@
 gboolean	tracker_low_diskspace		(void);
 gboolean	tracker_pause			(void);
 
+void		tracker_set_status		(Tracker *tracker, TrackerStatus status, gdouble percentage, gboolean signal);
+
 #endif
Index: src/trackerd/trackerd.c
===================================================================
--- src/trackerd/trackerd.c	(revision 1267)
+++ src/trackerd/trackerd.c	(working copy)
@@ -204,7 +204,7 @@
 {
         GSList *black_list;
 
-	tracker->status = STATUS_SHUTDOWN;
+	tracker_set_status (tracker, STATUS_SHUTDOWN, 0, FALSE);
 
 	if (sig_msg) {
 		tracker_log ("Received signal '%s' so now shutting down", sig_msg);
@@ -737,7 +737,7 @@
 
 	add_local_dbus_connection_monitoring (tracker->dbus_con);
 
-	tracker->status = STATUS_INIT;
+	tracker_set_status (tracker, STATUS_INIT, 0, FALSE);
 
  	tracker->is_running = FALSE;
 	tracker->shutdown = FALSE;
Index: src/trackerd/tracker-email-evolution.c
===================================================================
--- src/trackerd/tracker-email-evolution.c	(revision 1267)
+++ src/trackerd/tracker-email-evolution.c	(working copy)
@@ -1418,9 +1418,8 @@
 				email_free_mail_message (mail_msg);
 
 				if (!tracker_cache_process_events (db_con->data, TRUE)) {
-					tracker->status = STATUS_SHUTDOWN;
+					tracker_set_status (tracker, STATUS_SHUTDOWN, 0, TRUE);
 					tracker->shutdown = TRUE;
-					tracker_dbus_send_index_status_change_signal ();
 					return;
 				}
 
Index: src/trackerd/tracker-process-files.c
===================================================================
--- src/trackerd/tracker-process-files.c	(revision 1267)
+++ src/trackerd/tracker-process-files.c	(working copy)
@@ -1143,7 +1143,7 @@
         tracker->index_status = INDEX_FINISHED;
         
         if (tracker->is_running && tracker->first_time_index) {
-                tracker->status = STATUS_OPTIMIZING;
+                tracker_set_status (tracker, STATUS_OPTIMIZING, 0, FALSE);
                 tracker->do_optimize = FALSE;
                 
                 tracker->first_time_index = FALSE;
@@ -1170,8 +1170,7 @@
          * sleep until awoken by a new
          * signal.
          */
-        tracker->status = STATUS_IDLE;
-        tracker_dbus_send_index_status_change_signal ();
+        tracker_set_status (tracker, STATUS_IDLE, 0, TRUE);
         
         g_cond_wait (tracker->file_thread_signal, 
                      tracker->files_signal_mutex);
@@ -1493,16 +1492,12 @@
 		db_con = tracker->index_db;
 
 		if (!tracker_cache_process_events (tracker->index_db, TRUE) ) {
-			tracker->status = STATUS_SHUTDOWN;
-			tracker_dbus_send_index_status_change_signal ();
+			tracker_set_status (tracker, STATUS_SHUTDOWN, 0, TRUE);
 			break;	
 		}
 
-		if (tracker->status != STATUS_INDEXING) {
-			tracker->status = STATUS_INDEXING;
-			tracker_dbus_send_index_status_change_signal ();
-		}
-						
+		tracker_set_status (tracker, STATUS_INDEXING, 0, TRUE);
+
 		info = g_async_queue_try_pop (tracker->file_process_queue);
 
 		/* Check pending table if we haven't got anything */
@@ -1535,7 +1530,7 @@
 			if (res) {
 				gchar **row;
 
-				tracker->status = STATUS_PENDING;
+				tracker_set_status (tracker, STATUS_PENDING, 0, FALSE);
 
 				while ((row = tracker_db_get_row (res, k))) {
 					FileInfo	    *info_tmp;
@@ -1576,7 +1571,7 @@
 			continue;
 		}
 
-		tracker->status = STATUS_INDEXING;
+		tracker_set_status (tracker, STATUS_INDEXING, 0, TRUE);
 
                 if (process_action_prechecks (tracker, info)) {
                         continue;
Index: src/trackerd/tracker-indexer.c
===================================================================
--- src/trackerd/tracker-indexer.c	(revision 1267)
+++ src/trackerd/tracker-indexer.c	(working copy)
@@ -690,8 +690,7 @@
 
 				if (i > 101 && (i % 100 == 0)) {
 					if (!tracker_cache_process_events (NULL, FALSE)) {
-						tracker->status = STATUS_SHUTDOWN;
-						tracker_dbus_send_index_status_change_signal ();
+						tracker_set_status (tracker, STATUS_SHUTDOWN, 0, TRUE);
 						return;	
 					}
 				}
_______________________________________________
tracker-list mailing list
tracker-list@gnome.org
http://mail.gnome.org/mailman/listinfo/tracker-list

Reply via email to