[banshee] [ThickClient] Ensure track filter actions updated (bgo#635426)
- From: Gabriel Burt <gburt src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [banshee] [ThickClient] Ensure track filter actions updated (bgo#635426)
- Date: Tue, 23 Nov 2010 21:36:10 +0000 (UTC)
commit 7c0acbfaa61d15dc483b792a0d2c93e12b8250a5
Author: Gabriel Burt <gabriel burt gmail com>
Date: Tue Nov 23 15:31:15 2010 -0600
[ThickClient] Ensure track filter actions updated (bgo#635426)
We weren't updating the track actions when the track model changed
(which it does when you right click an album, say). The effect of this
was the remove/delete confirmation dialog's track count wouldn't get
updated.
.../Banshee.Gui/TrackActions.cs | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
---
diff --git a/src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs b/src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs
index 0f87b90..2eafd49 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs
@@ -185,6 +185,7 @@ namespace Banshee.Gui
FilterFocused = false;
if (current_source != null && current_source.TrackModel != null) {
+ current_source.TrackModel.Reloaded -= OnReloaded;
current_source.TrackModel.Selection.Changed -= HandleSelectionChanged;
current_source = null;
}
@@ -192,6 +193,7 @@ namespace Banshee.Gui
ITrackModelSource new_source = ActiveSource as ITrackModelSource;
if (new_source != null) {
new_source.TrackModel.Selection.Changed += HandleSelectionChanged;
+ new_source.TrackModel.Reloaded += OnReloaded;
current_source = new_source;
Selection = new_source.TrackModel.Selection;
}
@@ -199,6 +201,13 @@ namespace Banshee.Gui
ThreadAssist.ProxyToMain (UpdateActions);
}
+ private void OnReloaded (object sender, EventArgs args)
+ {
+ ThreadAssist.ProxyToMain (delegate {
+ UpdateActions ();
+ });
+ }
+
private void HandleActionsChanged (object sender, EventArgs args)
{
if (Actions.UIManager.GetAction ("/MainMenu/EditMenu") != null) {
@@ -269,6 +278,7 @@ namespace Banshee.Gui
if (FilterFocused) {
if (Selection == filter_selection) {
filter_selection.MaxIndex = track_source.TrackModel.Selection.MaxIndex;
+ filter_selection.Clear (false);
filter_selection.SelectAll ();
} else {
Log.Error ("Filter focused, but selection is not filter selection!");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]