Add Git overlay, operation tools, and virtualized preview so large folders stay responsive.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-24 15:04:04 +02:00
parent 9bf451932f
commit a3c54bbb03
127 changed files with 14748 additions and 633 deletions

View File

@@ -0,0 +1,53 @@
namespace Explorer.Domain;
public sealed record FileClassification(FileCategory Category, string Reason);
public sealed record OrganizePreviewRow(
string Name,
string Category,
string Action,
string? Destination,
string? Detail);
public sealed class OrganizeDestinations
{
public string Pictures { get; set; } = "";
public string Videos { get; set; } = "";
public string Audio { get; set; } = "";
public string Documents { get; set; } = "";
public string Installers { get; set; } = "";
public string Archives { get; set; } = "";
public string Development { get; set; } = "";
public string? For(FileCategory category)
=> category switch
{
FileCategory.Photos => EmptyToNull(Pictures),
FileCategory.Video => EmptyToNull(Videos),
FileCategory.Audio => EmptyToNull(Audio),
FileCategory.Documents => EmptyToNull(Documents),
FileCategory.Installer => EmptyToNull(Installers),
FileCategory.Archive => EmptyToNull(Archives),
FileCategory.CodeRepository => EmptyToNull(Development),
_ => null
};
public static string Label(FileCategory category)
=> category switch
{
FileCategory.Photos => "Photos",
FileCategory.Video => "Video",
FileCategory.Audio => "Audio",
FileCategory.Documents => "Documents",
FileCategory.CodeRepository => "Code repository",
FileCategory.Installer => "Installer",
FileCategory.Backup => "Backup",
FileCategory.Archive => "Archive",
FileCategory.SystemData => "System data",
FileCategory.BuildOutput => "Build output",
_ => "Unknown"
};
private static string? EmptyToNull(string value)
=> string.IsNullOrWhiteSpace(value) ? null : value.Trim();
}