From 2adfc7f48a64bc52f1523a084602ff823f4fbfe4 Mon Sep 17 00:00:00 2001 From: hishitetsu <66369541+hishitetsu@users.noreply.github.com> Date: Fri, 21 Jul 2023 14:14:24 +0900 Subject: [PATCH] Fix layout icon highlight --- .../UserControls/InnerNavigationToolbar.xaml | 24 ++++++------ .../UserControls/ToolbarViewModel.cs | 37 ++++++++++++------- 2 files changed, 36 insertions(+), 25 deletions(-) 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();