[banshee] ThickClient: add "Selected Track(s)" submenu (bgo#726338)



commit 60e1b7d3d6303aefee91bb89a75cdc9ecb3ac5ba
Author: Dmitrii Petukhov <dimart sp gmail com>
Date:   Fri Apr 4 23:58:55 2014 +0400

    ThickClient: add "Selected Track(s)" submenu (bgo#726338)
    
    Behavior of the options from the "Edit" menu was not so clear:
    did these options target the playing track or the selected ones?
    So, adding "Selected Track(s)" submenu and moving all the appropriate
    options into it makes it much more clear.
    
    Signed-off-by: Andrés G. Aragoneses <knocte gmail com>

 src/Backends/Banshee.Gnome/Resources/GlobalUI.xml  |    8 ++++--
 .../Banshee.Gui/TrackActions.cs                    |   15 +++++++++--
 .../Resources/core-ui-actions-layout.xml           |   26 ++++++++++---------
 .../Resources/SearchSourceActiveUI.xml             |   22 +++++++++-------
 .../Resources/ActiveSourceUI.xml                   |   22 +++++++++-------
 5 files changed, 55 insertions(+), 38 deletions(-)
---
diff --git a/src/Backends/Banshee.Gnome/Resources/GlobalUI.xml 
b/src/Backends/Banshee.Gnome/Resources/GlobalUI.xml
index 2748a4e..757664c 100644
--- a/src/Backends/Banshee.Gnome/Resources/GlobalUI.xml
+++ b/src/Backends/Banshee.Gnome/Resources/GlobalUI.xml
@@ -1,9 +1,11 @@
 <ui>
     <menubar name="MainMenu" action="MainMenuAction">
         <menu name="EditMenu" action="EditMenuAction">
-            <placeholder name="BelowAddToPlaylist">
-                <menuitem name="BurnDisc" action="BurnDiscAction"></menuitem>
-            </placeholder>
+            <menu name="SelectedTracks" action="SelectedTracksAction">
+                <placeholder name="BelowAddToPlaylist">
+                    <menuitem name="BurnDisc" action="BurnDiscAction"></menuitem>
+                </placeholder>
+            </menu>
         </menu>
     </menubar>
     <popup name="TrackContextMenu" action="TrackContextMenuAction">
diff --git a/src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs 
b/src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs
index c4ad257..70fb2b2 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Gui/TrackActions.cs
@@ -102,6 +102,11 @@ namespace Banshee.Gui
         public TrackActions () : base ("Track")
         {
             Add (new ActionEntry [] {
+                new ActionEntry ("SelectedTracksAction", null,
+                    Catalog.GetString ("Selected Track(s)"), "",
+                    Catalog.GetString ("Options for selected track(s)"),
+                    (o, e) => { ResetRating (); }),
+
                 new ActionEntry("TrackContextMenuAction", null,
                     String.Empty, null, null, OnTrackContextMenu),
 
@@ -211,7 +216,7 @@ namespace Banshee.Gui
         {
             if (Actions.UIManager.GetAction ("/MainMenu/EditMenu") != null) {
                 rating_proxy = new RatingActionProxy (Actions.UIManager, this["RateTracksAction"]);
-                rating_proxy.AddPath ("/MainMenu/EditMenu", "AddToPlaylist");
+                rating_proxy.AddPath ("/MainMenu/EditMenu/SelectedTracks", "AddToPlaylist");
                 rating_proxy.AddPath ("/TrackContextMenu", "AddToPlaylist");
                 Actions.UIManager.ActionsChanged -= HandleActionsChanged;
             }
@@ -229,8 +234,11 @@ namespace Banshee.Gui
         {
             // inside the "Edit" menu it's a bit redundant to have a label that starts as "Edit Track..."
             this["TrackEditorAction"].Label = Catalog.GetString ("Track _Information");
-
-            ResetRating ();
+            if (Selection.Count > 1) {
+                this ["SelectedTracksAction"].Label = Catalog.GetString ("Selected Tracks");
+            } else {
+                this ["SelectedTracksAction"].Label = Catalog.GetString ("Selected Track");
+            }
         }
 
         private void OnSelectionChanged ()
@@ -304,6 +312,7 @@ namespace Banshee.Gui
                 );
 
                 this["SelectAllAction"].Sensitive = track_source.Count > 0 && !selection.AllSelected;
+                UpdateAction ("SelectedTracksAction", track_source.Count > 0 && has_selection, 
has_selection, null);
                 UpdateAction ("RemoveTracksAction", track_source.CanRemoveTracks, has_selection, source);
                 UpdateAction ("DeleteTracksFromDriveAction", track_source.CanDeleteTracks, has_selection, 
source);
 
diff --git a/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml 
b/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml
index 290d330..25e0fc8 100644
--- a/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml
+++ b/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml
@@ -56,26 +56,28 @@
     </menu>
 
     <menu name="EditMenu" action="EditMenuAction">
-      <placeholder name="AboveAddToPlaylist"/>
-      <menu name="AddToPlaylist" action="AddToPlaylistAction"></menu>
-      <placeholder name="BelowAddToPlaylist"/>
-      <menuitem name="TrackEditor" action="TrackEditorAction"/>
-      <separator/>
+      <menu name="SelectedTracks" action="SelectedTracksAction">
+        <placeholder name="AboveAddToPlaylist"/>
+        <menu name="AddToPlaylist" action="AddToPlaylistAction"></menu>
+        <placeholder name="BelowAddToPlaylist"/>
+        <menuitem name="TrackEditor" action="TrackEditorAction"/>
+        <separator/>
+        <menuitem name="RemoveTracks" action="RemoveTracksAction"/>
+        <menuitem name="RemoveTracksFromLibrary" action="RemoveTracksFromLibraryAction"/>
+        <menuitem name="DeleteTracksFromDrive" action="DeleteTracksFromDriveAction"/>
+        <separator/>
+        <menuitem name="OpenContainingFolder" action="OpenContainingFolderAction"/>
+        <separator/>
+        <menuitem name="TrackProperties" action="TrackPropertiesAction"/>
+      </menu>
       <menuitem name="SelectAll" action="SelectAllAction"/>
       <menuitem name="SelectNone" action="SelectNoneAction"/>
       <separator/>
-      <menuitem name="RemoveTracks" action="RemoveTracksAction"/>
-      <menuitem name="RemoveTracksFromLibrary" action="RemoveTracksFromLibraryAction"/>
-      <menuitem name="DeleteTracksFromDrive" action="DeleteTracksFromDriveAction"/>
-      <separator/>
-      <menuitem name="OpenContainingFolder" action="OpenContainingFolderAction"/>
-      <separator/>
       <menuitem name="RenameSource" action="RenameSourceAction"/>
       <menuitem name="RefreshSmartPlaylist" action="RefreshSmartPlaylistAction"/>
       <menuitem name="ExportPlaylist" action="ExportPlaylistAction"/>
       <menuitem name="SourceProperties" action="SourcePropertiesAction"/>
       <menuitem name="UnmapSource" action="UnmapSourceAction"/>
-      <menuitem name="TrackProperties" action="TrackPropertiesAction"/>
       <separator name="PreferencesSeparator" />
       <menuitem name="Preferences" action="PreferencesAction"/>
     </menu>
diff --git a/src/Extensions/Banshee.InternetArchive/Resources/SearchSourceActiveUI.xml 
b/src/Extensions/Banshee.InternetArchive/Resources/SearchSourceActiveUI.xml
index ee4e18c..c0031a0 100644
--- a/src/Extensions/Banshee.InternetArchive/Resources/SearchSourceActiveUI.xml
+++ b/src/Extensions/Banshee.InternetArchive/Resources/SearchSourceActiveUI.xml
@@ -8,16 +8,18 @@
 
   <menubar name="MainMenu" action="MainMenuAction">
     <menu name="EditMenu" action="EditMenuAction">
-      <placeholder name="BelowAddToPlaylist">
-        <separator />
-        <!--<menuitem name="PodcastItemDownload" action="PodcastItemDownloadAction" />
-        <menuitem name="PodcastItemDeleteFile" action="PodcastItemDeleteFileAction" />-->
-        <!--
-        <menuitem name="PodcastItemCancel" action="PodcastItemCancelAction" />-->
-        <!--<menuitem name="PodcastItemMarkNew" action="PodcastItemMarkNewAction" />
-        <menuitem name="PodcastItemMarkOld" action="PodcastItemMarkOldAction" />-->
-        <separator />
-      </placeholder>
+      <menu name="SelectedTracks" action="SelectedTracksAction">
+        <placeholder name="BelowAddToPlaylist">
+          <separator />
+          <!--<menuitem name="PodcastItemDownload" action="PodcastItemDownloadAction" />
+          <menuitem name="PodcastItemDeleteFile" action="PodcastItemDeleteFileAction" />-->
+          <!--
+          <menuitem name="PodcastItemCancel" action="PodcastItemCancelAction" />-->
+          <!--<menuitem name="PodcastItemMarkNew" action="PodcastItemMarkNewAction" />
+          <menuitem name="PodcastItemMarkOld" action="PodcastItemMarkOldAction" />-->
+          <separator />
+        </placeholder>
+      </menu>
     </menu>
   </menubar>
 
diff --git a/src/Extensions/Banshee.Podcasting/Resources/ActiveSourceUI.xml 
b/src/Extensions/Banshee.Podcasting/Resources/ActiveSourceUI.xml
index 1c8c547..a1e423e 100644
--- a/src/Extensions/Banshee.Podcasting/Resources/ActiveSourceUI.xml
+++ b/src/Extensions/Banshee.Podcasting/Resources/ActiveSourceUI.xml
@@ -15,16 +15,18 @@
     </menu>
 
     <menu name="EditMenu" action="EditMenuAction">
-      <placeholder name="BelowAddToPlaylist">
-        <separator />
-        <menuitem name="PodcastItemDownload" action="PodcastItemDownloadAction" />
-        <menuitem name="PodcastItemDeleteFile" action="PodcastItemDeleteFileAction" />
-        <!--
-        <menuitem name="PodcastItemCancel" action="PodcastItemCancelAction" />-->
-        <menuitem name="PodcastItemMarkNew" action="PodcastItemMarkNewAction" />
-        <menuitem name="PodcastItemMarkOld" action="PodcastItemMarkOldAction" />
-        <separator />
-      </placeholder>
+      <menu name="SelectedTracks" action="SelectedTracksAction">
+        <placeholder name="BelowAddToPlaylist">
+          <separator />
+          <menuitem name="PodcastItemDownload" action="PodcastItemDownloadAction" />
+          <menuitem name="PodcastItemDeleteFile" action="PodcastItemDeleteFileAction" />
+          <!--
+          <menuitem name="PodcastItemCancel" action="PodcastItemCancelAction" />-->
+          <menuitem name="PodcastItemMarkNew" action="PodcastItemMarkNewAction" />
+          <menuitem name="PodcastItemMarkOld" action="PodcastItemMarkOldAction" />
+          <separator />
+        </placeholder>
+      </menu>
     </menu>
   </menubar>
 


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