Skip to content

Commit a8d48f0

Browse files
authored
Feature: Added an option to set default columns (#9785)
1 parent 8857bb6 commit a8d48f0

File tree

9 files changed

+555
-416
lines changed

9 files changed

+555
-416
lines changed

src/Files.Backend/Services/Settings/IPreferencesSettingsService.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,9 @@ public interface IPreferencesSettingsService : IBaseSettingsService, INotifyProp
6161
bool SearchUnindexedItems { get; set; }
6262

6363
/// <summary>
64-
/// Enables saving a unique layout mode, gridview size and sort direction per folder
64+
/// Forces default directory preferences on all folders
6565
/// </summary>
66-
bool AreLayoutPreferencesPerFolder { get; set; }
66+
bool ForceLayoutPreferencesOnAllDirectories { get; set; }
6767

6868
/// <summary>
6969
/// Gets or sets a value indicating whether or not to show folder size.

src/Files.Uwp/Helpers/AdaptiveLayoutHelpers.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public static bool PredictLayoutMode(FolderSettingsViewModel folderSettings, str
1616
{
1717
IUserSettingsService userSettingsService = Ioc.Default.GetService<IUserSettingsService>();
1818

19-
if (userSettingsService.PreferencesSettingsService.AreLayoutPreferencesPerFolder
19+
if (!userSettingsService.PreferencesSettingsService.ForceLayoutPreferencesOnAllDirectories
2020
&& folderSettings.IsAdaptiveLayoutEnabled
2121
&& !folderSettings.IsLayoutModeFixed)
2222
{

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,9 @@ public bool SearchUnindexedItems
8080
set => Set(value);
8181
}
8282

83-
public bool AreLayoutPreferencesPerFolder
83+
public bool ForceLayoutPreferencesOnAllDirectories
8484
{
85-
get => Get(true);
85+
get => Get(false);
8686
set => Set(value);
8787
}
8888

@@ -148,7 +148,7 @@ protected override void RaiseOnSettingChangedEvent(object sender, SettingChanged
148148
case nameof(OpenFilesWithOneClick):
149149
case nameof(OpenFoldersWithOneClick):
150150
case nameof(SearchUnindexedItems):
151-
case nameof(AreLayoutPreferencesPerFolder):
151+
case nameof(ForceLayoutPreferencesOnAllDirectories):
152152
case nameof(ShowFolderSize):
153153
case nameof(OpenSpecificPageOnStartup):
154154
case nameof(ContinueLastSessionOnStartUp):
@@ -173,7 +173,7 @@ public void ReportToAppCenter()
173173
Analytics.TrackEvent($"{nameof(OpenFilesWithOneClick)}, {OpenFilesWithOneClick}");
174174
Analytics.TrackEvent($"{nameof(OpenFoldersWithOneClick)}, {OpenFoldersWithOneClick}");
175175
Analytics.TrackEvent($"{nameof(SearchUnindexedItems)}, {SearchUnindexedItems}");
176-
Analytics.TrackEvent($"{nameof(AreLayoutPreferencesPerFolder)}, {AreLayoutPreferencesPerFolder}");
176+
Analytics.TrackEvent($"{nameof(ForceLayoutPreferencesOnAllDirectories)}, {ForceLayoutPreferencesOnAllDirectories}");
177177
Analytics.TrackEvent($"{nameof(ShowFolderSize)}, {ShowFolderSize}");
178178
Analytics.TrackEvent($"{nameof(OpenSpecificPageOnStartup)}, {OpenSpecificPageOnStartup}");
179179
Analytics.TrackEvent($"{nameof(ContinueLastSessionOnStartUp)}, {ContinueLastSessionOnStartUp}");

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

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1239,8 +1239,8 @@
12391239
<data name="SettingsSearchUnindexedItems" xml:space="preserve">
12401240
<value>Show unindexed items when searching for files and folders</value>
12411241
</data>
1242-
<data name="SettingsEnableLayoutPreferencesPerFolder" xml:space="preserve">
1243-
<value>Enable individual preferences for individual directories</value>
1242+
<data name="ForceThesePreferencesOnAllDirectories" xml:space="preserve">
1243+
<value>Force these preferences on all directories</value>
12441244
</data>
12451245
<data name="SettingsContextMenu.Text" xml:space="preserve">
12461246
<value>Customize the right click context menu</value>
@@ -2795,4 +2795,22 @@ We use App Center to track which settings are being used, find bugs, and fix cra
27952795
<data name="SetAsDefault" xml:space="preserve">
27962796
<value>Set as default</value>
27972797
</data>
2798+
<data name="DefaultFolderPreferences" xml:space="preserve">
2799+
<value>Default Folder preferences</value>
2800+
</data>
2801+
<data name="DisplayDateColumn" xml:space="preserve">
2802+
<value>Display Date column</value>
2803+
</data>
2804+
<data name="DisplayDateCreatedColumn" xml:space="preserve">
2805+
<value>Display Date Created column</value>
2806+
</data>
2807+
<data name="DisplaySizeColumn" xml:space="preserve">
2808+
<value>Display Size column</value>
2809+
</data>
2810+
<data name="DisplayTagColumn" xml:space="preserve">
2811+
<value>Display Tag column</value>
2812+
</data>
2813+
<data name="DisplayTypeColumn" xml:space="preserve">
2814+
<value>Display Type column</value>
2815+
</data>
27982816
</root>

src/Files.Uwp/ViewModels/FolderSettingsViewModel.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ public ColumnsViewModel ColumnsViewModel
310310
private static LayoutPreferences GetLayoutPreferencesForPath(string folderPath)
311311
{
312312
IUserSettingsService userSettingsService = Ioc.Default.GetService<IUserSettingsService>();
313-
if (userSettingsService.PreferencesSettingsService.AreLayoutPreferencesPerFolder)
313+
if (!userSettingsService.PreferencesSettingsService.ForceLayoutPreferencesOnAllDirectories)
314314
{
315315
folderPath = folderPath.TrimPath();
316316
var folderFRN = NativeFileOperationsHelper.GetFolderFRN(folderPath);
@@ -326,7 +326,7 @@ public static void SetLayoutPreferencesForPath(string folderPath, LayoutPreferen
326326
{
327327
IUserSettingsService userSettingsService = Ioc.Default.GetService<IUserSettingsService>();
328328

329-
if (userSettingsService.PreferencesSettingsService.AreLayoutPreferencesPerFolder)
329+
if (!userSettingsService.PreferencesSettingsService.ForceLayoutPreferencesOnAllDirectories)
330330
{
331331
var folderFRN = NativeFileOperationsHelper.GetFolderFRN(folderPath);
332332
WriteLayoutPreferencesToDb(folderPath.TrimPath(), folderFRN, prefs);
@@ -529,7 +529,7 @@ public void OnDefaultPreferencesChanged(string folderPath, string settingsName)
529529
case nameof(UserSettingsService.LayoutSettingsService.DefaultSortDirectoriesAlongsideFiles):
530530
SortDirectoriesAlongsideFiles = prefs.SortDirectoriesAlongsideFiles;
531531
break;
532-
case nameof(UserSettingsService.PreferencesSettingsService.AreLayoutPreferencesPerFolder):
532+
case nameof(UserSettingsService.PreferencesSettingsService.ForceLayoutPreferencesOnAllDirectories):
533533
LayoutPreference = prefs;
534534
// TODO: update layout
535535
break;

src/Files.Uwp/ViewModels/ItemViewModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,7 @@ await dispatcherQueue.EnqueueAsync(() =>
477477
});
478478
break;
479479
case nameof(UserSettingsService.LayoutSettingsService.DefaultSortDirectoriesAlongsideFiles):
480-
case nameof(UserSettingsService.PreferencesSettingsService.AreLayoutPreferencesPerFolder):
480+
case nameof(UserSettingsService.PreferencesSettingsService.ForceLayoutPreferencesOnAllDirectories):
481481
await dispatcherQueue.EnqueueAsync(() =>
482482
{
483483
folderSettings.OnDefaultPreferencesChanged(WorkingDirectory, e.SettingName);

src/Files.Uwp/ViewModels/SettingsViewModels/PreferencesViewModel.cs

Lines changed: 69 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -628,14 +628,79 @@ public bool SearchUnindexedItems
628628
}
629629
}
630630

631-
public bool AreLayoutPreferencesPerFolder
631+
public bool ForceLayoutPreferencesOnAllDirectories
632632
{
633-
get => UserSettingsService.PreferencesSettingsService.AreLayoutPreferencesPerFolder;
633+
get => UserSettingsService.PreferencesSettingsService.ForceLayoutPreferencesOnAllDirectories;
634634
set
635635
{
636-
if (value != UserSettingsService.PreferencesSettingsService.AreLayoutPreferencesPerFolder)
636+
if (value != UserSettingsService.PreferencesSettingsService.ForceLayoutPreferencesOnAllDirectories)
637637
{
638-
UserSettingsService.PreferencesSettingsService.AreLayoutPreferencesPerFolder = value;
638+
UserSettingsService.PreferencesSettingsService.ForceLayoutPreferencesOnAllDirectories = value;
639+
OnPropertyChanged();
640+
}
641+
}
642+
}
643+
644+
public bool ShowFileTagColumn
645+
{
646+
get => UserSettingsService.LayoutSettingsService.ShowFileTagColumn;
647+
set
648+
{
649+
if (value != UserSettingsService.LayoutSettingsService.ShowFileTagColumn)
650+
{
651+
UserSettingsService.LayoutSettingsService.ShowFileTagColumn = value;
652+
OnPropertyChanged();
653+
}
654+
}
655+
}
656+
657+
public bool ShowSizeColumn
658+
{
659+
get => UserSettingsService.LayoutSettingsService.ShowSizeColumn;
660+
set
661+
{
662+
if (value != UserSettingsService.LayoutSettingsService.ShowSizeColumn)
663+
{
664+
UserSettingsService.LayoutSettingsService.ShowSizeColumn = value;
665+
OnPropertyChanged();
666+
}
667+
}
668+
}
669+
670+
public bool ShowTypeColumn
671+
{
672+
get => UserSettingsService.LayoutSettingsService.ShowTypeColumn;
673+
set
674+
{
675+
if (value != UserSettingsService.LayoutSettingsService.ShowTypeColumn)
676+
{
677+
UserSettingsService.LayoutSettingsService.ShowTypeColumn = value;
678+
OnPropertyChanged();
679+
}
680+
}
681+
}
682+
683+
public bool ShowDateCreatedColumn
684+
{
685+
get => UserSettingsService.LayoutSettingsService.ShowDateCreatedColumn;
686+
set
687+
{
688+
if (value != UserSettingsService.LayoutSettingsService.ShowDateCreatedColumn)
689+
{
690+
UserSettingsService.LayoutSettingsService.ShowDateCreatedColumn = value;
691+
OnPropertyChanged();
692+
}
693+
}
694+
}
695+
696+
public bool ShowDateColumn
697+
{
698+
get => UserSettingsService.LayoutSettingsService.ShowDateColumn;
699+
set
700+
{
701+
if (value != UserSettingsService.LayoutSettingsService.ShowDateColumn)
702+
{
703+
UserSettingsService.LayoutSettingsService.ShowDateColumn = value;
639704
OnPropertyChanged();
640705
}
641706
}

src/Files.Uwp/ViewModels/ToolbarViewModel.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ public bool IsLayoutAdaptive
248248
&& IsAdaptiveLayoutEnabled;
249249

250250
public bool IsAdaptiveLayoutEnabled
251-
=> UserSettingsService.PreferencesSettingsService.AreLayoutPreferencesPerFolder;
251+
=> !UserSettingsService.PreferencesSettingsService.ForceLayoutPreferencesOnAllDirectories;
252252

253253
private bool canCopyPathInPage;
254254

@@ -394,7 +394,7 @@ private void UserSettingsService_OnSettingChangedEvent(object sender, SettingCha
394394
RefreshWidgetsRequested?.Invoke(this, EventArgs.Empty);
395395
OnPropertyChanged(e.SettingName);
396396
break;
397-
case nameof(UserSettingsService.PreferencesSettingsService.AreLayoutPreferencesPerFolder):
397+
case nameof(UserSettingsService.PreferencesSettingsService.ForceLayoutPreferencesOnAllDirectories):
398398
FolderSettings_LayoutPreferencesUpdateRequired(null, 0);
399399
break;
400400
}

0 commit comments

Comments
 (0)