Skip to content

Commit

Permalink
Fix: Fixed an issue where the layout flyout sometimes didn't highligh…
Browse files Browse the repository at this point in the history
…t the selected layout (#13011)
  • Loading branch information
hishitetsu committed Jul 21, 2023
1 parent 796ba9b commit f7ba940
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 25 deletions.
24 changes: 12 additions & 12 deletions src/Files.App/UserControls/InnerNavigationToolbar.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -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}">
<local:OpacityIcon
Width="16"
Height="16"
IsSelected="{x:Bind Commands.LayoutDetails.IsOn, Mode=OneWay}"
IsSelected="{x:Bind ViewModel.IsDetailsLayout, Mode=OneWay}"
Style="{x:Bind Commands.LayoutDetails.OpacityStyle}" />
</RadioButton>

Expand All @@ -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}">
<local:OpacityIcon
Width="16"
Height="16"
IsSelected="{x:Bind Commands.LayoutColumns.IsOn, Mode=OneWay}"
IsSelected="{x:Bind ViewModel.IsColumnLayout, Mode=OneWay}"
Style="{x:Bind Commands.LayoutColumns.OpacityStyle}" />
</RadioButton>

Expand All @@ -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}">
<local:OpacityIcon
Width="16"
Height="16"
IsSelected="{x:Bind Commands.LayoutTiles.IsOn, Mode=OneWay}"
IsSelected="{x:Bind ViewModel.IsTilesLayout, Mode=OneWay}"
Style="{x:Bind Commands.LayoutTiles.OpacityStyle}" />
</RadioButton>

Expand All @@ -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}">
<local:OpacityIcon
Width="16"
Height="16"
IsSelected="{x:Bind Commands.LayoutGridSmall.IsOn, Mode=OneWay}"
IsSelected="{x:Bind ViewModel.IsGridSmallLayout, Mode=OneWay}"
Style="{x:Bind Commands.LayoutGridSmall.OpacityStyle}" />
</RadioButton>

Expand All @@ -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}">
<local:OpacityIcon
Width="16"
Height="16"
IsSelected="{x:Bind Commands.LayoutGridMedium.IsOn, Mode=OneWay}"
IsSelected="{x:Bind ViewModel.IsGridMediumLayout, Mode=OneWay}"
Style="{x:Bind Commands.LayoutGridMedium.OpacityStyle}" />
</RadioButton>

Expand Down Expand Up @@ -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}">
<local:OpacityIcon
Width="16"
Height="16"
IsSelected="{x:Bind Commands.LayoutGridLarge.IsOn, Mode=OneWay}"
IsSelected="{x:Bind ViewModel.IsGridLargeLayout, Mode=OneWay}"
Style="{x:Bind Commands.LayoutGridLarge.OpacityStyle}" />
</RadioButton>

Expand Down
37 changes: 24 additions & 13 deletions src/Files.App/ViewModels/UserControls/ToolbarViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}
Expand Down Expand Up @@ -902,6 +906,13 @@ public List<ListedItem> 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();

Expand Down

0 comments on commit f7ba940

Please sign in to comment.