[banshee] [Collection.Database] Add ability to get selection aggregate info
- From: Gabriel Burt <gburt src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [banshee] [Collection.Database] Add ability to get selection aggregate info
- Date: Tue, 26 Oct 2010 23:30:26 +0000 (UTC)
commit a7c1a582c29a95e5de07fe3b73ad30a514e2c56d
Author: Gabriel Burt <gabriel burt gmail com>
Date: Tue Oct 26 17:47:25 2010 -0500
[Collection.Database] Add ability to get selection aggregate info
.../DatabaseTrackListModel.cs | 18 +++++++++++++++---
.../IDatabaseTrackModelCache.cs | 1 +
src/Hyena | 2 +-
3 files changed, 17 insertions(+), 4 deletions(-)
---
diff --git a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs
index cc9284e..afbdf6a 100644
--- a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs
+++ b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackListModel.cs
@@ -78,8 +78,18 @@ namespace Banshee.Collection.Database
this.connection = connection;
this.provider = provider;
this.source = source;
+
+ SelectAggregates = "SUM(CoreTracks.Duration), SUM(CoreTracks.FileSize)";
+
+ Selection.Changed += delegate {
+ if (SelectionAggregatesHandler != null) {
+ cache.UpdateSelectionAggregates (SelectionAggregatesHandler);
+ }
+ };
}
+ protected Action<IDataReader> SelectionAggregatesHandler { get; set; }
+
protected HyenaSqliteConnection Connection {
get { return connection; }
}
@@ -294,6 +304,10 @@ namespace Banshee.Collection.Database
cache.UpdateAggregates ();
cache.RestoreSelection ();
+ if (SelectionAggregatesHandler != null) {
+ cache.UpdateSelectionAggregates (SelectionAggregatesHandler);
+ }
+
filtered_count = cache.Count;
OnReloaded ();
@@ -566,9 +580,7 @@ namespace Banshee.Collection.Database
get { return RowsInView > 0 ? RowsInView * 5 : 100; }
}
- public string SelectAggregates {
- get { return "SUM(CoreTracks.Duration), SUM(CoreTracks.FileSize)"; }
- }
+ public string SelectAggregates { get; protected set; }
// Implement IDatabaseModel
public string ReloadFragment {
diff --git a/src/Core/Banshee.Services/Banshee.Collection.Database/IDatabaseTrackModelCache.cs b/src/Core/Banshee.Services/Banshee.Collection.Database/IDatabaseTrackModelCache.cs
index 69b66f1..9f89bdf 100644
--- a/src/Core/Banshee.Services/Banshee.Collection.Database/IDatabaseTrackModelCache.cs
+++ b/src/Core/Banshee.Services/Banshee.Collection.Database/IDatabaseTrackModelCache.cs
@@ -39,6 +39,7 @@ namespace Banshee.Collection.Database
void Clear ();
void SaveSelection ();
void UpdateAggregates ();
+ void UpdateSelectionAggregates (Action<IDataReader> handler);
void RestoreSelection ();
long Count { get; }
void Reload ();
diff --git a/src/Hyena b/src/Hyena
index 4535f30..7b7cd86 160000
--- a/src/Hyena
+++ b/src/Hyena
@@ -1 +1 @@
-Subproject commit 4535f30c4176d6dd102b66761a33082a9fe6303d
+Subproject commit 7b7cd8674f284ad2d2e288bff2231c7134ef8915
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]