@@ -221,6 +221,14 @@ public async Task UpdateSortDirectoriesAlongsideFilesAsync()
221221 await ApplyFilesAndFoldersChangesAsync ( ) ;
222222 }
223223
224+ public async Task UpdateSortFilesFirstAsync ( )
225+ {
226+ OnPropertyChanged ( nameof ( AreFilesSortedFirst ) ) ;
227+
228+ await OrderFilesAndFoldersAsync ( ) ;
229+ await ApplyFilesAndFoldersChangesAsync ( ) ;
230+ }
231+
224232 private void UpdateSortAndGroupOptions ( )
225233 {
226234 OnPropertyChanged ( nameof ( IsSortedByName ) ) ;
@@ -236,6 +244,7 @@ private void UpdateSortAndGroupOptions()
236244 OnPropertyChanged ( nameof ( IsSortedAscending ) ) ;
237245 OnPropertyChanged ( nameof ( IsSortedDescending ) ) ;
238246 OnPropertyChanged ( nameof ( AreDirectoriesSortedAlongsideFiles ) ) ;
247+ OnPropertyChanged ( nameof ( AreFilesSortedFirst ) ) ;
239248 }
240249
241250 public bool IsSortedByName
@@ -406,6 +415,16 @@ public bool AreDirectoriesSortedAlongsideFiles
406415 }
407416 }
408417
418+ public bool AreFilesSortedFirst
419+ {
420+ get => folderSettings . SortFilesFirst ;
421+ set
422+ {
423+ folderSettings . SortFilesFirst = value ;
424+ OnPropertyChanged ( nameof ( AreFilesSortedFirst ) ) ;
425+ }
426+ }
427+
409428 public bool HasNoWatcher { get ; private set ; }
410429
411430 public ItemViewModel ( LayoutPreferencesManager folderSettingsViewModel )
@@ -547,6 +566,7 @@ await dispatcherQueue.EnqueueOrInvokeAsync(() =>
547566 case nameof ( UserSettingsService . FoldersSettingsService . DefaultSortOption ) :
548567 case nameof ( UserSettingsService . FoldersSettingsService . DefaultGroupOption ) :
549568 case nameof ( UserSettingsService . FoldersSettingsService . DefaultSortDirectoriesAlongsideFiles ) :
569+ case nameof ( UserSettingsService . FoldersSettingsService . DefaultSortFilesFirst ) :
550570 case nameof ( UserSettingsService . FoldersSettingsService . SyncFolderPreferencesAcrossDirectories ) :
551571 case nameof ( UserSettingsService . FoldersSettingsService . DefaultGroupByDateUnit ) :
552572 await dispatcherQueue . EnqueueOrInvokeAsync ( ( ) =>
@@ -602,7 +622,8 @@ await dispatcherQueue.EnqueueOrInvokeAsync(() =>
602622 {
603623 var key = FilesAndFolders . ItemGroupKeySelector ? . Invoke ( item ) ;
604624 var group = FilesAndFolders . GroupedCollection ? . FirstOrDefault ( x => x . Model . Key == key ) ;
605- group ? . OrderOne ( list => SortingHelper . OrderFileList ( list , folderSettings . DirectorySortOption , folderSettings . DirectorySortDirection , folderSettings . SortDirectoriesAlongsideFiles ) , item ) ;
625+ group ? . OrderOne ( list => SortingHelper . OrderFileList ( list , folderSettings . DirectorySortOption , folderSettings . DirectorySortDirection ,
626+ folderSettings . SortDirectoriesAlongsideFiles , folderSettings . SortFilesFirst ) , item ) ;
606627 }
607628
608629 UpdateEmptyTextType ( ) ;
@@ -753,7 +774,8 @@ void OrderEntries()
753774 if ( filesAndFolders . Count == 0 )
754775 return ;
755776
756- filesAndFolders = new ConcurrentCollection < ListedItem > ( SortingHelper . OrderFileList ( filesAndFolders . ToList ( ) , folderSettings . DirectorySortOption , folderSettings . DirectorySortDirection , folderSettings . SortDirectoriesAlongsideFiles ) ) ;
777+ filesAndFolders = new ConcurrentCollection < ListedItem > ( SortingHelper . OrderFileList ( filesAndFolders . ToList ( ) , folderSettings . DirectorySortOption , folderSettings . DirectorySortDirection ,
778+ folderSettings . SortDirectoriesAlongsideFiles , folderSettings . SortFilesFirst ) ) ;
757779 }
758780
759781 if ( NativeWinApiHelper . IsHasThreadAccessPropertyPresent && dispatcherQueue . HasThreadAccess )
@@ -775,7 +797,8 @@ private void OrderGroups(CancellationToken token = default)
775797 if ( token . IsCancellationRequested )
776798 return ;
777799
778- gp . Order ( list => SortingHelper . OrderFileList ( list , folderSettings . DirectorySortOption , folderSettings . DirectorySortDirection , folderSettings . SortDirectoriesAlongsideFiles ) ) ;
800+ gp . Order ( list => SortingHelper . OrderFileList ( list , folderSettings . DirectorySortOption , folderSettings . DirectorySortDirection ,
801+ folderSettings . SortDirectoriesAlongsideFiles , folderSettings . SortFilesFirst ) ) ;
779802 }
780803
781804 if ( FilesAndFolders . GroupedCollection is null || FilesAndFolders . GroupedCollection . IsSorted )
0 commit comments