Skip to content

Commit 8c6e086

Browse files
authored
Feature: Rearranged folder options in the settings dialog (#10962)
1 parent 6b6fb1a commit 8c6e086

File tree

19 files changed

+255
-190
lines changed

19 files changed

+255
-190
lines changed

src/Files.App/BaseLayout.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -918,7 +918,7 @@ private void RefreshContainer(SelectorItem container, bool inRecycleQueue)
918918
{
919919
container.PointerPressed += FileListItem_PointerPressed;
920920
container.RightTapped += FileListItem_RightTapped;
921-
if (UserSettingsService.PreferencesSettingsService.SelectFilesOnHover)
921+
if (UserSettingsService.FoldersSettingsService.SelectFilesOnHover)
922922
{
923923
container.PointerEntered += FileListItem_PointerEntered;
924924
container.PointerExited += FileListItem_PointerExited;
@@ -971,7 +971,7 @@ protected static void FileListItem_PointerPressed(object sender, PointerRoutedEv
971971

972972
protected internal void FileListItem_PointerEntered(object sender, PointerRoutedEventArgs e)
973973
{
974-
if (!UserSettingsService.PreferencesSettingsService.SelectFilesOnHover)
974+
if (!UserSettingsService.FoldersSettingsService.SelectFilesOnHover)
975975
return;
976976

977977
var hovered = GetItemFromElement(sender);
@@ -1015,7 +1015,7 @@ selectedItems is not null &&
10151015

10161016
protected internal void FileListItem_PointerExited(object sender, PointerRoutedEventArgs e)
10171017
{
1018-
if (!UserSettingsService.PreferencesSettingsService.SelectFilesOnHover)
1018+
if (!UserSettingsService.FoldersSettingsService.SelectFilesOnHover)
10191019
return;
10201020

10211021
hoverTimer.Stop();

src/Files.App/Filesystem/FilesystemOperations/Helpers/FilesystemHelpers.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ public async Task<ReturnResult> DeleteItemsAsync(IEnumerable<IStorageItemWithPat
120120
var deleteFromRecycleBin = source.Select(item => item.Path).Any(path => recycleBinHelpers.IsPathUnderRecycleBin(path));
121121
var canBeSentToBin = !deleteFromRecycleBin && await recycleBinHelpers.HasRecycleBin(source.FirstOrDefault()?.Path);
122122

123-
if (showDialog && UserSettingsService.PreferencesSettingsService.ShowConfirmDeleteDialog) // Check if the setting to show a confirmation dialog is on
123+
if (showDialog && UserSettingsService.FoldersSettingsService.ShowConfirmDeleteDialog) // Check if the setting to show a confirmation dialog is on
124124
{
125125
var incomingItems = new List<BaseFileSystemDialogItemViewModel>();
126126
List<ShellFileItem>? binItems = null;
@@ -253,7 +253,7 @@ public async Task<ReturnResult> PerformOperationTypeAsync(DataPackageOperation o
253253
}
254254
if (destination.StartsWith(CommonPaths.RecycleBinPath, StringComparison.Ordinal))
255255
{
256-
showDialog |= UserSettingsService.PreferencesSettingsService.ShowConfirmDeleteDialog;
256+
showDialog |= UserSettingsService.FoldersSettingsService.ShowConfirmDeleteDialog;
257257
return await RecycleItemsFromClipboard(packageView, destination, showDialog, registerHistory);
258258
}
259259
else if (operation.HasFlag(DataPackageOperation.Copy))

src/Files.App/Filesystem/ListedItem.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ public virtual string Name
270270
if (PrimaryItemAttribute == StorageItemTypes.File)
271271
{
272272
var nameWithoutExtension = Path.GetFileNameWithoutExtension(itemNameRaw);
273-
if (!string.IsNullOrEmpty(nameWithoutExtension) && !UserSettingsService.PreferencesSettingsService.ShowFileExtensions)
273+
if (!string.IsNullOrEmpty(nameWithoutExtension) && !UserSettingsService.FoldersSettingsService.ShowFileExtensions)
274274
{
275275
return nameWithoutExtension;
276276
}
@@ -537,7 +537,7 @@ public override string Name
537537
get
538538
{
539539
var nameWithoutExtension = Path.GetFileNameWithoutExtension(ItemNameRaw);
540-
if (!string.IsNullOrEmpty(nameWithoutExtension) && !UserSettingsService.PreferencesSettingsService.ShowFileExtensions)
540+
if (!string.IsNullOrEmpty(nameWithoutExtension) && !UserSettingsService.FoldersSettingsService.ShowFileExtensions)
541541
{
542542
return nameWithoutExtension;
543543
}
@@ -588,7 +588,7 @@ public override string Name
588588
{
589589
var nameWithoutExtension = Path.GetFileNameWithoutExtension(ItemNameRaw);
590590
var mainStreamNameWithoutExtension = Path.GetFileNameWithoutExtension(MainStreamName);
591-
if (!UserSettingsService.PreferencesSettingsService.ShowFileExtensions)
591+
if (!UserSettingsService.FoldersSettingsService.ShowFileExtensions)
592592
{
593593
return $"{(string.IsNullOrEmpty(mainStreamNameWithoutExtension) ? MainStreamName : mainStreamNameWithoutExtension)}:{(string.IsNullOrEmpty(nameWithoutExtension) ? ItemNameRaw : nameWithoutExtension)}";
594594
}

src/Files.App/ServicesImplementation/Settings/FoldersSettingsService.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,30 @@ public GroupOption DefaultGroupOption
220220
set => Set((long)value);
221221
}
222222

223+
public bool ShowFileExtensions
224+
{
225+
get => Get(true);
226+
set => Set(value);
227+
}
228+
229+
public bool ShowThumbnails
230+
{
231+
get => Get(true);
232+
set => Set(value);
233+
}
234+
235+
public bool ShowConfirmDeleteDialog
236+
{
237+
get => Get(true);
238+
set => Set(value);
239+
}
240+
241+
public bool SelectFilesOnHover
242+
{
243+
get => Get(false);
244+
set => Set(value);
245+
}
246+
223247
protected override void RaiseOnSettingChangedEvent(object sender, SettingChangedEventArgs e)
224248
{
225249
switch (e.SettingName)
@@ -245,6 +269,10 @@ protected override void RaiseOnSettingChangedEvent(object sender, SettingChanged
245269
case nameof(ColumnLayoutOpenFoldersWithOneClick):
246270
case nameof(OpenFoldersInNewTab):
247271
case nameof(CalculateFolderSizes):
272+
case nameof(ShowFileExtensions):
273+
case nameof(ShowThumbnails):
274+
case nameof(ShowConfirmDeleteDialog):
275+
case nameof(SelectFilesOnHover):
248276
Analytics.TrackEvent($"Set {e.SettingName} to {e.NewValue}");
249277
break;
250278
}

src/Files.App/ServicesImplementation/Settings/PreferencesSettingsService.cs

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -15,30 +15,6 @@ public PreferencesSettingsService(ISettingsSharingContext settingsSharingContext
1515
RegisterSettingsContext(settingsSharingContext);
1616
}
1717

18-
public bool ShowConfirmDeleteDialog
19-
{
20-
get => Get(true);
21-
set => Set(value);
22-
}
23-
24-
public bool ShowFileExtensions
25-
{
26-
get => Get(true);
27-
set => Set(value);
28-
}
29-
30-
public bool ShowThumbnails
31-
{
32-
get => Get(true);
33-
set => Set(value);
34-
}
35-
36-
public bool SelectFilesOnHover
37-
{
38-
get => Get(false);
39-
set => Set(value);
40-
}
41-
4218
public bool SearchUnindexedItems
4319
{
4420
get => Get(false);
@@ -199,9 +175,6 @@ protected override void RaiseOnSettingChangedEvent(object sender, SettingChanged
199175
{
200176
switch (e.SettingName)
201177
{
202-
case nameof(ShowConfirmDeleteDialog):
203-
case nameof(ShowFileExtensions):
204-
case nameof(SelectFilesOnHover):
205178
case nameof(SearchUnindexedItems):
206179
case nameof(OpenSpecificPageOnStartup):
207180
case nameof(ContinueLastSessionOnStartUp):

src/Files.App/Strings/en-US/Resources.resw

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,9 @@
345345
<data name="ItemTypeFile" xml:space="preserve">
346346
<value>File</value>
347347
</data>
348+
<data name="Display" xml:space="preserve">
349+
<value>Display</value>
350+
</data>
348351
<data name="RenameDialog.Title" xml:space="preserve">
349352
<value>Enter an item name</value>
350353
</data>
@@ -696,6 +699,9 @@
696699
<data name="InvalidItemDialogTitle" xml:space="preserve">
697700
<value>Invalid item</value>
698701
</data>
702+
<data name="Version" xml:space="preserve">
703+
<value>Version</value>
704+
</data>
699705
<data name="SettingsAboutVersionTitle" xml:space="preserve">
700706
<value>Version:</value>
701707
</data>
@@ -741,6 +747,12 @@
741747
<data name="SponsorUsOnGitHub" xml:space="preserve">
742748
<value>Sponsor us on GitHub</value>
743749
</data>
750+
<data name="Personalization" xml:space="preserve">
751+
<value>Personalization</value>
752+
</data>
753+
<data name="LayoutAndSorting" xml:space="preserve">
754+
<value>Layout and sorting</value>
755+
</data>
744756
<data name="AccessDeniedCreateDialog.Text" xml:space="preserve">
745757
<value>We weren't able to create this item</value>
746758
</data>
@@ -807,8 +819,8 @@
807819
<data name="SettingsContextMenuOverflow" xml:space="preserve">
808820
<value>Move overflow items into a sub menu</value>
809821
</data>
810-
<data name="SettingsPreferencesShowConfirmDeleteDialog.Title" xml:space="preserve">
811-
<value>Show a confirmation dialog when deleting files or folders</value>
822+
<data name="ShowConfirmationWhenDeletingItems" xml:space="preserve">
823+
<value>Show confirmation dialog when deleting items</value>
812824
</data>
813825
<data name="PropertySaveErrorMessage.Text" xml:space="preserve">
814826
<value>There was an issue saving some properties.</value>
@@ -2328,9 +2340,6 @@
23282340
<data name="SettingsPreferencesAppLanguageComboBox.AutomationProperties.Name" xml:space="preserve">
23292341
<value>Language</value>
23302342
</data>
2331-
<data name="SettingsShowConfirmDeleteDialogToggleSwitch.AutomationProperties.Name" xml:space="preserve">
2332-
<value>Show a confirmation dialog when deleting files or folders</value>
2333-
</data>
23342343
<data name="OngoingTasks" xml:space="preserve">
23352344
<value>Ongoing Tasks</value>
23362345
</data>
@@ -2409,9 +2418,6 @@
24092418
<data name="RestoreDefault" xml:space="preserve">
24102419
<value>Restore default</value>
24112420
</data>
2412-
<data name="FilesAndFolders" xml:space="preserve">
2413-
<value>Files and folders</value>
2414-
</data>
24152421
<data name="OpenNewInstance" xml:space="preserve">
24162422
<value>Open new instance when opening directories from the taskbar jumplist</value>
24172423
</data>
@@ -2653,7 +2659,10 @@
26532659
<value>Ctrl+Shift+7</value>
26542660
</data>
26552661
<data name="ShowAlternateStreams" xml:space="preserve">
2656-
<value>Show Alternate Data Streams</value>
2662+
<value>Show alternate data streams</value>
2663+
</data>
2664+
<data name="Behaviors" xml:space="preserve">
2665+
<value>Behaviors</value>
26572666
</data>
26582667
<data name="ReviewFiles" xml:space="preserve">
26592668
<value>Review Files</value>

src/Files.App/UserControls/InnerNavigationToolbar.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -809,7 +809,7 @@
809809
Grid.Column="1"
810810
HorizontalAlignment="Right"
811811
AutomationProperties.Name="{helpers:ResourceString Name=NavToolbarShowFileExtensions/AutomationProperties/Name}"
812-
IsOn="{x:Bind UserSettingsService.PreferencesSettingsService.ShowFileExtensions, Mode=TwoWay}"
812+
IsOn="{x:Bind UserSettingsService.FoldersSettingsService.ShowFileExtensions, Mode=TwoWay}"
813813
Rotation="1"
814814
Style="{StaticResource RightAlignedToggleSwitchStyle}" />
815815
</Grid>

src/Files.App/ViewModels/ItemViewModel.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -483,14 +483,14 @@ private async void UserSettingsService_OnSettingChangedEvent(object sender, Sett
483483
{
484484
switch (e.SettingName)
485485
{
486-
case nameof(UserSettingsService.PreferencesSettingsService.ShowFileExtensions):
487-
case nameof(UserSettingsService.PreferencesSettingsService.ShowThumbnails):
486+
case nameof(UserSettingsService.FoldersSettingsService.ShowFileExtensions):
487+
case nameof(UserSettingsService.FoldersSettingsService.ShowThumbnails):
488488
case nameof(UserSettingsService.FoldersSettingsService.ShowHiddenItems):
489489
case nameof(UserSettingsService.FoldersSettingsService.ShowProtectedSystemFiles):
490490
case nameof(UserSettingsService.FoldersSettingsService.AreAlternateStreamsVisible):
491491
case nameof(UserSettingsService.FoldersSettingsService.ShowDotFiles):
492492
case nameof(UserSettingsService.FoldersSettingsService.CalculateFolderSizes):
493-
case nameof(UserSettingsService.PreferencesSettingsService.SelectFilesOnHover):
493+
case nameof(UserSettingsService.FoldersSettingsService.SelectFilesOnHover):
494494
await dispatcherQueue.EnqueueAsync(() =>
495495
{
496496
if (WorkingDirectory != "Home".GetLocalizedResource())
@@ -858,7 +858,7 @@ private async Task LoadItemThumbnail(ListedItem item, uint thumbnailSize = 96, I
858858
var wasIconLoaded = false;
859859
if (item.IsLibrary || item.PrimaryItemAttribute == StorageItemTypes.File || item.IsArchive)
860860
{
861-
if (UserSettingsService.PreferencesSettingsService.ShowThumbnails &&
861+
if (UserSettingsService.FoldersSettingsService.ShowThumbnails &&
862862
!item.IsShortcut && !item.IsHiddenItem && !FtpHelpers.IsFtpPath(item.ItemPath))
863863
{
864864
var matchingStorageFile = matchingStorageItem.AsBaseStorageFile() ?? await GetFileFromPathAsync(item.ItemPath);

src/Files.App/ViewModels/SettingsViewModels/FoldersViewModel.cs

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,19 @@ public bool OpenFoldersNewTab
233233
}
234234
}
235235

236+
public bool ListAndSortDirectoriesAlongsideFiles
237+
{
238+
get => UserSettingsService.LayoutSettingsService.DefaultSortDirectoriesAlongsideFiles;
239+
set
240+
{
241+
if (value != UserSettingsService.LayoutSettingsService.DefaultSortDirectoriesAlongsideFiles)
242+
{
243+
UserSettingsService.LayoutSettingsService.DefaultSortDirectoriesAlongsideFiles = value;
244+
OnPropertyChanged();
245+
}
246+
}
247+
}
248+
236249
public bool CalculateFolderSizes
237250
{
238251
get => UserSettingsService.FoldersSettingsService.CalculateFolderSizes;
@@ -273,7 +286,59 @@ public int SelectedDefaultGroupingIndex
273286
}
274287
}
275288
}
276-
289+
290+
public bool ShowFileExtensions
291+
{
292+
get => UserSettingsService.FoldersSettingsService.ShowFileExtensions;
293+
set
294+
{
295+
if (value != UserSettingsService.FoldersSettingsService.ShowFileExtensions)
296+
{
297+
UserSettingsService.FoldersSettingsService.ShowFileExtensions = value;
298+
OnPropertyChanged();
299+
}
300+
}
301+
}
302+
303+
public bool ShowThumbnails
304+
{
305+
get => UserSettingsService.FoldersSettingsService.ShowThumbnails;
306+
set
307+
{
308+
if (value != UserSettingsService.FoldersSettingsService.ShowThumbnails)
309+
{
310+
UserSettingsService.FoldersSettingsService.ShowThumbnails = value;
311+
OnPropertyChanged();
312+
}
313+
}
314+
}
315+
316+
public bool ShowConfirmDeleteDialog
317+
{
318+
get => UserSettingsService.FoldersSettingsService.ShowConfirmDeleteDialog;
319+
set
320+
{
321+
if (value != UserSettingsService.FoldersSettingsService.ShowConfirmDeleteDialog)
322+
{
323+
UserSettingsService.FoldersSettingsService.ShowConfirmDeleteDialog = value;
324+
OnPropertyChanged();
325+
}
326+
}
327+
}
328+
329+
public bool SelectFilesOnHover
330+
{
331+
get => UserSettingsService.FoldersSettingsService.SelectFilesOnHover;
332+
set
333+
{
334+
if (value != UserSettingsService.FoldersSettingsService.SelectFilesOnHover)
335+
{
336+
UserSettingsService.FoldersSettingsService.SelectFilesOnHover = value;
337+
OnPropertyChanged();
338+
}
339+
}
340+
}
341+
277342
// Local methods
278343

279344
public void ResetLayoutPreferences()

0 commit comments

Comments
 (0)