[banshee] CoverArtService: Prune CoverArtDownloads table when removing tracks
- From: Bertrand Lorentz <blorentz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [banshee] CoverArtService: Prune CoverArtDownloads table when removing tracks
- Date: Sun, 9 Oct 2011 14:59:39 +0000 (UTC)
commit 9731c722117dd8e58e3dc2da5065773df3915973
Author: Age Bosma <agebosma gmail com>
Date: Thu Oct 6 18:53:11 2011 +0200
CoverArtService: Prune CoverArtDownloads table when removing tracks
This makes sure the content of the CoverArtDownloads stays in sync when
an album is removed. Fixes bgo#658803.
Signed-off-by: Bertrand Lorentz <bertrand lorentz gmail com>
.../Banshee.CoverArt/CoverArtService.cs | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
---
diff --git a/src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtService.cs b/src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtService.cs
index e0cedcc..e57091d 100644
--- a/src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtService.cs
+++ b/src/Extensions/Banshee.CoverArt/Banshee.CoverArt/CoverArtService.cs
@@ -33,6 +33,7 @@ using Gtk;
using Mono.Unix;
using Hyena;
+using Hyena.Data.Sqlite;
using Banshee.Base;
using Banshee.Collection;
@@ -96,6 +97,7 @@ namespace Banshee.CoverArt
{
ServiceManager.SourceManager.MusicLibrary.TracksAdded += OnTracksAdded;
ServiceManager.SourceManager.MusicLibrary.TracksChanged += OnTracksChanged;
+ ServiceManager.SourceManager.MusicLibrary.TracksDeleted += OnTracksDeleted;
FetchCoverArt ();
}
@@ -107,6 +109,7 @@ namespace Banshee.CoverArt
ServiceManager.SourceManager.MusicLibrary.TracksAdded -= OnTracksAdded;
ServiceManager.SourceManager.MusicLibrary.TracksChanged -= OnTracksChanged;
+ ServiceManager.SourceManager.MusicLibrary.TracksDeleted -= OnTracksDeleted;
disposed = true;
}
@@ -168,6 +171,14 @@ namespace Banshee.CoverArt
}
}
+ private static HyenaSqliteCommand delete_query = new HyenaSqliteCommand (
+ "DELETE FROM CoverArtDownloads WHERE AlbumID NOT IN (SELECT AlbumID FROM CoreAlbums)");
+
+ private void OnTracksDeleted (Source sender, TrackEventArgs args)
+ {
+ ServiceManager.DbConnection.Execute (delete_query);
+ }
+
string IService.ServiceName {
get { return "CoverArtService"; }
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]