|
@@ -2,7 +2,7 @@
|
|
using PicView.Avalonia.Interfaces;
|
|
using PicView.Avalonia.Interfaces;
|
|
using PicView.Avalonia.UI;
|
|
using PicView.Avalonia.UI;
|
|
using PicView.Avalonia.ViewModels;
|
|
using PicView.Avalonia.ViewModels;
|
|
-using PicView.Core.FileHandling;
|
|
|
|
|
|
+using PicView.Core.FileSorting;
|
|
|
|
|
|
namespace PicView.Avalonia.Navigation;
|
|
namespace PicView.Avalonia.Navigation;
|
|
|
|
|
|
@@ -21,12 +21,12 @@ public static class FileListManager
|
|
/// <returns>A sorted list of file paths.</returns>
|
|
/// <returns>A sorted list of file paths.</returns>
|
|
public static List<string> SortIEnumerable(IEnumerable<string> files, IPlatformSpecificService? platformService)
|
|
public static List<string> SortIEnumerable(IEnumerable<string> files, IPlatformSpecificService? platformService)
|
|
{
|
|
{
|
|
- var sortFilesBy = FileListHelper.GetSortOrder();
|
|
|
|
|
|
+ var sortFilesBy = FileSortHelper.GetSortOrder();
|
|
|
|
|
|
switch (sortFilesBy)
|
|
switch (sortFilesBy)
|
|
{
|
|
{
|
|
default:
|
|
default:
|
|
- case FileListHelper.SortFilesBy.Name: // Alphanumeric sort
|
|
|
|
|
|
+ case SortFilesBy.Name: // Alphanumeric sort
|
|
var list = files.ToList();
|
|
var list = files.ToList();
|
|
if (Settings.Sorting.Ascending)
|
|
if (Settings.Sorting.Ascending)
|
|
{
|
|
{
|
|
@@ -39,38 +39,38 @@ public static class FileListManager
|
|
|
|
|
|
return list;
|
|
return list;
|
|
|
|
|
|
- case FileListHelper.SortFilesBy.FileSize: // Sort by file size
|
|
|
|
|
|
+ case SortFilesBy.FileSize: // Sort by file size
|
|
var fileInfoList = files.Select(f => new FileInfo(f)).ToList();
|
|
var fileInfoList = files.Select(f => new FileInfo(f)).ToList();
|
|
var sortedBySize = Settings.Sorting.Ascending
|
|
var sortedBySize = Settings.Sorting.Ascending
|
|
? fileInfoList.OrderBy(f => f.Length)
|
|
? fileInfoList.OrderBy(f => f.Length)
|
|
: fileInfoList.OrderByDescending(f => f.Length);
|
|
: fileInfoList.OrderByDescending(f => f.Length);
|
|
return sortedBySize.Select(f => f.FullName).ToList();
|
|
return sortedBySize.Select(f => f.FullName).ToList();
|
|
|
|
|
|
- case FileListHelper.SortFilesBy.Extension: // Sort by file extension
|
|
|
|
|
|
+ case SortFilesBy.Extension: // Sort by file extension
|
|
var sortedByExtension = Settings.Sorting.Ascending
|
|
var sortedByExtension = Settings.Sorting.Ascending
|
|
? files.OrderBy(Path.GetExtension)
|
|
? files.OrderBy(Path.GetExtension)
|
|
: files.OrderByDescending(Path.GetExtension);
|
|
: files.OrderByDescending(Path.GetExtension);
|
|
return sortedByExtension.ToList();
|
|
return sortedByExtension.ToList();
|
|
|
|
|
|
- case FileListHelper.SortFilesBy.CreationTime: // Sort by file creation time
|
|
|
|
|
|
+ case SortFilesBy.CreationTime: // Sort by file creation time
|
|
var sortedByCreationTime = Settings.Sorting.Ascending
|
|
var sortedByCreationTime = Settings.Sorting.Ascending
|
|
? files.OrderBy(f => new FileInfo(f).CreationTime)
|
|
? files.OrderBy(f => new FileInfo(f).CreationTime)
|
|
: files.OrderByDescending(f => new FileInfo(f).CreationTime);
|
|
: files.OrderByDescending(f => new FileInfo(f).CreationTime);
|
|
return sortedByCreationTime.ToList();
|
|
return sortedByCreationTime.ToList();
|
|
|
|
|
|
- case FileListHelper.SortFilesBy.LastAccessTime: // Sort by file last access time
|
|
|
|
|
|
+ case SortFilesBy.LastAccessTime: // Sort by file last access time
|
|
var sortedByLastAccessTime = Settings.Sorting.Ascending
|
|
var sortedByLastAccessTime = Settings.Sorting.Ascending
|
|
? files.OrderBy(f => new FileInfo(f).LastAccessTime)
|
|
? files.OrderBy(f => new FileInfo(f).LastAccessTime)
|
|
: files.OrderByDescending(f => new FileInfo(f).LastAccessTime);
|
|
: files.OrderByDescending(f => new FileInfo(f).LastAccessTime);
|
|
return sortedByLastAccessTime.ToList();
|
|
return sortedByLastAccessTime.ToList();
|
|
|
|
|
|
- case FileListHelper.SortFilesBy.LastWriteTime: // Sort by file last write time
|
|
|
|
|
|
+ case SortFilesBy.LastWriteTime: // Sort by file last write time
|
|
var sortedByLastWriteTime = Settings.Sorting.Ascending
|
|
var sortedByLastWriteTime = Settings.Sorting.Ascending
|
|
? files.OrderBy(f => new FileInfo(f).LastWriteTime)
|
|
? files.OrderBy(f => new FileInfo(f).LastWriteTime)
|
|
: files.OrderByDescending(f => new FileInfo(f).LastWriteTime);
|
|
: files.OrderByDescending(f => new FileInfo(f).LastWriteTime);
|
|
return sortedByLastWriteTime.ToList();
|
|
return sortedByLastWriteTime.ToList();
|
|
|
|
|
|
- case FileListHelper.SortFilesBy.Random: // Sort files randomly
|
|
|
|
|
|
+ case SortFilesBy.Random: // Sort files randomly
|
|
return files.OrderBy(f => Guid.NewGuid()).ToList();
|
|
return files.OrderBy(f => Guid.NewGuid()).ToList();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -81,7 +81,7 @@ public static class FileListManager
|
|
/// <param name="platformSpecificService">Platform-specific service for file retrieval and sorting.</param>
|
|
/// <param name="platformSpecificService">Platform-specific service for file retrieval and sorting.</param>
|
|
/// <param name="vm">The main view model instance.</param>
|
|
/// <param name="vm">The main view model instance.</param>
|
|
/// <param name="sortFilesBy">The sort order to apply.</param>
|
|
/// <param name="sortFilesBy">The sort order to apply.</param>
|
|
- public static async Task UpdateFileList(IPlatformSpecificService? platformSpecificService, MainViewModel vm, FileListHelper.SortFilesBy sortFilesBy)
|
|
|
|
|
|
+ public static async Task UpdateFileList(IPlatformSpecificService? platformSpecificService, MainViewModel vm, SortFilesBy sortFilesBy)
|
|
{
|
|
{
|
|
Settings.Sorting.SortPreference = (int)sortFilesBy;
|
|
Settings.Sorting.SortPreference = (int)sortFilesBy;
|
|
if (!NavigationManager.CanNavigate(vm))
|
|
if (!NavigationManager.CanNavigate(vm))
|