From 32547c4f4cd22ce99f146b69863b89f8e6fae558 Mon Sep 17 00:00:00 2001 From: Brian Bicknell Date: Wed, 26 Aug 2026 10:06:41 -0400 Subject: [PATCH] Fixed playlist song pasting logic, so that songs can be pasted into an empty playlist (or a playlist with no selected songs). --- .../ViewModels/PlaylistDetailViewModel.cs | 20 +++++++++++-------- Harmonia.WinUI/Views/PlayerView.xaml | 6 ++++++ 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/Harmonia.WinUI/ViewModels/PlaylistDetailViewModel.cs b/Harmonia.WinUI/ViewModels/PlaylistDetailViewModel.cs index 0aed8de..19bba6a 100644 --- a/Harmonia.WinUI/ViewModels/PlaylistDetailViewModel.cs +++ b/Harmonia.WinUI/ViewModels/PlaylistDetailViewModel.cs @@ -595,7 +595,7 @@ public partial class PlaylistDetailViewModel : ViewModelBase private bool CanPasteSongs() { - if (Playlist == null || SelectedPlaylistSongs.Count == 0) + if (Playlist == null) return false; DataPackageView dataPackageView = Clipboard.GetContent(); @@ -611,17 +611,21 @@ public partial class PlaylistDetailViewModel : ViewModelBase private async Task PasteSongsAsync() { - if (Playlist == null || SelectedPlaylistSongs.Count == 0) - return; - - int selectedPlaylistSongIndex = Playlist.IndexOf(SelectedPlaylistSongs[0]); - - if (selectedPlaylistSongIndex == -1) + if (Playlist == null) return; Song[] songs = await GetSongsFromClipboardAsync(); + int insertIndex = Playlist.Songs.Count; - Playlist.AddSongs(songs, selectedPlaylistSongIndex + 1); + if (SelectedPlaylistSongs.Count > 0) + { + int selectedPlaylistSongIndex = Playlist.IndexOf(SelectedPlaylistSongs[0]); + + if (selectedPlaylistSongIndex >= 0) + insertIndex = selectedPlaylistSongIndex + 1; + } + + Playlist.AddSongs(songs, insertIndex); } private static async Task GetSongsFromClipboardAsync() diff --git a/Harmonia.WinUI/Views/PlayerView.xaml b/Harmonia.WinUI/Views/PlayerView.xaml index 43005a8..c4c449a 100644 --- a/Harmonia.WinUI/Views/PlayerView.xaml +++ b/Harmonia.WinUI/Views/PlayerView.xaml @@ -150,6 +150,9 @@ + @@ -207,6 +210,9 @@ +