Skip to content

Commit 0ee7b9e

Browse files
Feature: Update columns in existing tabs after changing the defaults in settings (#16512)
1 parent 08ab494 commit 0ee7b9e

File tree

2 files changed

+35
-2
lines changed

2 files changed

+35
-2
lines changed

src/Files.App/Helpers/Layout/LayoutPreferencesManager.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ public uint GetRoundedIconSize()
236236
_ when LayoutMode == FolderLayoutModes.GridView && UserSettingsService.LayoutSettingsService.GridViewSize <= GridViewSizeKind.Small ||
237237
LayoutMode == FolderLayoutModes.TilesView
238238
=> 96,
239-
_ when LayoutMode == FolderLayoutModes.GridView && UserSettingsService.LayoutSettingsService.GridViewSize <= GridViewSizeKind.Large
239+
_ when LayoutMode == FolderLayoutModes.GridView && UserSettingsService.LayoutSettingsService.GridViewSize <= GridViewSizeKind.Large
240240
=> 128,
241241
_ => 256,
242242
};
@@ -265,6 +265,13 @@ public Type GetLayoutType(string path, bool changeLayoutMode = true)
265265
};
266266
}
267267

268+
public bool IsPathUsingDefaultLayout(string? path)
269+
{
270+
return UserSettingsService.LayoutSettingsService.SyncFolderPreferencesAcrossDirectories ||
271+
string.IsNullOrEmpty(path) ||
272+
GetLayoutPreferencesFromDatabase(path, Win32Helper.GetFolderFRN(path)) is null;
273+
}
274+
268275
public void ToggleLayoutModeColumnView(bool manuallySet)
269276
{
270277
IsAdaptiveLayoutEnabled &= !manuallySet;
@@ -594,7 +601,7 @@ private static bool SetLayoutPreferencesToDatabase(string path, ulong? frn, Layo
594601
}
595602

596603
dbInstance.SetPreferences(path, frn, preferencesItem);
597-
});
604+
});
598605
}
599606

600607
private bool SetProperty<TValue>(Func<LayoutPreferencesItem, TValue> prop, Action<LayoutPreferencesItem> update, string propertyName)

src/Files.App/Views/Layouts/DetailsLayoutPage.xaml.cs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,32 @@ private void LayoutSettingsService_PropertyChanged(object? sender, PropertyChang
206206
// Restore correct scroll position
207207
ContentScroller?.ChangeView(null, previousOffset, null);
208208
}
209+
else
210+
{
211+
var settings = sender as ILayoutSettingsService;
212+
var isDefaultPath = FolderSettings?.IsPathUsingDefaultLayout(ParentShellPageInstance?.ShellViewModel.CurrentFolder?.ItemPath);
213+
if (settings is not null && (isDefaultPath ?? true))
214+
{
215+
switch (e.PropertyName)
216+
{
217+
case nameof(ILayoutSettingsService.ShowFileTagColumn):
218+
ColumnsViewModel.TagColumn.UserCollapsed = !settings.ShowFileTagColumn;
219+
break;
220+
case nameof(ILayoutSettingsService.ShowSizeColumn):
221+
ColumnsViewModel.SizeColumn.UserCollapsed = !settings.ShowSizeColumn;
222+
break;
223+
case nameof(ILayoutSettingsService.ShowTypeColumn):
224+
ColumnsViewModel.ItemTypeColumn.UserCollapsed = !settings.ShowTypeColumn;
225+
break;
226+
case nameof(ILayoutSettingsService.ShowDateCreatedColumn):
227+
ColumnsViewModel.DateCreatedColumn.UserCollapsed = !settings.ShowDateCreatedColumn;
228+
break;
229+
case nameof(ILayoutSettingsService.ShowDateColumn):
230+
ColumnsViewModel.DateModifiedColumn.UserCollapsed = !settings.ShowDateColumn;
231+
break;
232+
}
233+
}
234+
}
209235
}
210236

211237
/// <summary>

0 commit comments

Comments
 (0)