Add colors.

This commit is contained in:
2025-10-15 22:05:55 +01:00
parent b48507b6d0
commit fa28824ae8
5 changed files with 85 additions and 10 deletions

View File

@@ -1,17 +1,23 @@
using System.Collections.ObjectModel;
using System.Reflection;
using System.Windows.Input;
using Aaru.Helpers;
using Aaru.Tui.Models;
using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Media;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using Color = Avalonia.Media.Color;
namespace Aaru.Tui.ViewModels.Windows;
public sealed class MainWindowViewModel : ViewModelBase
public sealed partial class MainWindowViewModel : ViewModelBase
{
[ObservableProperty]
ObservableCollection<string> _files = [];
public string _copyright;
[ObservableProperty]
ObservableCollection<FileModel> _files = [];
[ObservableProperty]
public string _informationalVersion;
@@ -24,6 +30,8 @@ public sealed class MainWindowViewModel : ViewModelBase
.GetCustomAttribute<AssemblyInformationalVersionAttribute>()
?.InformationalVersion ??
"?.?.?";
Copyright = Assembly.GetExecutingAssembly().GetCustomAttribute<AssemblyCopyrightAttribute>()?.Copyright ?? "";
}
public ICommand ExitCommand { get; }
@@ -36,10 +44,47 @@ public sealed class MainWindowViewModel : ViewModelBase
public void LoadComplete()
{
Files.Add("..");
var parentDirectory = new FileModel
{
Filename = "..",
Path = Path.GetRelativePath(Directory.GetCurrentDirectory(), ".."),
ForegroundBrush =
new SolidColorBrush(Color.Parse(DirColorsParser.Instance.DirectoryColor ??
DirColorsParser.Instance.NormalColor))
};
Files.Add(parentDirectory);
foreach(FileModel model in Directory
.GetDirectories(Directory.GetCurrentDirectory(), "*", SearchOption.TopDirectoryOnly)
.Select(directory => new FileModel
{
Path = directory,
Filename = Path.GetFileName(directory),
ForegroundBrush =
new SolidColorBrush(Color.Parse(DirColorsParser.Instance.DirectoryColor ??
DirColorsParser.Instance.NormalColor))
}))
Files.Add(model);
foreach(string file in
Directory.GetFiles(Directory.GetCurrentDirectory(), "*.*", SearchOption.TopDirectoryOnly))
Files.Add(Path.GetFileName(file));
Directory.GetFiles(Directory.GetCurrentDirectory(), "*", SearchOption.TopDirectoryOnly))
{
var model = new FileModel
{
Path = file,
Filename = Path.GetFileName(file)
};
string extension = Path.GetExtension(file);
model.ForegroundBrush =
new SolidColorBrush(Color.Parse(DirColorsParser.Instance.ExtensionColors.TryGetValue(extension,
out string? hex)
? hex
: DirColorsParser.Instance.NormalColor));
Files.Add(model);
}
}
}