banshee r3992 - in trunk/banshee: . src/Core/Banshee.Services/Banshee.Collection.Database src/Core/Banshee.Services/Banshee.Sources src/Core/Banshee.ThickClient/Banshee.Gui src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea src/Libraries/Hyena.Gui/Hyena.Widgets
- From: gburt svn gnome org
- To: svn-commits-list gnome org
- Subject: banshee r3992 - in trunk/banshee: . src/Core/Banshee.Services/Banshee.Collection.Database src/Core/Banshee.Services/Banshee.Sources src/Core/Banshee.ThickClient/Banshee.Gui src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea src/Libraries/Hyena.Gui/Hyena.Widgets
- Date: Wed, 28 May 2008 00:08:03 +0000 (UTC)
Author: gburt
Date: Wed May 28 00:08:03 2008
New Revision: 3992
URL: http://svn.gnome.org/viewvc/banshee?rev=3992&view=rev
Log:
2008-05-27 Gabriel Burt <gabriel burt gmail com>
* src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs:
* src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs:
* src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs:
* src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs:
* src/Libraries/Hyena.Gui/Hyena.Widgets/RatingMenuItem.cs: Fix bug with
not saving the rating when set from either the context menu or the
notification menu.
Modified:
trunk/banshee/ChangeLog
trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs
trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs
trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs
trunk/banshee/src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs
trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Widgets/RatingMenuItem.cs
Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs (original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs Wed May 28 00:08:03 2008
@@ -160,6 +160,11 @@
{
Provider.Save (this);
}
+
+ public void Refresh ()
+ {
+ ProviderRefresh ();
+ }
protected virtual bool ProviderRefresh ()
{
Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs (original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs Wed May 28 00:08:03 2008
@@ -301,6 +301,13 @@
}
}
OnTracksChanged (BansheeQuery.RatingField);
+
+ // In case we updated the currently playing track
+ DatabaseTrackInfo track = ServiceManager.PlayerEngine.CurrentTrack as DatabaseTrackInfo;
+ if (track != null) {
+ track.Refresh ();
+ ServiceManager.PlayerEngine.TrackInfoUpdated ();
+ }
}
public override SourceMergeType SupportedMergeTypes {
Modified: trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs (original)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs Wed May 28 00:08:03 2008
@@ -380,14 +380,6 @@
private void OnRateTracks (object o, EventArgs args)
{
- foreach (Widget proxy in (o as Gtk.Action).Proxies) {
- Menu menu = proxy.Parent as Menu;
- if (menu != null && menu.Visible) {
- menu.Popdown ();
- menu.Hide ();
- }
- }
-
ThreadAssist.SpawnFromMain (delegate {
(ActiveSource as DatabaseSource).RateSelectedTracks (rating_proxy.LastRating);
});
Modified: trunk/banshee/src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs
==============================================================================
--- trunk/banshee/src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs (original)
+++ trunk/banshee/src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea/NotificationAreaService.cs Wed May 28 00:08:03 2008
@@ -150,7 +150,7 @@
}
rating_menu_item = new RatingMenuItem ();
- rating_menu_item.Activated += OnItemRatingActivated;
+ rating_menu_item.Activated += OnRatingChanged;
ToggleRatingMenuSensitive ();
menu.Insert (rating_menu_item, i + 2);
break;
@@ -275,6 +275,13 @@
private void OnNotificationAreaPopupMenuEvent (object o, PopupMenuArgs args)
{
+ if (rating_menu_item.Visible) {
+ TrackInfo track = ServiceManager.PlayerEngine.CurrentTrack;
+ if (track is DatabaseTrackInfo) {
+ (track as DatabaseTrackInfo).Refresh ();
+ }
+ rating_menu_item.Reset (track.Rating);
+ }
menu.Popup (null, null, notif_area.PositionMenu, 3, Gtk.Global.CurrentEventTime);
}
@@ -332,11 +339,11 @@
notif_area.OnPlayerEvent (args);
}
- private void OnItemRatingActivated (object o, EventArgs args)
+ private void OnRatingChanged (object o, EventArgs args)
{
if (ServiceManager.PlayerEngine.CurrentTrack != null) {
ServiceManager.PlayerEngine.CurrentTrack.Rating = rating_menu_item.Value;
- ServiceManager.PlayerEngine.CurrentTrack.Save ();
+ ServiceManager.PlayerEngine.CurrentTrack.Save (); //true, Banshee.Query.BansheeQuery.RatingField);
ServiceManager.PlayerEngine.TrackInfoUpdated ();
}
}
@@ -344,7 +351,6 @@
private void ToggleRatingMenuSensitive ()
{
if (ServiceManager.PlayerEngine.CurrentTrack is DatabaseTrackInfo) {
- rating_menu_item.Reset ((int)ServiceManager.PlayerEngine.CurrentTrack.Rating);
rating_menu_item.Show ();
} else {
rating_menu_item.Hide ();
Modified: trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Widgets/RatingMenuItem.cs
==============================================================================
--- trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Widgets/RatingMenuItem.cs (original)
+++ trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Widgets/RatingMenuItem.cs Wed May 28 00:08:03 2008
@@ -119,7 +119,7 @@
// value is set, or keeping it up; I like it staying up --Aaron
//
if (can_activate) {
- // Activate ();
+ Activate ();
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]