瀏覽代碼

Add random sorting.

Stephen Damm 6 年之前
父節點
當前提交
3bd63262b0

+ 1 - 0
SongBrowserPlugin/DataAccess/SongBrowserSettings.cs

@@ -15,6 +15,7 @@ namespace SongBrowserPlugin.DataAccess
         Original,
         Newest,
         PlayCount,
+        Random,
     }
 
     [Serializable]

+ 11 - 1
SongBrowserPlugin/SongBrowserModel.cs

@@ -208,6 +208,16 @@ namespace SongBrowserPlugin
                         .ThenBy(x => x.songName)
                         .ToList();
                     break;
+                case SongSortMode.Random:
+                    _log.Info("Sorting song list by random");
+
+                    System.Random rnd = new System.Random(Guid.NewGuid().GetHashCode());
+
+                    _sortedSongs = _originalSongs
+                        .AsQueryable()
+                        .OrderBy(x => rnd.Next())
+                        .ToList();
+                    break;
                 case SongSortMode.Default:
                 default:
                     _log.Info("Sorting song list as default (songName)");
@@ -219,7 +229,7 @@ namespace SongBrowserPlugin
                     break;
             }
 
-            if (this.InvertingResults)
+            if (this.InvertingResults && _settings.sortMode != SongSortMode.Random)
             {
                 _sortedSongs.Reverse();
             }

+ 2 - 2
SongBrowserPlugin/UI/SongBrowserUI.cs

@@ -163,12 +163,12 @@ namespace SongBrowserPlugin.UI
 
                 string[] buttonNames = new string[]
                 {
-                    "Favorite", "Song", "Author", "Original", "Newest", "PlayCount"
+                    "Favorite", "Song", "Author", "Original", "Newest", "PlayCount", "Random"
                 };
 
                 SongSortMode[] sortModes = new SongSortMode[]
                 {
-                    SongSortMode.Favorites, SongSortMode.Default, SongSortMode.Author, SongSortMode.Original, SongSortMode.Newest, SongSortMode.PlayCount
+                    SongSortMode.Favorites, SongSortMode.Default, SongSortMode.Author, SongSortMode.Original, SongSortMode.Newest, SongSortMode.PlayCount, SongSortMode.Random
                 };
 
                 _sortButtonGroup = new List<SongSortButton>();