[GUI] Use dir_colors to color files in Subdirectory window.

This commit is contained in:
2025-10-27 11:19:26 +00:00
parent b3e01b3487
commit 03e6e6cbe2
3 changed files with 18 additions and 2 deletions

View File

@@ -32,6 +32,7 @@
using System; using System;
using Aaru.CommonTypes.Structs; using Aaru.CommonTypes.Structs;
using Avalonia.Media;
using JetBrains.Annotations; using JetBrains.Annotations;
namespace Aaru.Gui.Models; namespace Aaru.Gui.Models;
@@ -76,5 +77,6 @@ public sealed class FileModel
[NotNull] [NotNull]
public string Mode => $"{Stat.Mode}"; public string Mode => $"{Stat.Mode}";
public FileEntryInfo Stat { get; set; } public FileEntryInfo Stat { get; set; }
public IBrush Color { get; set; }
} }

View File

@@ -43,9 +43,11 @@ using Aaru.CommonTypes.Interop;
using Aaru.CommonTypes.Structs; using Aaru.CommonTypes.Structs;
using Aaru.Core; using Aaru.Core;
using Aaru.Gui.Models; using Aaru.Gui.Models;
using Aaru.Helpers;
using Aaru.Localization; using Aaru.Localization;
using Aaru.Logging; using Aaru.Logging;
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Media;
using Avalonia.Platform.Storage; using Avalonia.Platform.Storage;
using CommunityToolkit.Mvvm.Input; using CommunityToolkit.Mvvm.Input;
using JetBrains.Annotations; using JetBrains.Annotations;
@@ -112,7 +114,13 @@ public sealed class SubdirectoryViewModel
Entries.Add(new FileModel Entries.Add(new FileModel
{ {
Name = dirent, Name = dirent,
Stat = stat Stat = stat,
Color =
new SolidColorBrush(Color.Parse(DirColorsParser.Instance.ExtensionColors
.TryGetValue(Path.GetExtension(dirent),
out string hex)
? hex
: DirColorsParser.Instance.NormalColor))
}); });
} }

View File

@@ -49,6 +49,12 @@
ItemsSource="{Binding Entries, Mode=OneWay}" ItemsSource="{Binding Entries, Mode=OneWay}"
IsReadOnly="True" IsReadOnly="True"
SelectionMode="Extended"> <!-- TODO: SelectedItemsSource="{Binding SelectedEntries}" --> SelectionMode="Extended"> <!-- TODO: SelectedItemsSource="{Binding SelectedEntries}" -->
<DataGrid.Styles>
<Style Selector="DataGridRow">
<Setter Property="Foreground"
Value="{Binding Color, Mode=OneWay}" />
</Style>
</DataGrid.Styles>
<DataGrid.ContextMenu> <DataGrid.ContextMenu>
<ContextMenu> <ContextMenu>
<Button Command="{Binding ExtractFilesCommand, Mode=OneWay}"> <Button Command="{Binding ExtractFilesCommand, Mode=OneWay}">