Skip to content

Commit dc8538a

Browse files
authored
Fix: Fixed an issue where changing the layout size wouldn't work in the adaptive layout (#15853)
1 parent be602bf commit dc8538a

File tree

1 file changed

+26
-44
lines changed

1 file changed

+26
-44
lines changed

src/Files.App/Actions/Display/LayoutAction.cs

Lines changed: 26 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,6 @@ protected virtual void OnContextChanged(string propertyName)
171171
internal sealed class LayoutDecreaseSizeAction : ObservableObject, IAction
172172
{
173173
private static readonly IUserSettingsService UserSettingsService = Ioc.Default.GetRequiredService<IUserSettingsService>();
174-
private readonly IDisplayPageContext DisplayPageContext = Ioc.Default.GetRequiredService<IDisplayPageContext>();
175174
private readonly IContentPageContext ContentPageContext = Ioc.Default.GetRequiredService<IContentPageContext>();
176175

177176
public string Label
@@ -188,15 +187,15 @@ public HotKey MediaHotKey
188187

189188
public bool IsExecutable =>
190189
ContentPageContext.PageType is not ContentPageTypes.Home &&
191-
((DisplayPageContext.LayoutType == LayoutTypes.Details && UserSettingsService.LayoutSettingsService.DetailsViewSize > DetailsViewSizeKind.Compact) ||
192-
(DisplayPageContext.LayoutType == LayoutTypes.List && UserSettingsService.LayoutSettingsService.ListViewSize > ListViewSizeKind.Compact) ||
193-
(DisplayPageContext.LayoutType == LayoutTypes.Grid && UserSettingsService.LayoutSettingsService.GridViewSize > GridViewSizeKind.Small) ||
194-
(DisplayPageContext.LayoutType == LayoutTypes.Columns && UserSettingsService.LayoutSettingsService.ColumnsViewSize > ColumnsViewSizeKind.Compact));
190+
ContentPageContext.ShellPage?.InstanceViewModel.FolderSettings.LayoutMode is FolderLayoutModes layoutMode &&
191+
((layoutMode is FolderLayoutModes.DetailsView && UserSettingsService.LayoutSettingsService.DetailsViewSize > DetailsViewSizeKind.Compact) ||
192+
(layoutMode is FolderLayoutModes.ListView && UserSettingsService.LayoutSettingsService.ListViewSize > ListViewSizeKind.Compact) ||
193+
(layoutMode is FolderLayoutModes.GridView && UserSettingsService.LayoutSettingsService.GridViewSize > GridViewSizeKind.Small) ||
194+
(layoutMode is FolderLayoutModes.ColumnView && UserSettingsService.LayoutSettingsService.ColumnsViewSize > ColumnsViewSizeKind.Compact));
195195

196196
public LayoutDecreaseSizeAction()
197197
{
198198
ContentPageContext.PropertyChanged += ContentPageContext_PropertyChanged;
199-
DisplayPageContext.PropertyChanged += DisplayPageContext_PropertyChanged;
200199
UserSettingsService.LayoutSettingsService.PropertyChanged += UserSettingsService_PropertyChanged;
201200
}
202201

@@ -210,16 +209,6 @@ private void ContentPageContext_PropertyChanged(object? sender, PropertyChangedE
210209
}
211210
}
212211

213-
private void DisplayPageContext_PropertyChanged(object? sender, PropertyChangedEventArgs e)
214-
{
215-
switch (e.PropertyName)
216-
{
217-
case nameof(IDisplayPageContext.LayoutType):
218-
OnPropertyChanged(nameof(IsExecutable));
219-
break;
220-
}
221-
}
222-
223212
private void UserSettingsService_PropertyChanged(object? sender, PropertyChangedEventArgs e)
224213
{
225214
switch (e.PropertyName)
@@ -235,26 +224,28 @@ private void UserSettingsService_PropertyChanged(object? sender, PropertyChanged
235224

236225
public Task ExecuteAsync(object? parameter = null)
237226
{
238-
switch (DisplayPageContext.LayoutType)
227+
switch (ContentPageContext.ShellPage?.InstanceViewModel.FolderSettings.LayoutMode)
239228
{
240-
case LayoutTypes.Details:
229+
case FolderLayoutModes.DetailsView:
241230
if (UserSettingsService.LayoutSettingsService.DetailsViewSize > DetailsViewSizeKind.Compact)
242231
UserSettingsService.LayoutSettingsService.DetailsViewSize -= 1;
243232
break;
244-
case LayoutTypes.List:
233+
case FolderLayoutModes.ListView:
245234
if (UserSettingsService.LayoutSettingsService.ListViewSize > ListViewSizeKind.Compact)
246235
UserSettingsService.LayoutSettingsService.ListViewSize -= 1;
247236
break;
248-
case LayoutTypes.Tiles:
237+
case FolderLayoutModes.TilesView:
249238
break;
250-
case LayoutTypes.Grid:
239+
case FolderLayoutModes.GridView:
251240
if (UserSettingsService.LayoutSettingsService.GridViewSize > GridViewSizeKind.Small)
252241
UserSettingsService.LayoutSettingsService.GridViewSize -= 1;
253242
break;
254-
case LayoutTypes.Columns:
243+
case FolderLayoutModes.ColumnView:
255244
if (UserSettingsService.LayoutSettingsService.ColumnsViewSize > ColumnsViewSizeKind.Compact)
256245
UserSettingsService.LayoutSettingsService.ColumnsViewSize -= 1;
257246
break;
247+
default:
248+
break;
258249
}
259250

260251
return Task.CompletedTask;
@@ -264,7 +255,6 @@ public Task ExecuteAsync(object? parameter = null)
264255
internal sealed class LayoutIncreaseSizeAction : ObservableObject, IAction
265256
{
266257
private static readonly IUserSettingsService UserSettingsService = Ioc.Default.GetRequiredService<IUserSettingsService>();
267-
private readonly IDisplayPageContext DisplayPageContext = Ioc.Default.GetRequiredService<IDisplayPageContext>();
268258
private readonly IContentPageContext ContentPageContext = Ioc.Default.GetRequiredService<IContentPageContext>();
269259

270260
public string Label
@@ -281,15 +271,15 @@ public HotKey MediaHotKey
281271

282272
public bool IsExecutable =>
283273
ContentPageContext.PageType is not ContentPageTypes.Home &&
284-
((DisplayPageContext.LayoutType == LayoutTypes.Details && UserSettingsService.LayoutSettingsService.DetailsViewSize < DetailsViewSizeKind.ExtraLarge) ||
285-
(DisplayPageContext.LayoutType == LayoutTypes.List && UserSettingsService.LayoutSettingsService.ListViewSize < ListViewSizeKind.ExtraLarge) ||
286-
(DisplayPageContext.LayoutType == LayoutTypes.Grid && UserSettingsService.LayoutSettingsService.GridViewSize < GridViewSizeKind.ExtraLarge) ||
287-
(DisplayPageContext.LayoutType == LayoutTypes.Columns && UserSettingsService.LayoutSettingsService.ColumnsViewSize < ColumnsViewSizeKind.ExtraLarge));
274+
ContentPageContext.ShellPage?.InstanceViewModel.FolderSettings.LayoutMode is FolderLayoutModes layoutMode &&
275+
((layoutMode is FolderLayoutModes.DetailsView && UserSettingsService.LayoutSettingsService.DetailsViewSize < DetailsViewSizeKind.ExtraLarge) ||
276+
(layoutMode is FolderLayoutModes.ListView && UserSettingsService.LayoutSettingsService.ListViewSize < ListViewSizeKind.ExtraLarge) ||
277+
(layoutMode is FolderLayoutModes.GridView && UserSettingsService.LayoutSettingsService.GridViewSize < GridViewSizeKind.ExtraLarge) ||
278+
(layoutMode is FolderLayoutModes.ColumnView && UserSettingsService.LayoutSettingsService.ColumnsViewSize < ColumnsViewSizeKind.ExtraLarge));
288279

289280
public LayoutIncreaseSizeAction()
290281
{
291282
ContentPageContext.PropertyChanged += ContentPageContext_PropertyChanged;
292-
DisplayPageContext.PropertyChanged += DisplayPageContext_PropertyChanged;
293283
UserSettingsService.LayoutSettingsService.PropertyChanged += UserSettingsService_PropertyChanged;
294284
}
295285

@@ -303,16 +293,6 @@ private void ContentPageContext_PropertyChanged(object? sender, PropertyChangedE
303293
}
304294
}
305295

306-
private void DisplayPageContext_PropertyChanged(object? sender, PropertyChangedEventArgs e)
307-
{
308-
switch (e.PropertyName)
309-
{
310-
case nameof(IDisplayPageContext.LayoutType):
311-
OnPropertyChanged(nameof(IsExecutable));
312-
break;
313-
}
314-
}
315-
316296
private void UserSettingsService_PropertyChanged(object? sender, PropertyChangedEventArgs e)
317297
{
318298
switch (e.PropertyName)
@@ -328,26 +308,28 @@ private void UserSettingsService_PropertyChanged(object? sender, PropertyChanged
328308

329309
public Task ExecuteAsync(object? parameter = null)
330310
{
331-
switch (DisplayPageContext.LayoutType)
311+
switch (ContentPageContext.ShellPage?.InstanceViewModel.FolderSettings.LayoutMode)
332312
{
333-
case LayoutTypes.Details:
313+
case FolderLayoutModes.DetailsView:
334314
if (UserSettingsService.LayoutSettingsService.DetailsViewSize < DetailsViewSizeKind.ExtraLarge)
335315
UserSettingsService.LayoutSettingsService.DetailsViewSize += 1;
336316
break;
337-
case LayoutTypes.List:
317+
case FolderLayoutModes.ListView:
338318
if (UserSettingsService.LayoutSettingsService.ListViewSize < ListViewSizeKind.ExtraLarge)
339319
UserSettingsService.LayoutSettingsService.ListViewSize += 1;
340320
break;
341-
case LayoutTypes.Tiles:
321+
case FolderLayoutModes.TilesView:
342322
break;
343-
case LayoutTypes.Grid:
323+
case FolderLayoutModes.GridView:
344324
if (UserSettingsService.LayoutSettingsService.GridViewSize < GridViewSizeKind.ExtraLarge)
345325
UserSettingsService.LayoutSettingsService.GridViewSize += 1;
346326
break;
347-
case LayoutTypes.Columns:
327+
case FolderLayoutModes.ColumnView:
348328
if (UserSettingsService.LayoutSettingsService.ColumnsViewSize < ColumnsViewSizeKind.ExtraLarge)
349329
UserSettingsService.LayoutSettingsService.ColumnsViewSize += 1;
350330
break;
331+
default:
332+
break;
351333
}
352334

353335
return Task.CompletedTask;

0 commit comments

Comments
 (0)