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.Storage;
using Harmonia.WinUI.ViewModels;
@@ -23,7 +23,7 @@ public partial class App : Application
//services.AddSingleton<MainViewModel>();
services.AddSingleton<PlayerViewModel>();
services.AddSingleton<PlayingSongViewModel>();
services.AddSingleton<PlaylistViewModel>();
services.AddSingleton<PlaylistDetailViewModel>();
services.AddSingleton<IAudioBitmapImageCache, AudioBitmapImageCache>();
services.AddSingleton<IStorageProvider, WindowsStorageProvider>();

View File

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

View File

@@ -11,15 +11,29 @@
mc:Ignorable="d"
Title="Harmonia.WinUI">
<Window.SystemBackdrop>
<MicaBackdrop />
</Window.SystemBackdrop>
<!--<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button x:Name="myButton" Click="myButton_Click">Click Me</Button>
</StackPanel>-->
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</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>
<Canvas Background="#99000000"></Canvas>
<Border>
@@ -28,15 +42,15 @@
</Border.Background>
</Border>
</Grid>
<Grid Grid.Row="0">
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<views:PlayingSongView Grid.Column="0"></views:PlayingSongView>
<views:PlaylistView Grid.Column="1"></views:PlaylistView>
<views:PlaylistDetailView Grid.Column="1"></views:PlaylistDetailView>
</Grid>
<views:PlayerView Grid.Row="1"></views:PlayerView>
<views:PlayerView Grid.Row="2"></views:PlayerView>
</Grid>
</Window>

View File

@@ -4,8 +4,18 @@ namespace Harmonia.WinUI;
public sealed partial class MainWindow : Window
{
private const string ApplicationTitle = "Harmonia";
public MainWindow()
{
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.Engine;
using Harmonia.Core.Imaging;
@@ -27,7 +27,7 @@ using DispatcherQueueTimer = Microsoft.UI.Dispatching.DispatcherQueueTimer;
namespace Harmonia.WinUI.ViewModels;
public partial class PlaylistViewModel : ViewModelBase
public partial class PlaylistDetailViewModel : ViewModelBase
{
private readonly IPlaylistManager _playlistManager;
private readonly IAudioPlayer _audioPlayer;
@@ -126,7 +126,7 @@ public partial class PlaylistViewModel : ViewModelBase
public event EventHandler? PlayingSongChangedAutomatically;
public PlaylistViewModel(
public PlaylistDetailViewModel(
IAudioPlayer audioPlayer,
IAudioImageCache audioImageCache,
IAudioBitmapImageCache audioBitmapImageCache,

View File

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

View File

@@ -1,5 +1,5 @@
<UserControl
x:Class="Harmonia.WinUI.Views.PlaylistView"
<UserControl
x:Class="Harmonia.WinUI.Views.PlaylistDetailView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Harmonia.WinUI.Views"
@@ -7,8 +7,8 @@
xmlns:playlists="using:Harmonia.Core.Playlists"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
DataContext="{Binding Source={StaticResource Locator}, Path=PlaylistViewModel}"
d:DataContext="{d:DesignInstance Type=vm:PlaylistViewModel, IsDesignTimeCreatable=True}"
DataContext="{Binding Source={StaticResource Locator}, Path=PlaylistDetailViewModel}"
d:DataContext="{d:DesignInstance Type=vm:PlaylistDetailViewModel, IsDesignTimeCreatable=True}"
mc:Ignorable="d">
<UserControl.Resources>
<!--<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.Playlists;
using Harmonia.WinUI.ViewModels;
@@ -18,15 +18,15 @@ using Windows.UI.Popups;
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();
_viewModel = (PlaylistViewModel)DataContext;
_viewModel = (PlaylistDetailViewModel)DataContext;
_viewModel.PropertyChanging += OnViewModelPropertyChanging;
_viewModel.PropertyChanged += OnViewModelPropertyChanged;
_viewModel.PlayingSongChangedAutomatically += OnPlayingSongChangedAutomatically;