Skip to content

Commit 1d7ae05

Browse files
authored
Feature: Update layout size selection state (#14845)
1 parent 5bb2a34 commit 1d7ae05

File tree

9 files changed

+111
-48
lines changed

9 files changed

+111
-48
lines changed

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ public HotKey MediaHotKey
190190
ContentPageContext.PageType is not ContentPageTypes.Home &&
191191
((DisplayPageContext.LayoutType == LayoutTypes.Details && UserSettingsService.LayoutSettingsService.DetailsViewSize > DetailsViewSizeKind.Compact) ||
192192
(DisplayPageContext.LayoutType == LayoutTypes.List && UserSettingsService.LayoutSettingsService.ListViewSize > ListViewSizeKind.Compact) ||
193-
(DisplayPageContext.LayoutType == LayoutTypes.Grid && UserSettingsService.LayoutSettingsService.GridViewSize > GridViewSizeKind.Compact) ||
193+
(DisplayPageContext.LayoutType == LayoutTypes.Grid && UserSettingsService.LayoutSettingsService.GridViewSize > GridViewSizeKind.Small) ||
194194
(DisplayPageContext.LayoutType == LayoutTypes.Columns && UserSettingsService.LayoutSettingsService.ColumnsViewSize > ColumnsViewSizeKind.Compact));
195195

196196
public LayoutDecreaseSizeAction()
@@ -248,7 +248,7 @@ public Task ExecuteAsync()
248248
case LayoutTypes.Tiles:
249249
break;
250250
case LayoutTypes.Grid:
251-
if (UserSettingsService.LayoutSettingsService.GridViewSize > GridViewSizeKind.Compact)
251+
if (UserSettingsService.LayoutSettingsService.GridViewSize > GridViewSizeKind.Small)
252252
UserSettingsService.LayoutSettingsService.GridViewSize -= 1;
253253
break;
254254
case LayoutTypes.Columns:
@@ -283,7 +283,7 @@ public HotKey MediaHotKey
283283
ContentPageContext.PageType is not ContentPageTypes.Home &&
284284
((DisplayPageContext.LayoutType == LayoutTypes.Details && UserSettingsService.LayoutSettingsService.DetailsViewSize < DetailsViewSizeKind.ExtraLarge) ||
285285
(DisplayPageContext.LayoutType == LayoutTypes.List && UserSettingsService.LayoutSettingsService.ListViewSize < ListViewSizeKind.ExtraLarge) ||
286-
(DisplayPageContext.LayoutType == LayoutTypes.Grid && UserSettingsService.LayoutSettingsService.GridViewSize < GridViewSizeKind.Eleven) ||
286+
(DisplayPageContext.LayoutType == LayoutTypes.Grid && UserSettingsService.LayoutSettingsService.GridViewSize < GridViewSizeKind.ExtraLarge) ||
287287
(DisplayPageContext.LayoutType == LayoutTypes.Columns && UserSettingsService.LayoutSettingsService.ColumnsViewSize < ColumnsViewSizeKind.ExtraLarge));
288288

289289
public LayoutIncreaseSizeAction()
@@ -341,7 +341,7 @@ public Task ExecuteAsync()
341341
case LayoutTypes.Tiles:
342342
break;
343343
case LayoutTypes.Grid:
344-
if (UserSettingsService.LayoutSettingsService.GridViewSize < GridViewSizeKind.Eleven)
344+
if (UserSettingsService.LayoutSettingsService.GridViewSize < GridViewSizeKind.ExtraLarge)
345345
UserSettingsService.LayoutSettingsService.GridViewSize += 1;
346346
break;
347347
case LayoutTypes.Columns:

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

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -40,29 +40,29 @@ public static int GetGridViewItemWidth(GridViewSizeKind gridViewSizeKind)
4040
{
4141
switch (gridViewSizeKind)
4242
{
43-
case GridViewSizeKind.Compact:
44-
return 80;
4543
case GridViewSizeKind.Small:
46-
return 100;
44+
return 80;
4745
case GridViewSizeKind.Medium:
46+
return 100;
47+
case GridViewSizeKind.Three:
4848
return 120;
49-
case GridViewSizeKind.Large:
49+
case GridViewSizeKind.Four:
5050
return 140;
51-
case GridViewSizeKind.ExtraLarge:
52-
return 160;
5351
case GridViewSizeKind.Five:
54-
return 180;
52+
return 160;
5553
case GridViewSizeKind.Six:
56-
return 200;
54+
return 180;
5755
case GridViewSizeKind.Seven:
56+
return 200;
57+
case GridViewSizeKind.Large:
5858
return 220;
59-
case GridViewSizeKind.Eight:
60-
return 240;
6159
case GridViewSizeKind.Nine:
62-
return 260;
60+
return 240;
6361
case GridViewSizeKind.Ten:
64-
return 280;
62+
return 260;
6563
case GridViewSizeKind.Eleven:
64+
return 280;
65+
case GridViewSizeKind.ExtraLarge:
6666
return 300;
6767
default:
6868
return 100;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public TilesViewSizeKind TilesViewSize
3131

3232
public GridViewSizeKind GridViewSize
3333
{
34-
get => Get(GridViewSizeKind.ExtraLarge);
34+
get => Get(GridViewSizeKind.Large);
3535
set => Set(value);
3636
}
3737

src/Files.App/UserControls/InnerNavigationToolbar.xaml

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -779,12 +779,12 @@
779779
x:Name="DetailsViewSlider"
780780
Padding="4,0,4,0"
781781
IsThumbToolTipEnabled="False"
782-
Maximum="4"
783-
Minimum="0"
782+
Maximum="5"
783+
Minimum="1"
784784
SnapsTo="Ticks"
785785
TickFrequency="1"
786786
TickPlacement="BottomRight"
787-
Value="{x:Bind UserSettingsService.LayoutSettingsService.DetailsViewSize, Mode=TwoWay, Converter={StaticResource GenericEnumConverter}, ConverterParameter='0-0,1-1,2-2,3-3,4-4'}" />
787+
Value="{x:Bind UserSettingsService.LayoutSettingsService.DetailsViewSize, Mode=TwoWay, Converter={StaticResource GenericEnumConverter}, ConverterParameter='1-1,2-2,3-3,4-4,5-5'}" />
788788

789789
<Grid HorizontalAlignment="Stretch">
790790
<Grid.ColumnDefinitions>
@@ -803,30 +803,35 @@
803803
Grid.Column="0"
804804
Width="28"
805805
Height="28"
806+
IsSelected="{x:Bind ViewModel.IsLayoutSizeCompact, Mode=OneWay}"
806807
Style="{StaticResource ColorIconLayoutSizesCompact}" />
807808

808809
<local:OpacityIcon
809810
Grid.Column="2"
810811
Width="28"
811812
Height="28"
813+
IsSelected="{x:Bind ViewModel.IsLayoutSizeSmall, Mode=OneWay}"
812814
Style="{StaticResource ColorIconLayoutSizesSmall}" />
813815

814816
<local:OpacityIcon
815817
Grid.Column="4"
816818
Width="28"
817819
Height="28"
820+
IsSelected="{x:Bind ViewModel.IsLayoutSizeMedium, Mode=OneWay}"
818821
Style="{StaticResource ColorIconLayoutSizesMedium}" />
819822

820823
<local:OpacityIcon
821824
Grid.Column="6"
822825
Width="28"
823826
Height="28"
827+
IsSelected="{x:Bind ViewModel.IsLayoutSizeLarge, Mode=OneWay}"
824828
Style="{StaticResource ColorIconLayoutSizesLarge}" />
825829

826830
<local:OpacityIcon
827831
Grid.Column="8"
828832
Width="28"
829833
Height="28"
834+
IsSelected="{x:Bind ViewModel.IsLayoutSizeExtraLarge, Mode=OneWay}"
830835
Style="{StaticResource ColorIconLayoutSizesExtraLarge}" />
831836
</Grid>
832837
</StackPanel>
@@ -840,12 +845,12 @@
840845
x:Name="ListViewSlider"
841846
Padding="4,0,4,0"
842847
IsThumbToolTipEnabled="False"
843-
Maximum="4"
844-
Minimum="0"
848+
Maximum="5"
849+
Minimum="1"
845850
SnapsTo="Ticks"
846851
TickFrequency="1"
847852
TickPlacement="BottomRight"
848-
Value="{x:Bind UserSettingsService.LayoutSettingsService.ListViewSize, Mode=TwoWay, Converter={StaticResource GenericEnumConverter}, ConverterParameter='0-0,1-1,2-2,3-3,4-4'}" />
853+
Value="{x:Bind UserSettingsService.LayoutSettingsService.ListViewSize, Mode=TwoWay, Converter={StaticResource GenericEnumConverter}, ConverterParameter='1-1,2-2,3-3,4-4,5-5'}" />
849854

850855
<!-- List -->
851856
<Grid HorizontalAlignment="Stretch">
@@ -865,30 +870,35 @@
865870
Grid.Column="0"
866871
Width="28"
867872
Height="28"
873+
IsSelected="{x:Bind ViewModel.IsLayoutSizeCompact, Mode=OneWay}"
868874
Style="{StaticResource ColorIconLayoutSizesCompact}" />
869875

870876
<local:OpacityIcon
871877
Grid.Column="2"
872878
Width="28"
873879
Height="28"
880+
IsSelected="{x:Bind ViewModel.IsLayoutSizeSmall, Mode=OneWay}"
874881
Style="{StaticResource ColorIconLayoutSizesSmall}" />
875882

876883
<local:OpacityIcon
877884
Grid.Column="4"
878885
Width="28"
879886
Height="28"
887+
IsSelected="{x:Bind ViewModel.IsLayoutSizeMedium, Mode=OneWay}"
880888
Style="{StaticResource ColorIconLayoutSizesMedium}" />
881889

882890
<local:OpacityIcon
883891
Grid.Column="6"
884892
Width="28"
885893
Height="28"
894+
IsSelected="{x:Bind ViewModel.IsLayoutSizeLarge, Mode=OneWay}"
886895
Style="{StaticResource ColorIconLayoutSizesLarge}" />
887896

888897
<local:OpacityIcon
889898
Grid.Column="8"
890899
Width="28"
891900
Height="28"
901+
IsSelected="{x:Bind ViewModel.IsLayoutSizeExtraLarge, Mode=OneWay}"
892902
Style="{StaticResource ColorIconLayoutSizesExtraLarge}" />
893903
</Grid>
894904
</StackPanel>
@@ -918,12 +928,12 @@
918928
x:Name="GridViewSlider"
919929
Padding="4,0,4,0"
920930
IsThumbToolTipEnabled="False"
921-
Maximum="11"
922-
Minimum="0"
931+
Maximum="12"
932+
Minimum="1"
923933
SnapsTo="Ticks"
924934
TickFrequency="1"
925935
TickPlacement="BottomRight"
926-
Value="{x:Bind UserSettingsService.LayoutSettingsService.GridViewSize, 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'}" />
936+
Value="{x:Bind UserSettingsService.LayoutSettingsService.GridViewSize, Mode=TwoWay, Converter={StaticResource GenericEnumConverter}, ConverterParameter='1-1,2-2,3-3,4-4,5-5,6-6,7-7,8-8,9-9,10-10,11-11,12-12'}" />
927937

928938
<Grid HorizontalAlignment="Stretch">
929939
<Grid.ColumnDefinitions>
@@ -956,24 +966,28 @@
956966
Grid.Column="0"
957967
Width="28"
958968
Height="28"
969+
IsSelected="{x:Bind ViewModel.IsLayoutSizeSmall, Mode=OneWay}"
959970
Style="{StaticResource ColorIconLayoutSizesSmall}" />
960971

961972
<local:OpacityIcon
962973
Grid.Column="2"
963974
Width="28"
964975
Height="28"
976+
IsSelected="{x:Bind ViewModel.IsLayoutSizeMedium, Mode=OneWay}"
965977
Style="{StaticResource ColorIconLayoutSizesMedium}" />
966978

967979
<local:OpacityIcon
968980
Grid.Column="14"
969981
Width="28"
970982
Height="28"
983+
IsSelected="{x:Bind ViewModel.IsLayoutSizeLarge, Mode=OneWay}"
971984
Style="{StaticResource ColorIconLayoutSizesLarge}" />
972985

973986
<local:OpacityIcon
974987
Grid.Column="22"
975988
Width="28"
976989
Height="28"
990+
IsSelected="{x:Bind ViewModel.IsLayoutSizeExtraLarge, Mode=OneWay}"
977991
Style="{StaticResource ColorIconLayoutSizesExtraLarge}" />
978992
</Grid>
979993
</StackPanel>
@@ -987,12 +1001,12 @@
9871001
x:Name="ColumnViewSlider"
9881002
Padding="4,0,4,0"
9891003
IsThumbToolTipEnabled="False"
990-
Maximum="4"
991-
Minimum="0"
1004+
Maximum="5"
1005+
Minimum="1"
9921006
SnapsTo="Ticks"
9931007
TickFrequency="1"
9941008
TickPlacement="BottomRight"
995-
Value="{x:Bind UserSettingsService.LayoutSettingsService.ColumnsViewSize, Mode=TwoWay, Converter={StaticResource GenericEnumConverter}, ConverterParameter='0-0,1-1,2-2,3-3,4-4'}" />
1009+
Value="{x:Bind UserSettingsService.LayoutSettingsService.ColumnsViewSize, Mode=TwoWay, Converter={StaticResource GenericEnumConverter}, ConverterParameter='1-1,2-2,3-3,4-4,5-5'}" />
9961010

9971011
<Grid HorizontalAlignment="Stretch">
9981012
<Grid.ColumnDefinitions>
@@ -1011,30 +1025,35 @@
10111025
Grid.Column="0"
10121026
Width="28"
10131027
Height="28"
1028+
IsSelected="{x:Bind ViewModel.IsLayoutSizeCompact, Mode=OneWay}"
10141029
Style="{StaticResource ColorIconLayoutSizesCompact}" />
10151030

10161031
<local:OpacityIcon
10171032
Grid.Column="2"
10181033
Width="28"
10191034
Height="28"
1035+
IsSelected="{x:Bind ViewModel.IsLayoutSizeSmall, Mode=OneWay}"
10201036
Style="{StaticResource ColorIconLayoutSizesSmall}" />
10211037

10221038
<local:OpacityIcon
10231039
Grid.Column="4"
10241040
Width="28"
10251041
Height="28"
1042+
IsSelected="{x:Bind ViewModel.IsLayoutSizeMedium, Mode=OneWay}"
10261043
Style="{StaticResource ColorIconLayoutSizesMedium}" />
10271044

10281045
<local:OpacityIcon
10291046
Grid.Column="6"
10301047
Width="28"
10311048
Height="28"
1049+
IsSelected="{x:Bind ViewModel.IsLayoutSizeLarge, Mode=OneWay}"
10321050
Style="{StaticResource ColorIconLayoutSizesLarge}" />
10331051

10341052
<local:OpacityIcon
10351053
Grid.Column="8"
10361054
Width="28"
10371055
Height="28"
1056+
IsSelected="{x:Bind ViewModel.IsLayoutSizeExtraLarge, Mode=OneWay}"
10381057
Style="{StaticResource ColorIconLayoutSizesExtraLarge}" />
10391058
</Grid>
10401059
</StackPanel>

src/Files.App/ViewModels/UserControls/AddressToolbarViewModel.cs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,16 @@ private void UserSettingsService_OnSettingChangedEvent(object? sender, SettingCh
262262
RefreshWidgetsRequested?.Invoke(this, EventArgs.Empty);
263263
OnPropertyChanged(e.SettingName);
264264
break;
265+
case nameof(UserSettingsService.LayoutSettingsService.DetailsViewSize):
266+
case nameof(UserSettingsService.LayoutSettingsService.ListViewSize):
267+
case nameof(UserSettingsService.LayoutSettingsService.ColumnsViewSize):
268+
case nameof(UserSettingsService.LayoutSettingsService.GridViewSize):
269+
OnPropertyChanged(nameof(IsLayoutSizeCompact));
270+
OnPropertyChanged(nameof(IsLayoutSizeSmall));
271+
OnPropertyChanged(nameof(IsLayoutSizeMedium));
272+
OnPropertyChanged(nameof(IsLayoutSizeLarge));
273+
OnPropertyChanged(nameof(IsLayoutSizeExtraLarge));
274+
break;
265275
}
266276
}
267277

@@ -963,6 +973,11 @@ private void FolderSettings_PropertyChanged(object? sender, PropertyChangedEvent
963973
OnPropertyChanged(nameof(IsColumnLayout));
964974
OnPropertyChanged(nameof(IsGridLayout));
965975
OnPropertyChanged(nameof(IsDetailsLayout));
976+
OnPropertyChanged(nameof(IsLayoutSizeCompact));
977+
OnPropertyChanged(nameof(IsLayoutSizeSmall));
978+
OnPropertyChanged(nameof(IsLayoutSizeMedium));
979+
OnPropertyChanged(nameof(IsLayoutSizeLarge));
980+
OnPropertyChanged(nameof(IsLayoutSizeExtraLarge));
966981
break;
967982
}
968983
}
@@ -1017,6 +1032,35 @@ public List<ListedItem> SelectedItems
10171032
public bool IsDetailsLayout => instanceViewModel.FolderSettings.LayoutMode is FolderLayoutModes.DetailsView;
10181033
public bool IsListLayout => instanceViewModel.FolderSettings.LayoutMode is FolderLayoutModes.ListView;
10191034

1035+
public bool IsLayoutSizeCompact =>
1036+
(IsDetailsLayout && UserSettingsService.LayoutSettingsService.DetailsViewSize == DetailsViewSizeKind.Compact) ||
1037+
(IsListLayout && UserSettingsService.LayoutSettingsService.ListViewSize == ListViewSizeKind.Compact) ||
1038+
(IsColumnLayout && UserSettingsService.LayoutSettingsService.ColumnsViewSize == ColumnsViewSizeKind.Compact);
1039+
1040+
public bool IsLayoutSizeSmall =>
1041+
(IsDetailsLayout && UserSettingsService.LayoutSettingsService.DetailsViewSize == DetailsViewSizeKind.Small) ||
1042+
(IsListLayout && UserSettingsService.LayoutSettingsService.ListViewSize == ListViewSizeKind.Small) ||
1043+
(IsColumnLayout && UserSettingsService.LayoutSettingsService.ColumnsViewSize == ColumnsViewSizeKind.Small) ||
1044+
(IsGridLayout && UserSettingsService.LayoutSettingsService.GridViewSize == GridViewSizeKind.Small);
1045+
1046+
public bool IsLayoutSizeMedium =>
1047+
(IsDetailsLayout && UserSettingsService.LayoutSettingsService.DetailsViewSize == DetailsViewSizeKind.Medium) ||
1048+
(IsListLayout && UserSettingsService.LayoutSettingsService.ListViewSize == ListViewSizeKind.Medium) ||
1049+
(IsColumnLayout && UserSettingsService.LayoutSettingsService.ColumnsViewSize == ColumnsViewSizeKind.Medium) ||
1050+
(IsGridLayout && UserSettingsService.LayoutSettingsService.GridViewSize == GridViewSizeKind.Medium);
1051+
1052+
public bool IsLayoutSizeLarge =>
1053+
(IsDetailsLayout && UserSettingsService.LayoutSettingsService.DetailsViewSize == DetailsViewSizeKind.Large) ||
1054+
(IsListLayout && UserSettingsService.LayoutSettingsService.ListViewSize == ListViewSizeKind.Large) ||
1055+
(IsColumnLayout && UserSettingsService.LayoutSettingsService.ColumnsViewSize == ColumnsViewSizeKind.Large) ||
1056+
(IsGridLayout && UserSettingsService.LayoutSettingsService.GridViewSize == GridViewSizeKind.Large);
1057+
1058+
public bool IsLayoutSizeExtraLarge =>
1059+
(IsDetailsLayout && UserSettingsService.LayoutSettingsService.DetailsViewSize == DetailsViewSizeKind.ExtraLarge) ||
1060+
(IsListLayout && UserSettingsService.LayoutSettingsService.ListViewSize == ListViewSizeKind.ExtraLarge) ||
1061+
(IsColumnLayout && UserSettingsService.LayoutSettingsService.ColumnsViewSize == ColumnsViewSizeKind.ExtraLarge) ||
1062+
(IsGridLayout && UserSettingsService.LayoutSettingsService.GridViewSize == GridViewSizeKind.ExtraLarge);
1063+
10201064
public string ExtractToText
10211065
=> IsSelectionArchivesOnly ? SelectedItems.Count > 1 ? string.Format("ExtractToChildFolder".GetLocalizedResource(), $"*{Path.DirectorySeparatorChar}") : string.Format("ExtractToChildFolder".GetLocalizedResource() + "\\", Path.GetFileNameWithoutExtension(selectedItems.First().Name)) : "ExtractToChildFolder".GetLocalizedResource();
10221066

src/Files.Core/Data/Enums/ColumnsViewSizeKind.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ namespace Files.Core.Data.Enums
55
{
66
public enum ColumnsViewSizeKind
77
{
8-
Compact = 0,
9-
Small = 1,
10-
Medium = 2,
11-
Large = 3,
12-
ExtraLarge = 4,
8+
Compact = 1,
9+
Small = 2,
10+
Medium = 3,
11+
Large = 4,
12+
ExtraLarge = 5,
1313
}
1414
}

src/Files.Core/Data/Enums/DetailsViewSizeKind.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ namespace Files.Core.Data.Enums
55
{
66
public enum DetailsViewSizeKind
77
{
8-
Compact = 0,
9-
Small = 1,
10-
Medium = 2,
11-
Large = 3,
12-
ExtraLarge = 4,
8+
Compact = 1,
9+
Small = 2,
10+
Medium = 3,
11+
Large = 4,
12+
ExtraLarge = 5,
1313
}
1414
}

0 commit comments

Comments
 (0)