Updated playlist view name. Added custom title bar.

This commit is contained in:
2026-07-26 22:37:17 -04:00
parent 140d4ea49a
commit c334a4166f
8 changed files with 47 additions and 23 deletions

View File

@@ -1,4 +1,4 @@
using Harmonia.Core.Extensions; using Harmonia.Core.Extensions;
using Harmonia.WinUI.Caching; using Harmonia.WinUI.Caching;
using Harmonia.WinUI.Storage; using Harmonia.WinUI.Storage;
using Harmonia.WinUI.ViewModels; using Harmonia.WinUI.ViewModels;
@@ -23,7 +23,7 @@ public partial class App : Application
//services.AddSingleton<MainViewModel>(); //services.AddSingleton<MainViewModel>();
services.AddSingleton<PlayerViewModel>(); services.AddSingleton<PlayerViewModel>();
services.AddSingleton<PlayingSongViewModel>(); services.AddSingleton<PlayingSongViewModel>();
services.AddSingleton<PlaylistViewModel>(); services.AddSingleton<PlaylistDetailViewModel>();
services.AddSingleton<IAudioBitmapImageCache, AudioBitmapImageCache>(); services.AddSingleton<IAudioBitmapImageCache, AudioBitmapImageCache>();
services.AddSingleton<IStorageProvider, WindowsStorageProvider>(); services.AddSingleton<IStorageProvider, WindowsStorageProvider>();

View File

@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
<TargetFramework>net10.0-windows10.0.26100.0</TargetFramework> <TargetFramework>net10.0-windows10.0.26100.0</TargetFramework>
@@ -68,7 +68,7 @@
<Page Update="Views\PlayingSongView.xaml"> <Page Update="Views\PlayingSongView.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
</Page> </Page>
<Page Update="Views\PlaylistView.xaml"> <Page Update="Views\PlaylistDetailView.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
</Page> </Page>
<Page Update="Views\PlayerView.xaml"> <Page Update="Views\PlayerView.xaml">

View File

@@ -11,15 +11,29 @@
mc:Ignorable="d" mc:Ignorable="d"
Title="Harmonia.WinUI"> Title="Harmonia.WinUI">
<Window.SystemBackdrop>
<MicaBackdrop />
</Window.SystemBackdrop>
<!--<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center"> <!--<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button x:Name="myButton" Click="myButton_Click">Click Me</Button> <Button x:Name="myButton" Click="myButton_Click">Click Me</Button>
</StackPanel>--> </StackPanel>-->
<Grid> <Grid>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition> <RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition> <RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Grid Grid.RowSpan="2"> <!-- Title Bar -->
<Grid x:Name="AppTitleBar" Grid.Row="0" VerticalAlignment="Center" Padding="10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<!--<Image Grid.Column="0" x:Name="TitleBarIcon" Source="ms-appx:///Assets/Images/MangaReader.png" Width="20" Height="20" Margin="0 0 10 0" />-->
<TextBlock Grid.Column="1" x:Name="AppTitle" Text="{x:Bind Title, Mode=OneWay}" Style="{StaticResource CaptionTextBlockStyle}" VerticalAlignment="Center" />
</Grid>
<Grid Grid.Row="1" Grid.RowSpan="2">
<Image Source="/Assets/Default.png" Stretch="UniformToFill" VerticalAlignment="Center" HorizontalAlignment="Center"></Image> <Image Source="/Assets/Default.png" Stretch="UniformToFill" VerticalAlignment="Center" HorizontalAlignment="Center"></Image>
<Canvas Background="#99000000"></Canvas> <Canvas Background="#99000000"></Canvas>
<Border> <Border>
@@ -28,15 +42,15 @@
</Border.Background> </Border.Background>
</Border> </Border>
</Grid> </Grid>
<Grid Grid.Row="0"> <Grid Grid.Row="1">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<views:PlayingSongView Grid.Column="0"></views:PlayingSongView> <views:PlayingSongView Grid.Column="0"></views:PlayingSongView>
<views:PlaylistView Grid.Column="1"></views:PlaylistView> <views:PlaylistDetailView Grid.Column="1"></views:PlaylistDetailView>
</Grid> </Grid>
<views:PlayerView Grid.Row="1"></views:PlayerView> <views:PlayerView Grid.Row="2"></views:PlayerView>
</Grid> </Grid>
</Window> </Window>

View File

@@ -4,8 +4,18 @@ namespace Harmonia.WinUI;
public sealed partial class MainWindow : Window public sealed partial class MainWindow : Window
{ {
private const string ApplicationTitle = "Harmonia";
public MainWindow() public MainWindow()
{ {
InitializeComponent(); InitializeComponent();
InitializeTitleBar();
}
private void InitializeTitleBar()
{
Title = ApplicationTitle;
ExtendsContentIntoTitleBar = true;
SetTitleBar(AppTitleBar);
} }
} }

View File

@@ -1,4 +1,4 @@
using CommunityToolkit.Mvvm.Input; using CommunityToolkit.Mvvm.Input;
using Harmonia.Core.Caching; using Harmonia.Core.Caching;
using Harmonia.Core.Engine; using Harmonia.Core.Engine;
using Harmonia.Core.Imaging; using Harmonia.Core.Imaging;
@@ -27,7 +27,7 @@ using DispatcherQueueTimer = Microsoft.UI.Dispatching.DispatcherQueueTimer;
namespace Harmonia.WinUI.ViewModels; namespace Harmonia.WinUI.ViewModels;
public partial class PlaylistViewModel : ViewModelBase public partial class PlaylistDetailViewModel : ViewModelBase
{ {
private readonly IPlaylistManager _playlistManager; private readonly IPlaylistManager _playlistManager;
private readonly IAudioPlayer _audioPlayer; private readonly IAudioPlayer _audioPlayer;
@@ -126,7 +126,7 @@ public partial class PlaylistViewModel : ViewModelBase
public event EventHandler? PlayingSongChangedAutomatically; public event EventHandler? PlayingSongChangedAutomatically;
public PlaylistViewModel( public PlaylistDetailViewModel(
IAudioPlayer audioPlayer, IAudioPlayer audioPlayer,
IAudioImageCache audioImageCache, IAudioImageCache audioImageCache,
IAudioBitmapImageCache audioBitmapImageCache, IAudioBitmapImageCache audioBitmapImageCache,

View File

@@ -1,4 +1,4 @@
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
namespace Harmonia.WinUI.ViewModels; namespace Harmonia.WinUI.ViewModels;
@@ -13,6 +13,6 @@ public class ViewModelLocator
public static PlayingSongViewModel PlayingSongViewModel public static PlayingSongViewModel PlayingSongViewModel
=> App.ServiceProvider.GetRequiredService<PlayingSongViewModel>(); => App.ServiceProvider.GetRequiredService<PlayingSongViewModel>();
public static PlaylistViewModel PlaylistViewModel public static PlaylistDetailViewModel PlaylistDetailViewModel
=> App.ServiceProvider.GetRequiredService<PlaylistViewModel>(); => App.ServiceProvider.GetRequiredService<PlaylistDetailViewModel>();
} }

View File

@@ -1,5 +1,5 @@
<UserControl <UserControl
x:Class="Harmonia.WinUI.Views.PlaylistView" x:Class="Harmonia.WinUI.Views.PlaylistDetailView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Harmonia.WinUI.Views" xmlns:local="using:Harmonia.WinUI.Views"
@@ -7,8 +7,8 @@
xmlns:playlists="using:Harmonia.Core.Playlists" xmlns:playlists="using:Harmonia.Core.Playlists"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
DataContext="{Binding Source={StaticResource Locator}, Path=PlaylistViewModel}" DataContext="{Binding Source={StaticResource Locator}, Path=PlaylistDetailViewModel}"
d:DataContext="{d:DesignInstance Type=vm:PlaylistViewModel, IsDesignTimeCreatable=True}" d:DataContext="{d:DesignInstance Type=vm:PlaylistDetailViewModel, IsDesignTimeCreatable=True}"
mc:Ignorable="d"> mc:Ignorable="d">
<UserControl.Resources> <UserControl.Resources>
<!--<SolidColorBrush x:Key="PlaylistBackground" Color="#393a45"/>--> <!--<SolidColorBrush x:Key="PlaylistBackground" Color="#393a45"/>-->

View File

@@ -1,4 +1,4 @@
using CommunityToolkit.WinUI; using CommunityToolkit.WinUI;
using Harmonia.Core.Imaging; using Harmonia.Core.Imaging;
using Harmonia.Core.Playlists; using Harmonia.Core.Playlists;
using Harmonia.WinUI.ViewModels; using Harmonia.WinUI.ViewModels;
@@ -18,15 +18,15 @@ using Windows.UI.Popups;
namespace Harmonia.WinUI.Views; namespace Harmonia.WinUI.Views;
public sealed partial class PlaylistView : UserControl public sealed partial class PlaylistDetailView : UserControl
{ {
private readonly PlaylistViewModel _viewModel; private readonly PlaylistDetailViewModel _viewModel;
public PlaylistView() public PlaylistDetailView()
{ {
InitializeComponent(); InitializeComponent();
_viewModel = (PlaylistViewModel)DataContext; _viewModel = (PlaylistDetailViewModel)DataContext;
_viewModel.PropertyChanging += OnViewModelPropertyChanging; _viewModel.PropertyChanging += OnViewModelPropertyChanging;
_viewModel.PropertyChanged += OnViewModelPropertyChanged; _viewModel.PropertyChanged += OnViewModelPropertyChanged;
_viewModel.PlayingSongChangedAutomatically += OnPlayingSongChangedAutomatically; _viewModel.PlayingSongChangedAutomatically += OnPlayingSongChangedAutomatically;