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}");
}
}
}