fix build: Utils.h SettingContainer -> SettingsExpander; Profiles_Base.cpp navigator Buttons use Content/Tag; DeleteButton not DeleteProfileButton

This commit is contained in:
Carlos Zamora
2026-05-20 21:19:08 -07:00
parent 21db3d3a03
commit 5ff907df05
3 changed files with 78 additions and 122 deletions

View File

@@ -104,7 +104,7 @@
<!-- Start on User Login -->
<local:SettingsCard x:Name="StartOnUserLogin"
x:Uid="Globals_StartOnUserLogin"
HelpText="{x:Bind ViewModel.StartOnUserLoginStatefulHelpText, Mode=OneWay}"
Description="{x:Bind ViewModel.StartOnUserLoginStatefulHelpText, Mode=OneWay}"
Visibility="{x:Bind ViewModel.StartOnUserLoginAvailable, Mode=OneTime}">
<ToggleSwitch IsEnabled="{x:Bind ViewModel.StartOnUserLoginConfigurable, Mode=OneWay}"
IsOn="{x:Bind ViewModel.StartOnUserLogin, Mode=TwoWay}"
@@ -112,123 +112,76 @@
</local:SettingsCard>
<!-- Launch Parameters -->
<local:SettingsCard x:Name="LaunchParameters"
<local:SettingsExpander x:Name="LaunchParameters"
x:Uid="Globals_LaunchParameters">
<Grid RowSpacing="8">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock x:Uid="Globals_LaunchModeSetting"
Grid.Row="0"
Grid.Column="0"
VerticalAlignment="Center" />
<ComboBox x:Name="LaunchModeComboBox"
Grid.Row="0"
Grid.Column="1"
MinWidth="240"
AutomationProperties.AccessibilityView="Content"
ItemTemplate="{StaticResource EnumComboBoxTemplate}"
ItemsSource="{x:Bind ViewModel.LaunchModeList}"
SelectedItem="{x:Bind ViewModel.CurrentLaunchMode, Mode=TwoWay}"
Style="{StaticResource ComboBoxSettingStyle}" />
<TextBlock x:Uid="Globals_LaunchPosition"
Grid.Row="1"
Grid.Column="0"
VerticalAlignment="Center" />
<Grid Grid.Row="1"
Grid.Column="1"
ColumnSpacing="4">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<!-- Match the width of these NumberBoxes to the Width of the LaunchModeComboBox above minus the Grid's ColumnSpacing -->
<muxc:NumberBox x:Name="PosXBox"
x:Uid="Globals_InitialPosXBox"
Grid.Row="0"
Grid.Column="0"
Width="118"
IsEnabled="{x:Bind mtu:Converters.InvertBoolean(ViewModel.UseDefaultLaunchPosition), Mode=OneWay}"
Style="{StaticResource LaunchPositionNumberBoxStyle}"
Value="{x:Bind ViewModel.InitialPosX, Mode=TwoWay}" />
<muxc:NumberBox x:Name="PosYBox"
x:Uid="Globals_InitialPosYBox"
Grid.Row="0"
Grid.Column="1"
Width="118"
IsEnabled="{x:Bind mtu:Converters.InvertBoolean(ViewModel.UseDefaultLaunchPosition), Mode=OneWay}"
Style="{StaticResource LaunchPositionNumberBoxStyle}"
Value="{x:Bind ViewModel.InitialPosY, Mode=TwoWay}" />
<CheckBox x:Name="UseDefaultLaunchPositionCheckbox"
x:Uid="Globals_DefaultLaunchPositionCheckbox"
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="2"
IsChecked="{x:Bind ViewModel.UseDefaultLaunchPosition, Mode=TwoWay}" />
</Grid>
<TextBlock x:Uid="Globals_CenterOnLaunch"
Grid.Row="2"
Grid.Column="0"
VerticalAlignment="Center" />
<ToggleSwitch x:Name="CenterOnLaunchToggle"
Grid.Row="2"
Grid.Column="1"
IsOn="{x:Bind ViewModel.CenterOnLaunch, Mode=TwoWay}"
Style="{StaticResource ToggleSwitchInExpanderStyle}" />
</Grid>
</local:SettingsCard>
<local:SettingsExpander.Content>
<TextBlock Style="{StaticResource SettingContainerCurrentValueTextBlockStyle}"
Text="{x:Bind ViewModel.LaunchParametersCurrentValue, Mode=OneWay}" />
</local:SettingsExpander.Content>
<local:SettingsExpander.Items>
<local:SettingsCard x:Uid="Globals_LaunchModeSetting">
<ComboBox x:Name="LaunchModeComboBox"
AutomationProperties.AccessibilityView="Content"
ItemTemplate="{StaticResource EnumComboBoxTemplate}"
ItemsSource="{x:Bind ViewModel.LaunchModeList}"
SelectedItem="{x:Bind ViewModel.CurrentLaunchMode, Mode=TwoWay}"
Style="{StaticResource ComboBoxSettingStyle}" />
</local:SettingsCard>
<local:SettingsCard x:Uid="Globals_LaunchPosition">
<StackPanel Orientation="Vertical"
Spacing="4">
<StackPanel Orientation="Horizontal"
Spacing="4">
<muxc:NumberBox x:Name="PosXBox"
x:Uid="Globals_InitialPosXBox"
Width="118"
IsEnabled="{x:Bind mtu:Converters.InvertBoolean(ViewModel.UseDefaultLaunchPosition), Mode=OneWay}"
Style="{StaticResource LaunchPositionNumberBoxStyle}"
Value="{x:Bind ViewModel.InitialPosX, Mode=TwoWay}" />
<muxc:NumberBox x:Name="PosYBox"
x:Uid="Globals_InitialPosYBox"
Width="118"
IsEnabled="{x:Bind mtu:Converters.InvertBoolean(ViewModel.UseDefaultLaunchPosition), Mode=OneWay}"
Style="{StaticResource LaunchPositionNumberBoxStyle}"
Value="{x:Bind ViewModel.InitialPosY, Mode=TwoWay}" />
</StackPanel>
<CheckBox x:Name="UseDefaultLaunchPositionCheckbox"
x:Uid="Globals_DefaultLaunchPositionCheckbox"
IsChecked="{x:Bind ViewModel.UseDefaultLaunchPosition, Mode=TwoWay}" />
</StackPanel>
</local:SettingsCard>
<local:SettingsCard x:Uid="Globals_CenterOnLaunch">
<ToggleSwitch x:Name="CenterOnLaunchToggle"
IsOn="{x:Bind ViewModel.CenterOnLaunch, Mode=TwoWay}"
Style="{StaticResource ToggleSwitchInExpanderStyle}" />
</local:SettingsCard>
</local:SettingsExpander.Items>
</local:SettingsExpander>
<!-- Launch Size -->
<local:SettingsCard x:Name="LaunchSize"
<local:SettingsExpander x:Name="LaunchSize"
x:Uid="Globals_LaunchSize">
<Grid ColumnSpacing="12"
RowSpacing="8">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock x:Uid="Globals_InitialCols"
Grid.Row="0"
Grid.Column="0"
VerticalAlignment="Center"
Style="{StaticResource SettingsPageItemHeaderStyle}" />
<muxc:NumberBox x:Uid="Globals_InitialColsBox"
Grid.Row="0"
Grid.Column="1"
VerticalAlignment="Center"
Maximum="999"
Minimum="1"
Style="{StaticResource LaunchSizeNumberBoxStyle}"
Value="{x:Bind ViewModel.InitialCols, Mode=TwoWay}" />
<TextBlock x:Uid="Globals_InitialRows"
Grid.Row="1"
Grid.Column="0"
VerticalAlignment="Center"
Style="{StaticResource SettingsPageItemHeaderStyle}" />
<muxc:NumberBox x:Uid="Globals_InitialRowsBox"
Grid.Row="1"
Grid.Column="1"
VerticalAlignment="Center"
Maximum="999"
Minimum="1"
Style="{StaticResource LaunchSizeNumberBoxStyle}"
Value="{x:Bind ViewModel.InitialRows, Mode=TwoWay}" />
</Grid>
</local:SettingsCard>
<local:SettingsExpander.Content>
<TextBlock Style="{StaticResource SettingContainerCurrentValueTextBlockStyle}"
Text="{x:Bind ViewModel.LaunchSizeCurrentValue, Mode=OneWay}" />
</local:SettingsExpander.Content>
<local:SettingsExpander.Items>
<local:SettingsCard x:Uid="Globals_InitialCols">
<muxc:NumberBox x:Uid="Globals_InitialColsBox"
Maximum="999"
Minimum="1"
Style="{StaticResource LaunchSizeNumberBoxStyle}"
Value="{x:Bind ViewModel.InitialCols, Mode=TwoWay}" />
</local:SettingsCard>
<local:SettingsCard x:Uid="Globals_InitialRows">
<muxc:NumberBox x:Uid="Globals_InitialRowsBox"
Maximum="999"
Minimum="1"
Style="{StaticResource LaunchSizeNumberBoxStyle}"
Value="{x:Bind ViewModel.InitialRows, Mode=TwoWay}" />
</local:SettingsCard>
</local:SettingsExpander.Items>
</local:SettingsExpander>
</StackPanel>
<!-- Section: System & input defaults -->

View File

@@ -22,9 +22,11 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
Automation::AutomationProperties::SetFullDescription(StartingDirectoryUseParentCheckbox(), unbox_value<hstring>(startingDirCheckboxTooltip));
Automation::AutomationProperties::SetName(DeleteButton(), RS_(L"Profile_DeleteButton/Text"));
AppearanceNavigator().Header(box_value(RS_(L"Profile_Appearance/Header")));
TerminalNavigator().Header(box_value(RS_(L"Profile_Terminal/Header")));
AdvancedNavigator().Header(box_value(RS_(L"Profile_Advanced/Header")));
AppearanceNavigator().Content(box_value(RS_(L"Profile_Appearance/Header")));
AppearanceNavigator().Tag(box_value(RS_(L"Profile_AppearanceNavigator/HelpText")));
TerminalNavigator().Content(box_value(RS_(L"Profile_Terminal/Header")));
TerminalNavigator().Tag(box_value(RS_(L"Profile_TerminalNavigator/HelpText")));
AdvancedNavigator().Content(box_value(RS_(L"Profile_Advanced/Header")));
}
void Profiles_Base::OnNavigatedTo(const NavigationEventArgs& e)
@@ -51,7 +53,7 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
if (_Profile.FocusDeleteButton())
{
DeleteProfileButton().Focus(FocusState::Programmatic);
DeleteButton().Focus(FocusState::Programmatic);
_Profile.FocusDeleteButton(false);
}
});

View File

@@ -3,6 +3,8 @@
#pragma once
#include "SettingsExpander.h"
// This macro must be used alongside GETSET_BINDABLE_ENUM_SETTING.
// Use this in your class's constructor after Initialize_Component().
// It sorts and initializes the observable list of enum entries with the enum name
@@ -135,8 +137,7 @@ struct HasScrollViewer
// expand any ancestor expanders so the target is actually
// visible. This handles both:
// - Plain muxc:Expander instances used as section groupings
// - SettingContainer instances using an expander style
// (i.e. ExpanderSettingContainerStyleWithComplexPreview).
// - SettingsExpander instances (the WCT-derived control)
winrt::Windows::UI::Xaml::DependencyObject ancestor{ controlToFocus };
while (ancestor)
{
@@ -144,9 +145,9 @@ struct HasScrollViewer
{
expander.IsExpanded(true);
}
else if (const auto& settingContainer{ ancestor.try_as<winrt::Microsoft::Terminal::Settings::Editor::SettingContainer>() })
else if (const auto& settingsExpander{ ancestor.try_as<winrt::Microsoft::Terminal::Settings::Editor::SettingsExpander>() })
{
settingContainer.SetExpanded(true);
settingsExpander.IsExpanded(true);
}
ancestor = winrt::Windows::UI::Xaml::Media::VisualTreeHelper::GetParent(ancestor);
}