Added playlist renaming functionality.

This commit is contained in:
2026-08-03 23:49:21 -04:00
parent de16ac6240
commit cd6f9c382e
8 changed files with 97 additions and 1 deletions

View File

@@ -158,6 +158,7 @@ public partial class PlaylistDetailViewModel : ViewModelBase
public IRelayCommand RandomizeSelectedCommand { get; }
public IRelayCommand ReverseAllCommand { get; }
public IRelayCommand ReverseSelectedCommand { get; }
public IAsyncRelayCommand RenamePlaylistCommand { get; }
public IRelayCommand LockPlaylistCommand { get; }
public IRelayCommand UnlockPlaylistCommand { get; }
@@ -212,6 +213,7 @@ public partial class PlaylistDetailViewModel : ViewModelBase
RandomizeSelectedCommand = new RelayCommand(RandomizeSelectedSongs, AreMultipleSongsSelected);
ReverseAllCommand = new RelayCommand(ReverseAllSongs);
ReverseSelectedCommand = new RelayCommand(ReverseSelectedSongs, AreMultipleSongsSelected);
RenamePlaylistCommand = new AsyncRelayCommand(RenamePlaylist);
LockPlaylistCommand = new RelayCommand(LockPlaylist);
UnlockPlaylistCommand = new RelayCommand(UnlockPlaylist);
@@ -762,6 +764,22 @@ public partial class PlaylistDetailViewModel : ViewModelBase
Playlist?.Unlock();
}
private async Task RenamePlaylist()
{
if (Playlist == null)
return;
string newName = await _messageService.InputTextAsync(
$"Rename Playlist - {Playlist.Name}",
"Enter a new name for the playlist:",
Playlist.Name ?? string.Empty);
if (string.IsNullOrWhiteSpace(newName))
return;
Playlist.SetName(newName);
}
#endregion
}

View File

@@ -9,6 +9,19 @@ public partial class PlaylistItemViewModel : ObservableObject
{
public Playlist Playlist { get; private set; }
private string _name = string.Empty;
public string Name
{
get
{
return _name;
}
set
{
SetProperty(ref _name, value);
}
}
private string _summary = string.Empty;
public string Summary
{
@@ -41,6 +54,8 @@ public partial class PlaylistItemViewModel : ObservableObject
private void UpdateMetaData()
{
Name = Playlist.Name ?? "Untitled Playlist";
TimeSpan total = TimeSpan.FromSeconds(Playlist.Songs.Sum(s => s.Song.Length.TotalSeconds));
Summary = $"{Playlist.Songs.Count} songs / {total:h\\:mm\\:ss}";
}