[rhythmbox] track-transfer-batch: don't emit track-done for skipped tracks



commit e31c77c5ed593ac2011d7640ac7f57e2ea8a6caa
Author: Jonathan Matthew <jonathan d14n org>
Date:   Sun Feb 26 12:28:47 2012 +1000

    track-transfer-batch: don't emit track-done for skipped tracks

 shell/rb-track-transfer-batch.c |   25 ++++++++++++++++---------
 sources/rb-transfer-target.c    |    2 +-
 2 files changed, 17 insertions(+), 10 deletions(-)
---
diff --git a/shell/rb-track-transfer-batch.c b/shell/rb-track-transfer-batch.c
index 45fdc23..ecc09ff 100644
--- a/shell/rb-track-transfer-batch.c
+++ b/shell/rb-track-transfer-batch.c
@@ -71,7 +71,11 @@ static void	rb_track_transfer_batch_init (RBTrackTransferBatch *batch);
 
 static gboolean start_next (RBTrackTransferBatch *batch);
 static void start_encoding (RBTrackTransferBatch *batch, gboolean overwrite);
-static void track_transfer_completed (RBTrackTransferBatch *batch, guint64 dest_size, const char *mediatype, GError *error);
+static void track_transfer_completed (RBTrackTransferBatch *batch,
+				      guint64 dest_size,
+				      const char *mediatype,
+				      gboolean skipped,
+				      GError *error);
 
 static guint	signals[LAST_SIGNAL] = { 0 };
 
@@ -423,7 +427,7 @@ _rb_track_transfer_batch_continue (RBTrackTransferBatch *batch, gboolean overwri
 	if (overwrite) {
 		start_encoding (batch, TRUE);
 	} else {
-		track_transfer_completed (batch, 0, NULL, NULL);
+		track_transfer_completed (batch, 0, NULL, TRUE, NULL);
 	}
 }
 
@@ -458,6 +462,7 @@ static void
 track_transfer_completed (RBTrackTransferBatch *batch,
 			  guint64 dest_size,
 			  const char *mediatype,
+			  gboolean skipped,
 			  GError *error)
 {
 	RhythmDBEntry *entry;
@@ -476,12 +481,14 @@ track_transfer_completed (RBTrackTransferBatch *batch,
 		 * possible that a signal handler will cancel us.
 		 */
 		g_object_ref (batch);
-		g_signal_emit (batch, signals[TRACK_DONE], 0,
-			       entry,
-			       batch->priv->current_dest_uri,
-			       dest_size,
-			       mediatype,
-			       error);
+		if (skipped == FALSE) {
+			g_signal_emit (batch, signals[TRACK_DONE], 0,
+				       entry,
+				       batch->priv->current_dest_uri,
+				       dest_size,
+				       mediatype,
+				       error);
+		}
 
 		start_next (batch);
 
@@ -510,7 +517,7 @@ encoder_completed_cb (RBEncoder *encoder,
 		rb_debug ("encoder finished (error: %s)", error->message);
 	}
 
-	track_transfer_completed (batch, dest_size, mediatype, error);
+	track_transfer_completed (batch, dest_size, mediatype, FALSE, error);
 }
 
 static char *
diff --git a/sources/rb-transfer-target.c b/sources/rb-transfer-target.c
index 985312e..e2631c8 100644
--- a/sources/rb-transfer-target.c
+++ b/sources/rb-transfer-target.c
@@ -367,7 +367,7 @@ track_done_cb (RBTrackTransferBatch *batch,
 			rb_track_transfer_batch_cancel (batch);
 		}
 		rb_transfer_target_track_add_error (target, entry, dest, error);
-	} else if (dest_size != 0) {
+	} else {
 		rb_transfer_target_track_added (target, entry, dest, dest_size, dest_mediatype);
 	}
 }



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