Skip to content

Commit eb06ec2

Browse files
committed
Requested changes
Columns
1 parent e24fa63 commit eb06ec2

19 files changed

+298
-202
lines changed

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

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -188,10 +188,10 @@ public HotKey MediaHotKey
188188

189189
public bool IsExecutable =>
190190
ContentPageContext.PageType is not ContentPageTypes.Home &&
191-
((DisplayPageContext.LayoutType == LayoutTypes.Details && UserSettingsService.LayoutSettingsService.ItemSizeDetailsView > (int)LayoutDetailsViewIconHeightKind.Minimum) ||
192-
(DisplayPageContext.LayoutType == LayoutTypes.List && UserSettingsService.LayoutSettingsService.ItemSizeListView > (int)LayoutListViewIconHeightKind.Minimum) ||
193-
(DisplayPageContext.LayoutType == LayoutTypes.Grid && UserSettingsService.LayoutSettingsService.ItemSizeGridView > (int)LayoutGridViewIconHeightKind.Minimum) ||
194-
(DisplayPageContext.LayoutType == LayoutTypes.Columns && UserSettingsService.LayoutSettingsService.ItemSizeColumnsView > (int)LayoutColumnsViewIconHeightKind.Minimum));
191+
((DisplayPageContext.LayoutType == LayoutTypes.Details && UserSettingsService.LayoutSettingsService.ItemSizeDetailsView > DetailsViewSizeKind.Compact) ||
192+
(DisplayPageContext.LayoutType == LayoutTypes.List && UserSettingsService.LayoutSettingsService.ItemSizeListView > ListViewSizeKind.Compact) ||
193+
(DisplayPageContext.LayoutType == LayoutTypes.Grid && UserSettingsService.LayoutSettingsService.ItemSizeGridView > GridViewSizeKind.Compact) ||
194+
(DisplayPageContext.LayoutType == LayoutTypes.Columns && UserSettingsService.LayoutSettingsService.ItemSizeColumnsView > ColumnsViewSizeKind.Compact));
195195

196196
public LayoutDecreaseSizeAction()
197197
{
@@ -238,22 +238,22 @@ public Task ExecuteAsync()
238238
switch (DisplayPageContext.LayoutType)
239239
{
240240
case LayoutTypes.Details:
241-
if (UserSettingsService.LayoutSettingsService.ItemSizeDetailsView > (int)LayoutDetailsViewIconHeightKind.Minimum)
242-
UserSettingsService.LayoutSettingsService.ItemSizeDetailsView -= (int)LayoutIconHeightIncrementKind.DetailsView;
241+
if (UserSettingsService.LayoutSettingsService.ItemSizeDetailsView > DetailsViewSizeKind.Compact)
242+
UserSettingsService.LayoutSettingsService.ItemSizeDetailsView -= 1;
243243
break;
244244
case LayoutTypes.List:
245-
if (UserSettingsService.LayoutSettingsService.ItemSizeListView > (int)LayoutListViewIconHeightKind.Minimum)
246-
UserSettingsService.LayoutSettingsService.ItemSizeListView -= (int)LayoutIconHeightIncrementKind.ListView;
245+
if (UserSettingsService.LayoutSettingsService.ItemSizeListView > ListViewSizeKind.Compact)
246+
UserSettingsService.LayoutSettingsService.ItemSizeListView -= 1;
247247
break;
248248
case LayoutTypes.Tiles:
249249
break;
250250
case LayoutTypes.Grid:
251-
if (UserSettingsService.LayoutSettingsService.ItemSizeGridView > (int)LayoutGridViewIconHeightKind.Minimum)
252-
UserSettingsService.LayoutSettingsService.ItemSizeGridView -= (int)LayoutIconHeightIncrementKind.GridView;
251+
if (UserSettingsService.LayoutSettingsService.ItemSizeGridView > GridViewSizeKind.Compact)
252+
UserSettingsService.LayoutSettingsService.ItemSizeGridView -= 1;
253253
break;
254254
case LayoutTypes.Columns:
255-
if (UserSettingsService.LayoutSettingsService.ItemSizeColumnsView > (int)LayoutColumnsViewIconHeightKind.Minimum)
256-
UserSettingsService.LayoutSettingsService.ItemSizeColumnsView -= (int)LayoutIconHeightIncrementKind.ColumnsView;
255+
if (UserSettingsService.LayoutSettingsService.ItemSizeColumnsView > ColumnsViewSizeKind.Compact)
256+
UserSettingsService.LayoutSettingsService.ItemSizeColumnsView -= 1;
257257
break;
258258
}
259259

@@ -281,10 +281,10 @@ public HotKey MediaHotKey
281281

282282
public bool IsExecutable =>
283283
ContentPageContext.PageType is not ContentPageTypes.Home &&
284-
((DisplayPageContext.LayoutType == LayoutTypes.Details && UserSettingsService.LayoutSettingsService.ItemSizeDetailsView < (int)LayoutDetailsViewIconHeightKind.Maximum) ||
285-
(DisplayPageContext.LayoutType == LayoutTypes.List && UserSettingsService.LayoutSettingsService.ItemSizeListView < (int)LayoutListViewIconHeightKind.Maximum) ||
286-
(DisplayPageContext.LayoutType == LayoutTypes.Grid && UserSettingsService.LayoutSettingsService.ItemSizeGridView < (int)LayoutGridViewIconHeightKind.Maximum) ||
287-
(DisplayPageContext.LayoutType == LayoutTypes.Columns && UserSettingsService.LayoutSettingsService.ItemSizeColumnsView < (int)LayoutColumnsViewIconHeightKind.Maximum));
284+
((DisplayPageContext.LayoutType == LayoutTypes.Details && UserSettingsService.LayoutSettingsService.ItemSizeDetailsView < DetailsViewSizeKind.ExtraLarge) ||
285+
(DisplayPageContext.LayoutType == LayoutTypes.List && UserSettingsService.LayoutSettingsService.ItemSizeListView < ListViewSizeKind.ExtraLarge) ||
286+
(DisplayPageContext.LayoutType == LayoutTypes.Grid && UserSettingsService.LayoutSettingsService.ItemSizeGridView < GridViewSizeKind.Eleven) ||
287+
(DisplayPageContext.LayoutType == LayoutTypes.Columns && UserSettingsService.LayoutSettingsService.ItemSizeColumnsView < ColumnsViewSizeKind.ExtraLarge));
288288

289289
public LayoutIncreaseSizeAction()
290290
{
@@ -331,22 +331,22 @@ public Task ExecuteAsync()
331331
switch (DisplayPageContext.LayoutType)
332332
{
333333
case LayoutTypes.Details:
334-
if (UserSettingsService.LayoutSettingsService.ItemSizeDetailsView < (int)LayoutDetailsViewIconHeightKind.Maximum)
335-
UserSettingsService.LayoutSettingsService.ItemSizeDetailsView += (int)LayoutIconHeightIncrementKind.DetailsView;
334+
if (UserSettingsService.LayoutSettingsService.ItemSizeDetailsView < DetailsViewSizeKind.ExtraLarge)
335+
UserSettingsService.LayoutSettingsService.ItemSizeDetailsView += 1;
336336
break;
337337
case LayoutTypes.List:
338-
if (UserSettingsService.LayoutSettingsService.ItemSizeListView < (int)LayoutListViewIconHeightKind.Maximum)
339-
UserSettingsService.LayoutSettingsService.ItemSizeListView += (int)LayoutIconHeightIncrementKind.ListView;
338+
if (UserSettingsService.LayoutSettingsService.ItemSizeListView < ListViewSizeKind.ExtraLarge)
339+
UserSettingsService.LayoutSettingsService.ItemSizeListView += 1;
340340
break;
341341
case LayoutTypes.Tiles:
342342
break;
343343
case LayoutTypes.Grid:
344-
if (UserSettingsService.LayoutSettingsService.ItemSizeGridView < (int)LayoutGridViewIconHeightKind.Maximum)
345-
UserSettingsService.LayoutSettingsService.ItemSizeGridView += (int)LayoutIconHeightIncrementKind.GridView;
344+
if (UserSettingsService.LayoutSettingsService.ItemSizeGridView < GridViewSizeKind.Eleven)
345+
UserSettingsService.LayoutSettingsService.ItemSizeGridView += 1;
346346
break;
347347
case LayoutTypes.Columns:
348-
if (UserSettingsService.LayoutSettingsService.ItemSizeColumnsView < (int)LayoutColumnsViewIconHeightKind.Maximum)
349-
UserSettingsService.LayoutSettingsService.ItemSizeColumnsView += (int)LayoutIconHeightIncrementKind.ColumnsView;
348+
if (UserSettingsService.LayoutSettingsService.ItemSizeColumnsView < ColumnsViewSizeKind.ExtraLarge)
349+
UserSettingsService.LayoutSettingsService.ItemSizeColumnsView += 1;
350350
break;
351351
}
352352

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -235,11 +235,10 @@ public uint GetRoundedIconSize()
235235
=> (int)LayoutItemIconSizeKind.Large,
236236
FolderLayoutModes.ColumnView
237237
=> (int)LayoutItemIconSizeKind.Large,
238-
_ when LayoutMode == FolderLayoutModes.TilesView && UserSettingsService.LayoutSettingsService.ItemSizeTilesView <= 96 ||
239-
LayoutMode == FolderLayoutModes.GridView && UserSettingsService.LayoutSettingsService.ItemSizeGridView <= 96
238+
_ when LayoutMode == FolderLayoutModes.GridView && UserSettingsService.LayoutSettingsService.ItemSizeGridView <= GridViewSizeKind.Small ||
239+
LayoutMode == FolderLayoutModes.TilesView
240240
=> 96,
241-
_ when LayoutMode == FolderLayoutModes.TilesView && UserSettingsService.LayoutSettingsService.ItemSizeTilesView <= 128 ||
242-
LayoutMode == FolderLayoutModes.GridView && UserSettingsService.LayoutSettingsService.ItemSizeGridView <= 128
241+
_ when LayoutMode == FolderLayoutModes.GridView && UserSettingsService.LayoutSettingsService.ItemSizeGridView <= GridViewSizeKind.Large
243242
=> 128,
244243
_ => 256,
245244
};
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
// Copyright (c) 2023 Files Community
2+
// Licensed under the MIT License. See the LICENSE.
3+
4+
namespace Files.App.Helpers
5+
{
6+
public static class LayoutSizeKindHelper
7+
{
8+
private static ILayoutSettingsService LayoutSettingsService { get; } = Ioc.Default.GetRequiredService<ILayoutSettingsService>();
9+
10+
/// <summary>
11+
/// Gets the desired height for items in the Details View
12+
/// </summary>
13+
/// <param name="detailsViewSizeKind"></param>
14+
/// <returns></returns>
15+
public static int GetDetailsViewRowHeight(DetailsViewSizeKind detailsViewSizeKind)
16+
{
17+
switch (detailsViewSizeKind)
18+
{
19+
case DetailsViewSizeKind.Compact:
20+
return 28;
21+
case DetailsViewSizeKind.Small:
22+
return 36;
23+
case DetailsViewSizeKind.Medium:
24+
return 40;
25+
case DetailsViewSizeKind.Large:
26+
return 44;
27+
case DetailsViewSizeKind.ExtraLarge:
28+
return 48;
29+
default:
30+
return 36;
31+
}
32+
}
33+
34+
/// <summary>
35+
/// Gets the desired width for items in the Grid View
36+
/// </summary>
37+
/// <param name="gridViewSizeKind"></param>
38+
/// <returns></returns>
39+
public static int GetGridViewItemWidth(GridViewSizeKind gridViewSizeKind)
40+
{
41+
switch (gridViewSizeKind)
42+
{
43+
case GridViewSizeKind.Compact:
44+
return 80;
45+
case GridViewSizeKind.Small:
46+
return 100;
47+
case GridViewSizeKind.Medium:
48+
return 120;
49+
case GridViewSizeKind.Large:
50+
return 140;
51+
case GridViewSizeKind.ExtraLarge:
52+
return 160;
53+
case GridViewSizeKind.Five:
54+
return 180;
55+
case GridViewSizeKind.Six:
56+
return 200;
57+
case GridViewSizeKind.Seven:
58+
return 220;
59+
case GridViewSizeKind.Eight:
60+
return 240;
61+
case GridViewSizeKind.Nine:
62+
return 260;
63+
case GridViewSizeKind.Ten:
64+
return 280;
65+
case GridViewSizeKind.Eleven:
66+
return 300;
67+
default:
68+
return 100;
69+
}
70+
}
71+
72+
/// <summary>
73+
/// Gets the desired height for items in the List View
74+
/// </summary>
75+
/// <param name="listViewSizeKind"></param>
76+
/// <returns></returns>
77+
public static int GetListViewRowHeight(ListViewSizeKind listViewSizeKind)
78+
{
79+
switch (listViewSizeKind)
80+
{
81+
case ListViewSizeKind.Compact:
82+
return 24;
83+
case ListViewSizeKind.Small:
84+
return 32;
85+
case ListViewSizeKind.Medium:
86+
return 36;
87+
case ListViewSizeKind.Large:
88+
return 40;
89+
case ListViewSizeKind.ExtraLarge:
90+
return 44;
91+
default:
92+
return 32;
93+
}
94+
}
95+
96+
/// <summary>
97+
/// Gets the desired height for items in the Columns View
98+
/// </summary>
99+
/// <param name="columnsViewSizeKind"></param>
100+
/// <returns></returns>
101+
public static int GetColumnsViewRowHeight(ColumnsViewSizeKind columnsViewSizeKind)
102+
{
103+
switch (columnsViewSizeKind)
104+
{
105+
case ColumnsViewSizeKind.Compact:
106+
return 28;
107+
case ColumnsViewSizeKind.Small:
108+
return 36;
109+
case ColumnsViewSizeKind.Medium:
110+
return 40;
111+
case ColumnsViewSizeKind.Large:
112+
return 44;
113+
case ColumnsViewSizeKind.ExtraLarge:
114+
return 48;
115+
default:
116+
return 36;
117+
}
118+
}
119+
120+
/// <summary>
121+
/// Gets the desired width for items in the Tiles View
122+
/// </summary>
123+
/// <param name="tilesViewSizeKind"></param>
124+
/// <returns></returns>
125+
public static int GetTilesViewItemWidth(TilesViewSizeKind tilesViewSizeKind)
126+
{
127+
return 260;
128+
}
129+
}
130+
}

src/Files.App/Services/Settings/LayoutSettingsService.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,33 +11,33 @@ public LayoutSettingsService(ISettingsSharingContext settingsSharingContext)
1111
RegisterSettingsContext(settingsSharingContext);
1212
}
1313

14-
public int ItemSizeDetailsView
14+
public DetailsViewSizeKind ItemSizeDetailsView
1515
{
16-
get => Get((int)LayoutDetailsViewIconHeightKind.Regular);
16+
get => Get(DetailsViewSizeKind.Small);
1717
set => Set(value);
1818
}
1919

20-
public int ItemSizeListView
20+
public ListViewSizeKind ItemSizeListView
2121
{
22-
get => Get((int)LayoutListViewIconHeightKind.Regular);
22+
get => Get(ListViewSizeKind.Small);
2323
set => Set(value);
2424
}
2525

26-
public int ItemSizeTilesView
26+
public TilesViewSizeKind ItemSizeTilesView
2727
{
28-
get => Get((int)LayoutTilesViewIconHeightKind.Regular);
28+
get => Get(TilesViewSizeKind.Small);
2929
set => Set(value);
3030
}
3131

32-
public int ItemSizeGridView
32+
public GridViewSizeKind ItemSizeGridView
3333
{
34-
get => Get((int)LayoutGridViewIconHeightKind.Medium);
34+
get => Get(GridViewSizeKind.ExtraLarge);
3535
set => Set(value);
3636
}
3737

38-
public int ItemSizeColumnsView
38+
public ColumnsViewSizeKind ItemSizeColumnsView
3939
{
40-
get => Get((int)LayoutColumnsViewIconHeightKind.Regular);
40+
get => Get(ColumnsViewSizeKind.Small);
4141
set => Set(value);
4242
}
4343
}

src/Files.App/UserControls/InnerNavigationToolbar.xaml

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
55
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
66
xmlns:contract8Present="http://schemas.microsoft.com/winfx/2006/xaml/presentation?IsApiContractPresent(Windows.Foundation.UniversalApiContract,8)"
7+
xmlns:converters="using:Files.App.Converters"
78
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
89
xmlns:helpers="using:Files.App.Helpers"
910
xmlns:local="using:Files.App.UserControls"
@@ -24,6 +25,7 @@
2425
<SolidColorBrush x:Key="CommandBarBackgroundOpen" Color="Transparent" />
2526
<SolidColorBrush x:Key="CommandBarBorderBrushOpen" Color="Transparent" />
2627

28+
<converters:GenericEnumConverter x:Key="GenericEnumConverter" />
2729
<wctconverters:BoolNegationConverter x:Key="BoolNegationConverter" />
2830
<wctconverters:BoolToVisibilityConverter
2931
x:Key="NegatedBoolToVisibilityConverter"
@@ -773,12 +775,12 @@
773775
x:Name="DetailsViewSlider"
774776
x:Load="{x:Bind ViewModel.IsDetailsLayout, Mode=OneWay}"
775777
IsThumbToolTipEnabled="False"
776-
Maximum="40"
777-
Minimum="28"
778+
Maximum="4"
779+
Minimum="0"
778780
SnapsTo="Ticks"
779-
TickFrequency="4"
781+
TickFrequency="1"
780782
TickPlacement="BottomRight"
781-
Value="{x:Bind UserSettingsService.LayoutSettingsService.ItemSizeDetailsView, Mode=TwoWay}" />
783+
Value="{x:Bind UserSettingsService.LayoutSettingsService.ItemSizeDetailsView, Mode=TwoWay, Converter={StaticResource GenericEnumConverter}, ConverterParameter='0-0,1-1,2-2,3-3,4-4'}" />
782784

783785
<!-- Tiles -->
784786
<Slider
@@ -792,36 +794,36 @@
792794
x:Name="ListViewSlider"
793795
x:Load="{x:Bind ViewModel.IsListLayout, Mode=OneWay}"
794796
IsThumbToolTipEnabled="False"
795-
Maximum="36"
796-
Minimum="24"
797+
Maximum="4"
798+
Minimum="0"
797799
SnapsTo="Ticks"
798-
TickFrequency="4"
800+
TickFrequency="1"
799801
TickPlacement="BottomRight"
800-
Value="{x:Bind UserSettingsService.LayoutSettingsService.ItemSizeListView, Mode=TwoWay}" />
802+
Value="{x:Bind UserSettingsService.LayoutSettingsService.ItemSizeListView, Mode=TwoWay, Converter={StaticResource GenericEnumConverter}, ConverterParameter='0-0,1-1,2-2,3-3,4-4'}" />
801803

802804
<!-- Grid -->
803805
<Slider
804806
x:Name="GridViewSlider"
805807
IsThumbToolTipEnabled="False"
806-
Maximum="300"
807-
Minimum="80"
808+
Maximum="11"
809+
Minimum="0"
808810
SnapsTo="Ticks"
809-
TickFrequency="20"
811+
TickFrequency="1"
810812
TickPlacement="BottomRight"
811813
Visibility="{x:Bind ViewModel.IsGridLayout, Mode=OneWay}"
812-
Value="{x:Bind UserSettingsService.LayoutSettingsService.ItemSizeGridView, Mode=TwoWay}" />
814+
Value="{x:Bind UserSettingsService.LayoutSettingsService.ItemSizeGridView, Mode=TwoWay, Converter={StaticResource GenericEnumConverter}, ConverterParameter='0-0,1-1,2-2,3-3,4-4,5-5,6-6,7-7,8-8,9-9,10-10,11-11'}" />
813815

814816
<!-- Columns -->
815817
<Slider
816818
x:Name="ColumnViewSlider"
817819
x:Load="{x:Bind ViewModel.IsColumnLayout, Mode=OneWay}"
818820
IsThumbToolTipEnabled="False"
819-
Maximum="40"
820-
Minimum="28"
821+
Maximum="4"
822+
Minimum="0"
821823
SnapsTo="Ticks"
822-
TickFrequency="4"
824+
TickFrequency="1"
823825
TickPlacement="BottomRight"
824-
Value="{x:Bind UserSettingsService.LayoutSettingsService.ItemSizeColumnsView, Mode=TwoWay}" />
826+
Value="{x:Bind UserSettingsService.LayoutSettingsService.ItemSizeColumnsView, Mode=TwoWay, Converter={StaticResource GenericEnumConverter}, ConverterParameter='0-0,1-1,2-2,3-3,4-4'}" />
825827
</Grid>
826828

827829
<!-- (Divider) -->

0 commit comments

Comments
 (0)