diff --git a/src/Files.App/UserControls/InnerNavigationToolbar.xaml b/src/Files.App/UserControls/InnerNavigationToolbar.xaml
index e3d7b2948c88..fd617741e81d 100644
--- a/src/Files.App/UserControls/InnerNavigationToolbar.xaml
+++ b/src/Files.App/UserControls/InnerNavigationToolbar.xaml
@@ -642,13 +642,13 @@
Command="{x:Bind Commands.LayoutDetails}"
CornerRadius="{StaticResource ControlCornerRadius}"
GroupName="LayoutRadio"
- IsChecked="{x:Bind Commands.LayoutDetails.IsOn, Mode=OneWay}"
+ IsChecked="{x:Bind ViewModel.IsDetailsLayout, Mode=OneWay}"
Style="{StaticResource DefaultToggleButtonStyle}"
ToolTipService.ToolTip="{x:Bind Commands.LayoutDetails.LabelWithHotKey, Mode=OneWay}">
@@ -674,13 +674,13 @@
Command="{x:Bind Commands.LayoutColumns}"
CornerRadius="{StaticResource ControlCornerRadius}"
GroupName="LayoutRadio"
- IsChecked="{x:Bind Commands.LayoutColumns.IsOn, Mode=OneWay}"
+ IsChecked="{x:Bind ViewModel.IsColumnLayout, Mode=OneWay}"
Style="{StaticResource DefaultToggleButtonStyle}"
ToolTipService.ToolTip="{x:Bind Commands.LayoutColumns.LabelWithHotKey, Mode=OneWay}">
@@ -706,13 +706,13 @@
Command="{x:Bind Commands.LayoutTiles}"
CornerRadius="{StaticResource ControlCornerRadius}"
GroupName="LayoutRadio"
- IsChecked="{x:Bind Commands.LayoutTiles.IsOn, Mode=OneWay}"
+ IsChecked="{x:Bind ViewModel.IsTilesLayout, Mode=OneWay}"
Style="{StaticResource DefaultToggleButtonStyle}"
ToolTipService.ToolTip="{x:Bind Commands.LayoutTiles.LabelWithHotKey, Mode=OneWay}">
@@ -738,13 +738,13 @@
Command="{x:Bind Commands.LayoutGridSmall}"
CornerRadius="{StaticResource ControlCornerRadius}"
GroupName="LayoutRadio"
- IsChecked="{x:Bind Commands.LayoutGridSmall.IsOn, Mode=OneWay}"
+ IsChecked="{x:Bind ViewModel.IsGridSmallLayout, Mode=OneWay}"
Style="{StaticResource DefaultToggleButtonStyle}"
ToolTipService.ToolTip="{x:Bind Commands.LayoutGridSmall.LabelWithHotKey, Mode=OneWay}">
@@ -770,13 +770,13 @@
Command="{x:Bind Commands.LayoutGridMedium}"
CornerRadius="{StaticResource ControlCornerRadius}"
GroupName="LayoutRadio"
- IsChecked="{x:Bind Commands.LayoutGridMedium.IsOn, Mode=OneWay}"
+ IsChecked="{x:Bind ViewModel.IsGridMediumLayout, Mode=OneWay}"
Style="{StaticResource DefaultToggleButtonStyle}"
ToolTipService.ToolTip="{x:Bind Commands.LayoutGridMedium.LabelWithHotKey, Mode=OneWay}">
@@ -812,13 +812,13 @@
Command="{x:Bind Commands.LayoutGridLarge}"
CornerRadius="{StaticResource ControlCornerRadius}"
GroupName="LayoutRadio"
- IsChecked="{x:Bind Commands.LayoutGridLarge.IsOn, Mode=OneWay}"
+ IsChecked="{x:Bind ViewModel.IsGridLargeLayout, Mode=OneWay}"
Style="{StaticResource DefaultToggleButtonStyle}"
ToolTipService.ToolTip="{x:Bind Commands.LayoutGridLarge.LabelWithHotKey, Mode=OneWay}">
diff --git a/src/Files.App/ViewModels/UserControls/ToolbarViewModel.cs b/src/Files.App/ViewModels/UserControls/ToolbarViewModel.cs
index 124ea7204897..9002ad1567dd 100644
--- a/src/Files.App/ViewModels/UserControls/ToolbarViewModel.cs
+++ b/src/Files.App/ViewModels/UserControls/ToolbarViewModel.cs
@@ -840,20 +840,24 @@ private void FolderSettings_PropertyChanged(object? sender, PropertyChangedEvent
{
case nameof(FolderSettingsViewModel.GridViewSize):
case nameof(FolderSettingsViewModel.LayoutMode):
+ LayoutOpacityIcon = instanceViewModel.FolderSettings.LayoutMode switch
{
- LayoutOpacityIcon = instanceViewModel.FolderSettings.LayoutMode switch
- {
- FolderLayoutModes.TilesView => Commands.LayoutTiles.OpacityStyle!,
- FolderLayoutModes.ColumnView => Commands.LayoutColumns.OpacityStyle!,
- FolderLayoutModes.GridView =>
- instanceViewModel.FolderSettings.GridViewSize <= Constants.Browser.GridViewBrowser.GridViewSizeSmall
- ? Commands.LayoutGridSmall.OpacityStyle!
- : instanceViewModel.FolderSettings.GridViewSize <= Constants.Browser.GridViewBrowser.GridViewSizeMedium
- ? Commands.LayoutGridMedium.OpacityStyle!
- : Commands.LayoutGridLarge.OpacityStyle!,
- _ => Commands.LayoutDetails.OpacityStyle!
- };
- }
+ FolderLayoutModes.TilesView => Commands.LayoutTiles.OpacityStyle!,
+ FolderLayoutModes.ColumnView => Commands.LayoutColumns.OpacityStyle!,
+ FolderLayoutModes.GridView =>
+ instanceViewModel.FolderSettings.GridViewSize <= Constants.Browser.GridViewBrowser.GridViewSizeSmall
+ ? Commands.LayoutGridSmall.OpacityStyle!
+ : instanceViewModel.FolderSettings.GridViewSize <= Constants.Browser.GridViewBrowser.GridViewSizeMedium
+ ? Commands.LayoutGridMedium.OpacityStyle!
+ : Commands.LayoutGridLarge.OpacityStyle!,
+ _ => Commands.LayoutDetails.OpacityStyle!
+ };
+ OnPropertyChanged(nameof(IsTilesLayout));
+ OnPropertyChanged(nameof(IsColumnLayout));
+ OnPropertyChanged(nameof(IsGridSmallLayout));
+ OnPropertyChanged(nameof(IsGridMediumLayout));
+ OnPropertyChanged(nameof(IsGridLargeLayout));
+ OnPropertyChanged(nameof(IsDetailsLayout));
break;
}
}
@@ -902,6 +906,13 @@ public List SelectedItems
public bool IsInfFile => SelectedItems is not null && SelectedItems.Count == 1 && FileExtensionHelpers.IsInfFile(SelectedItems.First().FileExtension) && !InstanceViewModel.IsPageTypeRecycleBin;
public bool IsFont => SelectedItems is not null && SelectedItems.Any() && SelectedItems.All(x => FileExtensionHelpers.IsFontFile(x.FileExtension)) && !InstanceViewModel.IsPageTypeRecycleBin;
+ public bool IsTilesLayout => instanceViewModel.FolderSettings.LayoutMode is FolderLayoutModes.TilesView;
+ public bool IsColumnLayout => instanceViewModel.FolderSettings.LayoutMode is FolderLayoutModes.ColumnView;
+ public bool IsGridSmallLayout => instanceViewModel.FolderSettings.LayoutMode is FolderLayoutModes.GridView && instanceViewModel.FolderSettings.GridViewSize <= Constants.Browser.GridViewBrowser.GridViewSizeSmall;
+ public bool IsGridMediumLayout => instanceViewModel.FolderSettings.LayoutMode is FolderLayoutModes.GridView && !IsGridSmallLayout && instanceViewModel.FolderSettings.GridViewSize <= Constants.Browser.GridViewBrowser.GridViewSizeMedium;
+ public bool IsGridLargeLayout => instanceViewModel.FolderSettings.LayoutMode is FolderLayoutModes.GridView && !IsGridSmallLayout && !IsGridMediumLayout;
+ public bool IsDetailsLayout => !IsTilesLayout && !IsColumnLayout && !IsGridSmallLayout && !IsGridMediumLayout && !IsGridLargeLayout;
+
public string ExtractToText
=> IsSelectionArchivesOnly ? SelectedItems.Count > 1 ? string.Format("ExtractToChildFolder".GetLocalizedResource(), $"*{Path.DirectorySeparatorChar}") : string.Format("ExtractToChildFolder".GetLocalizedResource() + "\\", Path.GetFileNameWithoutExtension(selectedItems.First().Name)) : "ExtractToChildFolder".GetLocalizedResource();