Skip to content

Commit 3ae6bbf

Browse files
Enable SSH Generator Feature Flag and polish UI (#18814)
1 parent 36162ae commit 3ae6bbf

File tree

8 files changed

+70
-2
lines changed

8 files changed

+70
-2
lines changed

src/cascadia/TerminalSettingsEditor/Extensions.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,12 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
500500
{
501501
if (!extPkgVM.Package().DisplayName().empty())
502502
{
503+
// Check if the first char of the icon is in the Segoe MDL2 Icons list
504+
const auto ch = til::at(extPkgVM.Package().Icon(), 0);
505+
if (ch >= L'\uE700' && ch <= L'\uF8FF')
506+
{
507+
return ComplexTemplateWithFontIcon();
508+
}
503509
return ComplexTemplate();
504510
}
505511
return DefaultTemplate();

src/cascadia/TerminalSettingsEditor/Extensions.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
183183

184184
WINRT_PROPERTY(Windows::UI::Xaml::DataTemplate, DefaultTemplate, nullptr);
185185
WINRT_PROPERTY(Windows::UI::Xaml::DataTemplate, ComplexTemplate, nullptr);
186+
WINRT_PROPERTY(Windows::UI::Xaml::DataTemplate, ComplexTemplateWithFontIcon, nullptr);
186187
};
187188
};
188189

src/cascadia/TerminalSettingsEditor/Extensions.idl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,5 +77,6 @@ namespace Microsoft.Terminal.Settings.Editor
7777

7878
Windows.UI.Xaml.DataTemplate DefaultTemplate;
7979
Windows.UI.Xaml.DataTemplate ComplexTemplate;
80+
Windows.UI.Xaml.DataTemplate ComplexTemplateWithFontIcon;
8081
}
8182
}

src/cascadia/TerminalSettingsEditor/Extensions.xaml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242

4343
<local:ExtensionPackageTemplateSelector x:Key="ExtensionPackageIdentifierTemplateSelector"
4444
ComplexTemplate="{StaticResource ComplexExtensionIdentifierTemplate}"
45+
ComplexTemplateWithFontIcon="{StaticResource ComplexExtensionIdentifierTemplateWithFontIcon}"
4546
DefaultTemplate="{StaticResource DefaultExtensionIdentifierTemplate}" />
4647

4748
<DataTemplate x:Key="DefaultExtensionIdentifierTemplate"
@@ -91,8 +92,37 @@
9192
</Grid>
9293
</DataTemplate>
9394

95+
<DataTemplate x:Key="ComplexExtensionIdentifierTemplateWithFontIcon"
96+
x:DataType="local:ExtensionPackageViewModel">
97+
<Grid>
98+
<Grid.ColumnDefinitions>
99+
<ColumnDefinition Width="Auto" />
100+
<ColumnDefinition Width="*" />
101+
</Grid.ColumnDefinitions>
102+
<Grid.RowDefinitions>
103+
<RowDefinition Height="Auto" />
104+
<RowDefinition Height="Auto" />
105+
</Grid.RowDefinitions>
106+
107+
<FontIcon Grid.Row="0"
108+
Grid.RowSpan="2"
109+
Grid.Column="0"
110+
Margin="0,0,8,0"
111+
FontSize="32"
112+
Glyph="{x:Bind Package.Icon}" />
113+
<TextBlock Grid.Row="0"
114+
Grid.Column="1"
115+
Text="{x:Bind Package.DisplayName}" />
116+
<TextBlock Grid.Row="1"
117+
Grid.Column="1"
118+
Style="{StaticResource SettingsPageItemDescriptionStyle}"
119+
Text="{x:Bind Package.Source}" />
120+
</Grid>
121+
</DataTemplate>
122+
94123
<local:ExtensionPackageTemplateSelector x:Key="ExtensionPackageNavigatorTemplateSelector"
95124
ComplexTemplate="{StaticResource ComplexExtensionNavigatorTemplate}"
125+
ComplexTemplateWithFontIcon="{StaticResource ComplexExtensionNavigatorTemplateWithFontIcon}"
96126
DefaultTemplate="{StaticResource DefaultExtensionNavigatorTemplate}" />
97127

98128
<DataTemplate x:Key="DefaultExtensionNavigatorTemplate"
@@ -146,6 +176,31 @@
146176
</Button>
147177
</DataTemplate>
148178

179+
<DataTemplate x:Key="ComplexExtensionNavigatorTemplateWithFontIcon"
180+
x:DataType="local:ExtensionPackageViewModel">
181+
<Button AutomationProperties.Name="{x:Bind AccessibleName}"
182+
Click="ExtensionNavigator_Click"
183+
Style="{StaticResource NavigatorButtonStyle}"
184+
Tag="{x:Bind}">
185+
<Grid>
186+
<Grid.ColumnDefinitions>
187+
<ColumnDefinition Width="*" />
188+
<ColumnDefinition Width="Auto" />
189+
</Grid.ColumnDefinitions>
190+
191+
<ContentPresenter Content="{x:Bind}"
192+
ContentTemplate="{StaticResource ComplexExtensionIdentifierTemplateWithFontIcon}" />
193+
194+
<ToggleSwitch Grid.Column="1"
195+
HorizontalAlignment="Right"
196+
VerticalAlignment="Center"
197+
AutomationProperties.Name="{x:Bind AccessibleName}"
198+
IsOn="{x:Bind Enabled, Mode=TwoWay}"
199+
Style="{StaticResource ToggleSwitchInExpanderStyle}" />
200+
</Grid>
201+
</Button>
202+
</DataTemplate>
203+
149204
<DataTemplate x:Key="FragmentProfileViewModelTemplate"
150205
x:DataType="local:FragmentProfileViewModel">
151206
<muxc:Expander AutomationProperties.Name="{x:Bind AccessibleName}"

src/cascadia/TerminalSettingsModel/SshHostGenerator.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
static constexpr std::wstring_view SshHostGeneratorNamespace{ L"Windows.Terminal.SSH" };
1313

1414
static constexpr std::wstring_view PROFILE_TITLE_PREFIX = L"SSH - ";
15-
static constexpr std::wstring_view PROFILE_ICON_PATH = L"ms-appx:///ProfileIcons/{550ce7b8-d500-50ad-8a1a-c400c3262db3}.png";
16-
static constexpr std::wstring_view GENERATOR_ICON_PATH = L"ms-appx:///ProfileGeneratorIcons/SSH.png";
15+
static constexpr std::wstring_view PROFILE_ICON_PATH = L"\uE977"; // PC1
16+
static constexpr std::wstring_view GENERATOR_ICON_PATH = L"\uE969"; // StorageNetworkWireless
1717

1818
// OpenSSH is installed under System32 when installed via Optional Features
1919
static constexpr std::wstring_view SSH_EXE_PATH1 = L"%SystemRoot%\\System32\\OpenSSH\\ssh.exe";

src/features.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,11 @@
100100
<description>Enables the dynamic profile generator for OpenSSH config files</description>
101101
<id>9031</id>
102102
<stage>AlwaysDisabled</stage>
103+
<alwaysEnabledBrandingTokens>
104+
<brandingToken>Dev</brandingToken>
105+
<brandingToken>Canary</brandingToken>
106+
<brandingToken>Preview</brandingToken>
107+
</alwaysEnabledBrandingTokens>
103108
</feature>
104109

105110
<feature>

0 commit comments

Comments
 (0)