banshee r4262 - in trunk/banshee: . src/Core/Banshee.Services/Banshee.Library src/Core/Banshee.Services/Banshee.Sources src/Core/Banshee.ThickClient/Banshee.Gui src/Core/Banshee.ThickClient/Banshee.Sources.Gui
- From: gburt svn gnome org
- To: svn-commits-list gnome org
- Subject: banshee r4262 - in trunk/banshee: . src/Core/Banshee.Services/Banshee.Library src/Core/Banshee.Services/Banshee.Sources src/Core/Banshee.ThickClient/Banshee.Gui src/Core/Banshee.ThickClient/Banshee.Sources.Gui
- Date: Sun, 27 Jul 2008 20:19:48 +0000 (UTC)
Author: gburt
Date: Sun Jul 27 20:19:48 2008
New Revision: 4262
URL: http://svn.gnome.org/viewvc/banshee?rev=4262&view=rev
Log:
2008-07-27 Gabriel Burt <gabriel burt gmail com>
* src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs: Add
static UpdateAction convenience methods that set the
visiblity/sensitivity of actions.
* src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs: Hide the
browser-related actions when the source doesn't have any filters.
* src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs:
Fix issue with not allowing sources that didn't implement
IFilterableSource to be used by this view. Patch also created by Bertrand
Lorentz (BGO #544989).
* src/Core/Banshee.Services/Banshee.Sources/IFilterableSource.cs: Add
AvailableFilters getter to the interface.
* src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs:
Override HasArtistAlbum to false.
Modified:
trunk/banshee/ChangeLog
trunk/banshee/src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs
trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/IFilterableSource.cs
trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs
trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs
trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs
Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs (original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Library/VideoLibrarySource.cs Sun Jul 27 20:19:48 2008
@@ -57,6 +57,10 @@
public override bool ShowBrowser {
get { return false; }
}
+
+ protected override bool HasArtistAlbum {
+ get { return false; }
+ }
public override IEnumerable<SmartPlaylistDefinition> DefaultSmartPlaylists {
get { return default_smart_playlists; }
Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/IFilterableSource.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/IFilterableSource.cs (original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/IFilterableSource.cs Sun Jul 27 20:19:48 2008
@@ -39,5 +39,6 @@
{
event EventHandler FiltersChanged;
IList<Banshee.Collection.Database.IFilterListModel> CurrentFilters { get; }
+ IList<Banshee.Collection.Database.IFilterListModel> AvailableFilters { get; }
}
}
Modified: trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs (original)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/BansheeActionGroup.cs Sun Jul 27 20:19:48 2008
@@ -94,8 +94,7 @@
public void UpdateAction (string action_name, bool visible, bool sensitive, Source source)
{
Gtk.Action action = this[action_name];
- action.Visible = visible;
- action.Sensitive = visible && sensitive;
+ UpdateAction (action, visible, sensitive);
if (source != null && action.Visible) {
// Save the original label
@@ -120,6 +119,17 @@
}
}
+ public static void UpdateAction (Gtk.Action action, bool visible_and_sensitive)
+ {
+ UpdateAction (action, visible_and_sensitive, visible_and_sensitive);
+ }
+
+ public static void UpdateAction (Gtk.Action action, bool visible, bool sensitive)
+ {
+ action.Visible = visible;
+ action.Sensitive = visible && sensitive;
+ }
+
protected void ShowContextMenu (string menu_name)
{
Gtk.Menu menu = Actions.UIManager.GetWidget (menu_name) as Menu;
Modified: trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs (original)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/SourceActions.cs Sun Jul 27 20:19:48 2008
@@ -356,6 +356,16 @@
UpdateAction ("NewSmartPlaylistAction", primary_source != null && primary_source.SupportsPlaylists, true, source);
/*UpdateAction ("NewSmartPlaylistFromSearchAction", (source is LibrarySource || source.Parent is LibrarySource),
!String.IsNullOrEmpty (source.FilterQuery), source);*/
+
+ ActionGroup browser_actions = Actions.FindActionGroup ("BrowserView");
+ if (browser_actions != null) {
+ IFilterableSource filterable_source = source as IFilterableSource;
+ bool has_browser = filterable_source != null && filterable_source.AvailableFilters.Count > 0;
+ UpdateAction (browser_actions["BrowserTopAction"], has_browser);
+ UpdateAction (browser_actions["BrowserLeftAction"], has_browser);
+ UpdateAction (browser_actions["BrowserVisibleAction"], has_browser);
+ }
+
last_source = source;
}
Modified: trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs (original)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs Sun Jul 27 20:19:48 2008
@@ -118,7 +118,7 @@
{
ITrackModelSource track_source = source as ITrackModelSource;
IFilterableSource filterable_source = source as IFilterableSource;
- if (track_source == null || filterable_source == null) {
+ if (track_source == null) {
return false;
}
@@ -126,7 +126,7 @@
SetModel (track_view, track_source.TrackModel);
- if (filterable_source.CurrentFilters != null) {
+ if (filterable_source != null && filterable_source.CurrentFilters != null) {
foreach (IListModel model in filterable_source.CurrentFilters) {
if (model is IListModel<ArtistInfo>)
SetModel (artist_view, (model as IListModel<ArtistInfo>));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]