feat: Added a settings page.

This commit is contained in:
real-zony
2024-06-28 15:07:06 +08:00
parent 5ccd8a7c53
commit 4f15d06e63
14 changed files with 201 additions and 46 deletions

View File

@@ -1,9 +1,14 @@
using System.Linq;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Interactivity;
using Avalonia.Platform.Storage;
using DynamicData;
using FluentAvalonia.UI.Controls;
using Microsoft.Extensions.DependencyInjection;
using ZonyLrcTools.Common;
using ZonyLrcTools.Desktop.Pages;
using ZonyLrcTools.Desktop.ViewModels;
namespace ZonyLrcTools.Desktop.Views;
@@ -41,14 +46,20 @@ public partial class MainView : UserControl
private async void OnOpenFolderButtonClick(object? sender, RoutedEventArgs e)
{
var storage = _window?.StorageProvider;
if (storage?.CanOpen == true)
var musicInfoLoader = App.Current.Services.GetRequiredService<IMusicInfoLoader>();
if (storage?.CanOpen == true && DataContext is HomeViewModel vm)
{
var options = new FolderPickerOpenOptions
{
SuggestedStartLocation = await storage.TryGetWellKnownFolderAsync(WellKnownFolder.Music)
};
var folders = await storage.OpenFolderPickerAsync(options);
var folderPath = folders[0].Path;
var folderPath = folders[0].Path.LocalPath;
var musicInfos = await musicInfoLoader.LoadAsync(folderPath);
vm.Songs.Clear();
vm.Songs.AddRange(musicInfos.Select(x => new SongInfoViewModel(x!)));
}
}

View File

@@ -1,4 +1,5 @@
using Avalonia.Controls;
using ZonyLrcTools.Desktop.ViewModels;
namespace ZonyLrcTools.Desktop.Views;
@@ -6,6 +7,7 @@ public partial class MainWindow : Window
{
public MainWindow()
{
DataContext = new HomeViewModel();
InitializeComponent();
}
}