Moved playlist commands to view model.

This commit is contained in:
2025-03-14 22:59:15 -04:00
parent bd9b30abbd
commit 7c70eb3814
9 changed files with 565 additions and 23 deletions

View File

@@ -6,6 +6,7 @@
xmlns:converter="clr-namespace:Harmonia.UI.Converters"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
DataContext="{x:Static vm:ViewModelLocator.PlaylistViewModel}"
Loaded="OnLoaded"
x:Class="Harmonia.UI.Views.PlaylistView"
x:DataType="vm:PlaylistViewModel">
<UserControl.Resources>
@@ -46,7 +47,12 @@
</UserControl.Styles>
<Grid Margin="0">
<Canvas Background="#99000000"></Canvas> <!-- Was 99 !-->
<ListBox ItemsSource="{Binding PlaylistSongs}" DoubleTapped="ListBox_DoubleTapped">
<ListBox
Name="PlaylistListBox"
ItemsSource="{Binding PlaylistSongs}"
SelectedItems="{Binding SelectedPlaylistSongs, Mode=OneWay}"
DoubleTapped="ListBox_DoubleTapped"
SelectionMode="Multiple">
<!--<ListBox.Styles>
<Style Selector="ListBoxItem:nth-child(odd):not(:pointerover):not(:selected)">
<Setter Property="Background" Value="#00000000"/>
@@ -87,6 +93,86 @@
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ContextMenu>
<ContextMenu Name="PlaylistContextMenu" Padding="10" Background="#EE444444">
<MenuItem Command="{Binding PlaySongCommand}" HotKey="Enter" InputGesture="Enter">
<MenuItem.Header>
<TextBlock Text="Play" FontWeight="Bold" Margin="8 0 8 0"></TextBlock>
</MenuItem.Header>
<MenuItem.Icon>
<PathIcon Data="{StaticResource SemiIconPlay}"></PathIcon>
</MenuItem.Icon>
</MenuItem>
<Separator />
<MenuItem Command="{Binding AddFilesCommand}" HotKey="Insert" InputGesture="Insert">
<MenuItem.Header>
<TextBlock Text="Add Files..." Margin="8 0 8 0"></TextBlock>
</MenuItem.Header>
<MenuItem.Icon>
<PathIcon Data="{StaticResource SemiIconFile}"></PathIcon>
</MenuItem.Icon>
</MenuItem>
<MenuItem Command="{Binding AddFolderCommand}" HotKey="Ctrl+Insert" InputGesture="Ctrl+Insert">
<MenuItem.Header>
<TextBlock Text="Add Folder..." Margin="8 0 8 0"></TextBlock>
</MenuItem.Header>
<MenuItem.Icon>
<PathIcon Data="{StaticResource SemiIconFolder}"></PathIcon>
</MenuItem.Icon>
</MenuItem>
<Separator />
<MenuItem Command="{Binding RemoveSongsCommand}" HotKey="Delete" InputGesture="Delete">
<MenuItem.Styles>
<Style Selector="TextBlock">
<Setter Property="Foreground" Value="#ff99a4"/>
</Style>
</MenuItem.Styles>
<MenuItem.Header>
<TextBlock Text="Remove" Margin="8 0 8 0"></TextBlock>
</MenuItem.Header>
<MenuItem.Icon>
<PathIcon Data="{StaticResource DeleteIcon}" Foreground="#ff99a4"></PathIcon>
</MenuItem.Icon>
</MenuItem>
<Separator />
<MenuItem Command="{Binding CutSongsCommand}" HotKey="Ctrl+X" InputGesture="Ctrl+X">
<MenuItem.Header>
<TextBlock Text="Cut" Margin="8 0 8 0"></TextBlock>
</MenuItem.Header>
<MenuItem.Icon>
<PathIcon Data="{StaticResource CutIcon}"></PathIcon>
</MenuItem.Icon>
</MenuItem>
<MenuItem Command="{Binding CopySongsCommand}" HotKey="Ctrl+C" InputGesture="Ctrl+C">
<MenuItem.Header>
<TextBlock Text="Copy" Margin="8 0 8 0"></TextBlock>
</MenuItem.Header>
<MenuItem.Icon>
<PathIcon Data="{StaticResource CopyIcon}"></PathIcon>
</MenuItem.Icon>
</MenuItem>
<MenuItem Command="{Binding PasteSongsCommand}" HotKey="Ctrl+V" InputGesture="Ctrl+V">
<MenuItem.Header>
<TextBlock Text="Paste" Margin="8 0 8 0"></TextBlock>
</MenuItem.Header>
<MenuItem.Icon>
<PathIcon Data="{StaticResource PasteIcon}"></PathIcon>
</MenuItem.Icon>
</MenuItem>
<Separator />
<MenuItem Command="{Binding OpenFileLocationCommand}" HotKey="Alt+O" InputGesture="Alt+O">
<MenuItem.Header>
<TextBlock Text="Open File Location" Margin="8 0 8 0"></TextBlock>
</MenuItem.Header>
<MenuItem.Icon>
<PathIcon Data="{StaticResource SemiIconFolderOpen}"></PathIcon>
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</ListBox.ContextMenu>
<ListBox.KeyBindings>
<KeyBinding Gesture="Enter" Command="{Binding PlaySongCommand}" />
</ListBox.KeyBindings>
</ListBox>
</Grid>