Skip to content

Commit 4385fae

Browse files
authored
Fix: Original path and date deleted column sizes aren't saved (#10585)
* Remember status, date deleted, original path columns settings * Add missing show status column checkbox
1 parent 08a6503 commit 4385fae

File tree

6 files changed

+104
-0
lines changed

6 files changed

+104
-0
lines changed

src/Files.App/Helpers/LayoutPreferences/LayoutPreferences.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,19 @@ public LayoutPreferences()
4040
this.ColumnsViewModel.ItemTypeColumn.UserCollapsed = !UserSettingsService.FoldersSettingsService.ShowTypeColumn;
4141
this.ColumnsViewModel.SizeColumn.UserCollapsed = !UserSettingsService.FoldersSettingsService.ShowSizeColumn;
4242
this.ColumnsViewModel.TagColumn.UserCollapsed = !UserSettingsService.FoldersSettingsService.ShowFileTagColumn;
43+
this.ColumnsViewModel.DateDeletedColumn.UserCollapsed = !UserSettingsService.FoldersSettingsService.ShowDateDeletedColumn;
44+
this.ColumnsViewModel.OriginalPathColumn.UserCollapsed = !UserSettingsService.FoldersSettingsService.ShowOriginalPathColumn;
45+
this.ColumnsViewModel.StatusColumn.UserCollapsed = !UserSettingsService.FoldersSettingsService.ShowSyncStatusColumn;
4346

4447
this.ColumnsViewModel.NameColumn.UserLengthPixels = UserSettingsService.FoldersSettingsService.NameColumnWidth;
4548
this.ColumnsViewModel.DateModifiedColumn.UserLengthPixels = UserSettingsService.FoldersSettingsService.DateModifiedColumnWidth;
4649
this.ColumnsViewModel.DateCreatedColumn.UserLengthPixels = UserSettingsService.FoldersSettingsService.DateCreatedColumnWidth;
4750
this.ColumnsViewModel.ItemTypeColumn.UserLengthPixels = UserSettingsService.FoldersSettingsService.TypeColumnWidth;
4851
this.ColumnsViewModel.SizeColumn.UserLengthPixels = UserSettingsService.FoldersSettingsService.SizeColumnWidth;
4952
this.ColumnsViewModel.TagColumn.UserLengthPixels = UserSettingsService.FoldersSettingsService.TagColumnWidth;
53+
this.ColumnsViewModel.DateDeletedColumn.UserLengthPixels = UserSettingsService.FoldersSettingsService.DateDeletedColumnWidth;
54+
this.ColumnsViewModel.OriginalPathColumn.UserLengthPixels = UserSettingsService.FoldersSettingsService.OriginalPathColumnWidth;
55+
this.ColumnsViewModel.StatusColumn.UserLengthPixels = UserSettingsService.FoldersSettingsService.SyncStatusColumnWidth;
5056
}
5157

5258
public override bool Equals(object? obj)

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

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,36 @@ public double SizeColumnWidth
8282
}
8383
}
8484

85+
public double DateDeletedColumnWidth
86+
{
87+
get => Get(200d);
88+
set
89+
{
90+
if (ShowDateDeletedColumn)
91+
Set(value);
92+
}
93+
}
94+
95+
public double OriginalPathColumnWidth
96+
{
97+
get => Get(200d);
98+
set
99+
{
100+
if (ShowOriginalPathColumn)
101+
Set(value);
102+
}
103+
}
104+
105+
public double SyncStatusColumnWidth
106+
{
107+
get => Get(50d);
108+
set
109+
{
110+
if (ShowSyncStatusColumn)
111+
Set(value);
112+
}
113+
}
114+
85115
public bool ShowDateColumn
86116
{
87117
get => Get(true);
@@ -112,6 +142,24 @@ public bool ShowFileTagColumn
112142
set => Set(value);
113143
}
114144

145+
public bool ShowDateDeletedColumn
146+
{
147+
get => Get(true);
148+
set => Set(value);
149+
}
150+
151+
public bool ShowOriginalPathColumn
152+
{
153+
get => Get(true);
154+
set => Set(value);
155+
}
156+
157+
public bool ShowSyncStatusColumn
158+
{
159+
get => Get(true);
160+
set => Set(value);
161+
}
162+
115163
public bool ShowHiddenItems
116164
{
117165
get => Get(false);

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2925,4 +2925,7 @@
29252925
<data name="Format" xml:space="preserve">
29262926
<value>Format</value>
29272927
</data>
2928+
<data name="DetailsViewHeaderFlyout_ShowSyncStatus.Text" xml:space="preserve">
2929+
<value>Sync status column</value>
2930+
</data>
29282931
</root>

src/Files.App/ViewModels/FolderSettingsViewModel.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,13 +334,19 @@ public static void SetLayoutPreferencesForPath(string folderPath, LayoutPreferen
334334
userSettingsService.FoldersSettingsService.ShowTypeColumn = !prefs.ColumnsViewModel.ItemTypeColumn.UserCollapsed;
335335
userSettingsService.FoldersSettingsService.ShowSizeColumn = !prefs.ColumnsViewModel.SizeColumn.UserCollapsed;
336336
userSettingsService.FoldersSettingsService.ShowFileTagColumn = !prefs.ColumnsViewModel.TagColumn.UserCollapsed;
337+
userSettingsService.FoldersSettingsService.ShowDateDeletedColumn = !prefs.ColumnsViewModel.DateDeletedColumn.UserCollapsed;
338+
userSettingsService.FoldersSettingsService.ShowOriginalPathColumn = !prefs.ColumnsViewModel.OriginalPathColumn.UserCollapsed;
339+
userSettingsService.FoldersSettingsService.ShowSyncStatusColumn = !prefs.ColumnsViewModel.StatusColumn.UserCollapsed;
337340

338341
userSettingsService.FoldersSettingsService.NameColumnWidth = prefs.ColumnsViewModel.NameColumn.UserLengthPixels;
339342
userSettingsService.FoldersSettingsService.DateModifiedColumnWidth = prefs.ColumnsViewModel.DateModifiedColumn.UserLengthPixels;
340343
userSettingsService.FoldersSettingsService.DateCreatedColumnWidth = prefs.ColumnsViewModel.DateCreatedColumn.UserLengthPixels;
341344
userSettingsService.FoldersSettingsService.TypeColumnWidth = prefs.ColumnsViewModel.ItemTypeColumn.UserLengthPixels;
342345
userSettingsService.FoldersSettingsService.SizeColumnWidth = prefs.ColumnsViewModel.SizeColumn.UserLengthPixels;
343346
userSettingsService.FoldersSettingsService.TagColumnWidth = prefs.ColumnsViewModel.TagColumn.UserLengthPixels;
347+
userSettingsService.FoldersSettingsService.DateDeletedColumnWidth = prefs.ColumnsViewModel.DateDeletedColumn.UserLengthPixels;
348+
userSettingsService.FoldersSettingsService.OriginalPathColumnWidth = prefs.ColumnsViewModel.OriginalPathColumn.UserLengthPixels;
349+
userSettingsService.FoldersSettingsService.SyncStatusColumnWidth = prefs.ColumnsViewModel.StatusColumn.UserLengthPixels;
344350
}
345351
}
346352

@@ -516,13 +522,19 @@ public void SetDefaultLayoutPreferences(ColumnsViewModel columns)
516522
userSettingsService.FoldersSettingsService.ShowTypeColumn = !columns.ItemTypeColumn.UserCollapsed;
517523
userSettingsService.FoldersSettingsService.ShowSizeColumn = !columns.SizeColumn.UserCollapsed;
518524
userSettingsService.FoldersSettingsService.ShowFileTagColumn = !columns.TagColumn.UserCollapsed;
525+
userSettingsService.FoldersSettingsService.ShowDateDeletedColumn = !columns.DateDeletedColumn.UserCollapsed;
526+
userSettingsService.FoldersSettingsService.ShowOriginalPathColumn = !columns.OriginalPathColumn.UserCollapsed;
527+
userSettingsService.FoldersSettingsService.ShowSyncStatusColumn = !columns.StatusColumn.UserCollapsed;
519528

520529
userSettingsService.FoldersSettingsService.NameColumnWidth = columns.NameColumn.UserLengthPixels;
521530
userSettingsService.FoldersSettingsService.DateModifiedColumnWidth = columns.DateModifiedColumn.UserLengthPixels;
522531
userSettingsService.FoldersSettingsService.DateCreatedColumnWidth = columns.DateCreatedColumn.UserLengthPixels;
523532
userSettingsService.FoldersSettingsService.TypeColumnWidth = columns.ItemTypeColumn.UserLengthPixels;
524533
userSettingsService.FoldersSettingsService.SizeColumnWidth = columns.SizeColumn.UserLengthPixels;
525534
userSettingsService.FoldersSettingsService.TagColumnWidth = columns.TagColumn.UserLengthPixels;
535+
userSettingsService.FoldersSettingsService.DateDeletedColumnWidth = columns.DateDeletedColumn.UserLengthPixels;
536+
userSettingsService.FoldersSettingsService.OriginalPathColumnWidth = columns.OriginalPathColumn.UserLengthPixels;
537+
userSettingsService.FoldersSettingsService.SyncStatusColumnWidth = columns.StatusColumn.UserLengthPixels;
526538
}
527539
}
528540
}

src/Files.App/Views/LayoutModes/DetailsLayoutBrowser.xaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,11 @@
288288
IsChecked="{x:Bind ColumnsViewModel.SizeColumn.UserCollapsed, Mode=TwoWay, Converter={StaticResource BoolNegationConverter}}"
289289
Text="{helpers:ResourceString Name=DetailsViewHeaderFlyout_ShowItemSize/Text}"
290290
Visibility="{x:Bind ColumnsViewModel.SizeColumn.IsHidden, Mode=OneWay, Converter={StaticResource NegatedBoolToVisibilityConverter}}" />
291+
<ToggleMenuFlyoutItem
292+
Click="ToggleMenuFlyoutItem_Click"
293+
IsChecked="{x:Bind ColumnsViewModel.StatusColumn.UserCollapsed, Mode=TwoWay, Converter={StaticResource BoolNegationConverter}}"
294+
Text="{helpers:ResourceString Name=DetailsViewHeaderFlyout_ShowSyncStatus/Text}"
295+
Visibility="{x:Bind ColumnsViewModel.StatusColumn.IsHidden, Mode=OneWay, Converter={StaticResource NegatedBoolToVisibilityConverter}}" />
291296
<MenuFlyoutSeparator />
292297
<MenuFlyoutItem Click="SetDetailsColumnsAsDefault_Click" Text="{helpers:ResourceString Name=SetAsDefault}" />
293298
</MenuFlyout>

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

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,21 @@ public interface IFoldersSettingsService : IBaseSettingsService, INotifyProperty
3030
/// </summary>
3131
bool ShowFileTagColumn { get; set; }
3232

33+
/// <summary>
34+
/// Gets or sets a value indicating whether or not the date deleted column should be visible by default.
35+
/// </summary>
36+
bool ShowDateDeletedColumn { get; set; }
37+
38+
/// <summary>
39+
/// Gets or sets a value indicating whether or not the original path column should be visible by default.
40+
/// </summary>
41+
bool ShowOriginalPathColumn { get; set; }
42+
43+
/// <summary>
44+
/// Gets or sets a value indicating whether or not the sync status column should be visible by default.
45+
/// </summary>
46+
bool ShowSyncStatusColumn { get; set; }
47+
3348
/// <summary>
3449
/// Gets or sets a value indicating the default layout mode.
3550
/// </summary>
@@ -65,6 +80,21 @@ public interface IFoldersSettingsService : IBaseSettingsService, INotifyProperty
6580
/// </summary>
6681
double SizeColumnWidth { get; set; }
6782

83+
/// <summary>
84+
/// Gets or sets a value indicating date deleted column's default width
85+
/// </summary>
86+
double DateDeletedColumnWidth { get; set; }
87+
88+
/// <summary>
89+
/// Gets or sets a value indicating sync status column's default width
90+
/// </summary>
91+
double SyncStatusColumnWidth { get; set; }
92+
93+
/// <summary>
94+
/// Gets or sets a value indicating original path column's default width
95+
/// </summary>
96+
double OriginalPathColumnWidth { get; set; }
97+
6898
/// <summary>
6999
/// Enable overriding folder preferencess in individual directories
70100
/// </summary>

0 commit comments

Comments
 (0)