diff --git a/App.axaml b/App.axaml index cd700b7..aa0a099 100644 --- a/App.axaml +++ b/App.axaml @@ -1,11 +1,41 @@ - + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + x:Class="MercuryConverter.App" + RequestedThemeVariant="Default"> + - + + + + + + + + + + + + + + + + #40FFFFFF + #40FFFFFF + + + #20000000 + #20000000 + + + + + + + + \ No newline at end of file diff --git a/Assets/jacket-placeholder.png b/Assets/jacket-placeholder.png new file mode 100644 index 0000000..bcb2596 Binary files /dev/null and b/Assets/jacket-placeholder.png differ diff --git a/Data/Song/Song.cs b/Data/Song/Song.cs index a1f0734..754ec46 100644 --- a/Data/Song/Song.cs +++ b/Data/Song/Song.cs @@ -9,15 +9,14 @@ public class Song /// /// Format: `Snn-nnn` where `n` is a digit. /// - public required string id; - public required string name; - public required string rubi; - public required string artist; - public required string copyright; - public required string tempo; - public required string version; - public required int genreId; - public required string game; - public required string jacket; + public required string Id { get; set;} + public required string Name { get; set; } + public required string Artist { get; set; } + public required string Source { get; set; } + public string rubi; + public string copyright; + public string tempo; + public int genreId; + public string jacket; public Chart?[] charts = { null, null, null, null }; } \ No newline at end of file diff --git a/MainWindow.axaml b/MainWindow.axaml index 1d5c926..9658680 100644 --- a/MainWindow.axaml +++ b/MainWindow.axaml @@ -8,23 +8,24 @@ x:Class="MercuryConverter.MainWindow" Title="MercuryConverter" Width="1024" Height="800" + MinWidth="800" MinHeight="600" ExtendClientAreaToDecorationsHint="True" > - - - - - - - - + + + + + + + + - - + + diff --git a/MainWindow.axaml.cs b/MainWindow.axaml.cs index 8374a92..ba07539 100644 --- a/MainWindow.axaml.cs +++ b/MainWindow.axaml.cs @@ -7,18 +7,6 @@ using MercuryConverter.Views; public partial class MainWindow : Window { - public string RunType - { - get - { - if (Design.IsDesignMode) - { - return "In Design!"; - } - return "In Runtime."; - } - } - public MainWindow() { InitializeComponent(); @@ -28,7 +16,6 @@ public partial class MainWindow : Window { RequestedThemeVariant = ThemeVariant.Dark; } - // LblPlatform.Content = RunType; // Setup tab views SelectionControl.Content = new Selection(); diff --git a/MercuryConverter.csproj b/MercuryConverter.csproj index 29a7fbc..5d4913f 100644 --- a/MercuryConverter.csproj +++ b/MercuryConverter.csproj @@ -5,7 +5,7 @@ enable true app.manifest - true + false @@ -20,4 +20,8 @@ All + + + + diff --git a/Overrides/Expander.axaml b/Overrides/Expander.axaml new file mode 100644 index 0000000..3f51f17 --- /dev/null +++ b/Overrides/Expander.axaml @@ -0,0 +1,336 @@ + + + + + + + + Expanded content + + + + + Expanded content + + + + + Expanded content + + + + + Expanded content + + + + + + + + + + + Expanded content + + + + + Expanded content + + + + + + + + 48 + + + Stretch + Center + 16,0,0,0 + 0 + 0 + 20,0,8,0 + 32 + + + 8 + 0,0,0,0 + 0,0,0,0 + 0,0,0,0 + 0,0,0,0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Views/Selection/Selection.axaml b/Views/Selection/Selection.axaml index ce44557..b5648d6 100644 --- a/Views/Selection/Selection.axaml +++ b/Views/Selection/Selection.axaml @@ -7,25 +7,25 @@ > - - - - - Search/Filter - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Views/Selection/Selection.axaml.cs b/Views/Selection/Selection.axaml.cs index 74e5e38..004ddfa 100644 --- a/Views/Selection/Selection.axaml.cs +++ b/Views/Selection/Selection.axaml.cs @@ -1,15 +1,38 @@ using System; +using System.Collections.ObjectModel; using System.Collections.Specialized; using Avalonia.Controls; +using MercuryConverter.Data; namespace MercuryConverter.Views; public partial class Selection : Panel { + public static ObservableCollection SongCollection { get; } = new(); public Selection() { InitializeComponent(); - Database.Songs.CollectionChanged += OnSongsChg; + ListingTable.SelectionMode = DataGridSelectionMode.Extended; + SourceFilter.ItemsSource = new string[]{ + "", + Consts.NUM_SOURCE[1], + Consts.NUM_SOURCE[2], + Consts.NUM_SOURCE[3], + Consts.NUM_SOURCE[4], + Consts.NUM_SOURCE[5], + }; + + SongCollection.CollectionChanged += OnSongsChg; + DataContext = this; + + // test data + SongCollection.Add( + new Song { Id = "S00-000", Name = "A Name", Artist = "An Artist", Source = Consts.NUM_SOURCE[2] } + ); + SongCollection.Add( + new Song { Id = "S00-000", Name = "A Name", Artist = "An Artist", Source = Consts.NUM_SOURCE[3] } + ); + } private void OnSongsChg(object? sender, NotifyCollectionChangedEventArgs e) @@ -19,17 +42,17 @@ public partial class Selection : Panel if (e.NewItems != null) { Console.WriteLine("Added..."); - foreach (Data.Song added in e.NewItems) + foreach (Song added in e.NewItems) { - Console.WriteLine($"[{added.id}] {added.artist} - {added.name}"); + Console.WriteLine($"[{added.Id}] {added.Artist} - {added.Name}"); } } if (e.OldItems != null) { Console.WriteLine("Removed..."); - foreach (Data.Song rem in e.OldItems) + foreach (Song rem in e.OldItems) { - Console.WriteLine($"[{rem.id}] {rem.artist} - {rem.name}"); + Console.WriteLine($"[{rem.Id}] {rem.Artist} - {rem.Name}"); } } }