banshee r4583 - in trunk/banshee: . src/Core/Banshee.Services/Banshee.Query src/Core/Banshee.Services/Banshee.Sources src/Core/Banshee.ThickClient/Banshee.Gui src/Core/Banshee.ThickClient/Resources src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio



Author: abock
Date: Mon Sep 22 19:14:19 2008
New Revision: 4583
URL: http://svn.gnome.org/viewvc/banshee?rev=4583&view=rev

Log:
2008-09-22  Aaron Bockover  <abock gnome org>

    * src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/InternetRadioSource.cs:
    Disable viewing read only properties

    * src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs:
    * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
    Support read only and editable property items

    * src/Core/Banshee.Services/Banshee.Sources/Source.cs: Added
    HasViewableTrackProperties and HasEditableTrackProperties items, defaulting
    to false

    * src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs: Override
    the new properties above to be true

    * src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs: Renamed
    Title to Name



Modified:
   trunk/banshee/ChangeLog
   trunk/banshee/src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs
   trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/Source.cs
   trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs
   trunk/banshee/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml
   trunk/banshee/src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/InternetRadioSource.cs

Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Query/BansheeQuery.cs	Mon Sep 22 19:14:19 2008
@@ -63,7 +63,7 @@
             CreateQueryOrder ("Album",      asc,  Catalog.GetString ("Album"), AlbumField),
             CreateQueryOrder ("Artist",     asc,  Catalog.GetString ("Artist"), ArtistField),
             // Translators: noun
-            CreateQueryOrder ("Title",      asc,  Catalog.GetString ("Title"), TitleField),
+            CreateQueryOrder ("Title",      asc,  Catalog.GetString ("Name"), TitleField),
             CreateQueryOrder ("Genre",      asc,  Catalog.GetString ("Genre"), GenreField),
             null,
             CreateQueryOrder ("Rating",     desc, Catalog.GetString ("Highest Rating"), RatingField),
@@ -168,7 +168,7 @@
 
         public static QueryField TitleField = new QueryField (
             "title", "TrackTitle",
-            Catalog.GetString ("Title"), "CoreTracks.TitleLowered", true,
+            Catalog.GetString ("Name"), "CoreTracks.TitleLowered", true,
             // Translators: These are unique search fields.  Please, no spaces. Blank ok.
             Catalog.GetString ("title"), Catalog.GetString ("titled"), Catalog.GetString ("name"), Catalog.GetString ("named"),
             "title", "titled", "name", "named"

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	Mon Sep 22 19:14:19 2008
@@ -276,6 +276,14 @@
         {
             return CanAddTracks && source != this;
         }
+                
+        public override bool HasViewableTrackProperties {
+            get { return true; }
+        }
+        
+        public override bool HasEditableTrackProperties {
+            get { return true; }
+        }
 
 #endregion
         

Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/Source.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/Source.cs	(original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Sources/Source.cs	Mon Sep 22 19:14:19 2008
@@ -485,6 +485,14 @@
         public virtual bool HasProperties {
             get { return false; }
         }
+        
+        public virtual bool HasViewableTrackProperties {
+            get { return false; }
+        }
+        
+        public virtual bool HasEditableTrackProperties {
+            get { return false; }
+        }
 
         public virtual string Name {
             get { return properties.Get<string> ("Name"); }

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	Mon Sep 22 19:14:19 2008
@@ -70,10 +70,14 @@
                 new ActionEntry("SelectNoneAction", null,
                     Catalog.GetString("Select _None"), "<control><shift>A",
                     Catalog.GetString("Unselect all tracks"), OnSelectNone),
-
-                new ActionEntry ("TrackPropertiesAction", Stock.Edit,
+                    
+                new ActionEntry ("TrackEditorAction", Stock.Edit,
                     Catalog.GetString ("_Edit Track Information"), "E",
-                    Catalog.GetString ("Edit information on selected tracks"), OnTrackProperties),
+                    Catalog.GetString ("Edit information on selected tracks"), OnTrackEditor),
+
+                new ActionEntry ("TrackPropertiesAction", Stock.Properties,
+                    Catalog.GetString ("Properties"), null,
+                    Catalog.GetString ("View information on selected tracks"), OnTrackProperties),
 
                 new ActionEntry ("AddToPlaylistAction", null,
                     Catalog.GetString ("Add _to Playlist"), null,
@@ -225,7 +229,8 @@
                     UpdateAction ("DeleteTracksFromDriveAction", is_track_source && track_source.CanDeleteTracks, has_selection, source);
                     UpdateAction ("RemoveTracksFromLibraryAction", source.Parent is LibrarySource, has_selection, null);
                     
-                    UpdateAction ("TrackPropertiesAction", in_database, has_selection, source);
+                    UpdateAction ("TrackPropertiesAction", in_database && source.HasViewableTrackProperties, has_selection, source);
+                    UpdateAction ("TrackEditorAction", in_database && source.HasEditableTrackProperties, has_selection, source);
                     UpdateAction ("RateTracksAction", in_database, has_selection, null);
                     UpdateAction ("AddToPlaylistAction", in_database && primary_source != null &&
                             primary_source.SupportsPlaylists && !primary_source.PlaylistsReadOnly, has_selection, null);
@@ -276,19 +281,32 @@
             ShowContextMenu ("/TrackContextMenu");
         }
 
+        private bool RunSourceOverrideHandler (string sourceOverrideHandler)
+        {
+            Source source = current_source as Source;
+            InvokeHandler handler = source != null 
+                ? source.GetInheritedProperty<InvokeHandler> (sourceOverrideHandler) 
+                : null;
+            
+            if (handler != null) {
+                handler ();
+                return true;
+            }
+            
+            return false;
+        }
+
         private void OnTrackProperties (object o, EventArgs args)
         {
-            if (current_source != null) {
-                Source source = current_source as Source;
-                InvokeHandler handler = source != null 
-                    ? source.GetInheritedProperty<InvokeHandler> ("TrackPropertiesActionHandler") 
-                    : null;
-                
-                if (handler != null) {
-                    handler ();
-                } else {
-                    Banshee.Gui.TrackEditor.TrackEditorDialog.RunEdit (current_source.TrackModel);
-                }
+            if (current_source != null && !RunSourceOverrideHandler ("TrackPropertiesActionHandler")) {
+                Banshee.Gui.TrackEditor.TrackEditorDialog.RunView (current_source.TrackModel);
+            }
+        }
+        
+        private void OnTrackEditor (object o, EventArgs args)
+        {
+            if (current_source != null && !RunSourceOverrideHandler ("TrackEditorActionHandler")) {
+                Banshee.Gui.TrackEditor.TrackEditorDialog.RunEdit (current_source.TrackModel);
             }
         }
 

Modified: trunk/banshee/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml
==============================================================================
--- trunk/banshee/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml	(original)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml	Mon Sep 22 19:14:19 2008
@@ -35,7 +35,7 @@
       <placeholder name="AboveAddToPlaylist"/>
       <menu name="AddToPlaylist" action="AddToPlaylistAction"></menu>
       <placeholder name="BelowAddToPlaylist"/>
-      <menuitem name="TrackProperties" action="TrackPropertiesAction"/>
+      <menuitem name="TrackEditor" action="TrackEditorAction"/>
       <separator/>
       <menuitem name="SelectAll" action="SelectAllAction"/>
       <menuitem name="SelectNone" action="SelectNoneAction"/>
@@ -49,6 +49,7 @@
       <menuitem name="ExportPlaylist" action="ExportPlaylistAction"/>
       <menuitem name="SourceProperties" action="SourcePropertiesAction"/>
       <menuitem name="UnmapSource" action="UnmapSourceAction"/>
+      <menuitem name="TrackProperties" action="TrackPropertiesAction"/>
       <separator/>
       <menuitem name="Preferences" action="PreferencesAction"/>
       <menuitem name="Extensions" action="ExtensionsAction"/>
@@ -166,6 +167,7 @@
     <menuitem name="JumpToPlayingTrack" action="JumpToPlayingTrackAction"/>
     <separator/>
     <menuitem name="TrackProperties" action="TrackPropertiesAction"/>
+    <menuitem name="TrackEditor" action="TrackEditorAction"/>
   </popup>
 </ui>
 

Modified: trunk/banshee/src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/InternetRadioSource.cs
==============================================================================
--- trunk/banshee/src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/InternetRadioSource.cs	(original)
+++ trunk/banshee/src/Extensions/Banshee.InternetRadio/Banshee.InternetRadio/InternetRadioSource.cs	Mon Sep 22 19:14:19 2008
@@ -76,8 +76,8 @@
             Properties.Set<bool> ("Nereid.SourceContentsPropagate", true);
             Properties.Set<ISourceContents> ("Nereid.SourceContents", source_contents);
             
-            Properties.SetString ("TrackPropertiesActionLabel", Catalog.GetString ("Edit Station"));
-            Properties.Set<InvokeHandler> ("TrackPropertiesActionHandler", delegate {
+            Properties.SetString ("TrackEditorActionLabel", Catalog.GetString ("Edit Station"));
+            Properties.Set<InvokeHandler> ("TrackEditorActionHandler", delegate {
                 ITrackModelSource active_track_model_source =
                     (ITrackModelSource) ServiceManager.SourceManager.ActiveSource;
 
@@ -265,5 +265,9 @@
         protected override bool HasArtistAlbum {
             get { return false; }
         }
+        
+        public override bool HasViewableTrackProperties {
+            get { return false; }
+        }
     }
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]