Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
019bb76
Add Extensions page to Settings UI
carlos-zamora Nov 13, 2024
7f0c9e5
rename some resources; remove some TODOs
carlos-zamora Feb 11, 2025
f11515e
add nested page
carlos-zamora Feb 14, 2025
75d02c2
add nested page (part 2) + support for multiple json files
carlos-zamora Feb 19, 2025
e6c43c0
copy over DisabledProfileSources
carlos-zamora Feb 19, 2025
6b83fa7
wil::to_vector
carlos-zamora Feb 25, 2025
5afc9bc
add dynamic profile generators
carlos-zamora Feb 25, 2025
7cdbb7c
address feedback
carlos-zamora Feb 27, 2025
b0a7ef1
apply feedback from Dustin
carlos-zamora Apr 21, 2025
0af4eb0
Fix XAML crash for release builds (applied incompatible styling)
carlos-zamora Apr 21, 2025
2766f21
JsonSource->Filename; remove deep copy of fragments & generators
carlos-zamora Apr 22, 2025
7fcdeaa
Add display name and icon to SUI extensions page
carlos-zamora Feb 26, 2025
b472d9f
add DisplayName and Icon to profile generators; improve identifier sy…
carlos-zamora Feb 27, 2025
1072d69
a11y check: screen reader, keyboard navigation, FastPass ✅
carlos-zamora Feb 27, 2025
c371c48
use high resolution assets
carlos-zamora Apr 16, 2025
e9f83fc
Explicitly introduce and use profile generator icons; add VS logo
carlos-zamora Apr 16, 2025
f25e6fe
[fix rebase] remove deep clone of ext pkgs
carlos-zamora Apr 22, 2025
92bccdf
Enable SSH Generator Feature Flag
carlos-zamora Apr 18, 2025
057128e
Lazy load extension objects for SUI
carlos-zamora Apr 24, 2025
debacee
Add Badge to highlight new Extensions Page
carlos-zamora Apr 17, 2025
fc0eb78
simplify AppState code; display 'NEW'
carlos-zamora Apr 22, 2025
34c6115
Merge branch 'main' into dev/cazamor/sui/extensions-page
carlos-zamora Apr 28, 2025
3353323
apply feedback from bug bash
carlos-zamora May 2, 2025
2d077ca
Linguistic sorting!
carlos-zamora May 5, 2025
831313c
fix propagating CascadiaSettings reference & Enabled notification
carlos-zamora May 5, 2025
5ae13b3
Add toggle switches to root of Extensions page
carlos-zamora May 6, 2025
27e1aee
Merge branch 'main' into dev/cazamor/sui/extensions-page
carlos-zamora May 6, 2025
a282164
spell
carlos-zamora May 6, 2025
81ffd97
Merge branch 'main' into dev/cazamor/sui/extensions-page
carlos-zamora May 23, 2025
ca32d58
apply suggestions from Dustin
carlos-zamora May 23, 2025
a5a7aea
fix comment
carlos-zamora May 28, 2025
1cd660f
Merge branch 'main' into dev/cazamor/sui/extensions-page
carlos-zamora May 28, 2025
7f95753
Merge branch 'dev/cazamor/sui/extensions-page' into dev/cazamor/ext-p…
carlos-zamora May 28, 2025
2b4dee2
Merge branch 'main' into dev/cazamor/ext-page/enable-ssh
carlos-zamora May 28, 2025
c9ab23d
update generator icon with font icon (and add support to display it)
carlos-zamora May 30, 2025
93b28fd
update icons to StorageNetworkWireless and PC1
carlos-zamora May 30, 2025
8e1ccde
remove unnecessary profile icon images
carlos-zamora May 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
Binary file not shown.
6 changes: 6 additions & 0 deletions src/cascadia/TerminalSettingsEditor/Extensions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -500,6 +500,12 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
{
if (!extPkgVM.Package().DisplayName().empty())
{
// Check if the first char of the icon is in the Segoe MDL2 Icons list
const auto ch = til::at(extPkgVM.Package().Icon(), 0);
if (ch >= L'\uE700' && ch <= L'\uF8FF')
{
return ComplexTemplateWithFontIcon();
}
return ComplexTemplate();
}
return DefaultTemplate();
Expand Down
1 change: 1 addition & 0 deletions src/cascadia/TerminalSettingsEditor/Extensions.h
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation

WINRT_PROPERTY(Windows::UI::Xaml::DataTemplate, DefaultTemplate, nullptr);
WINRT_PROPERTY(Windows::UI::Xaml::DataTemplate, ComplexTemplate, nullptr);
WINRT_PROPERTY(Windows::UI::Xaml::DataTemplate, ComplexTemplateWithFontIcon, nullptr);
};
};

Expand Down
1 change: 1 addition & 0 deletions src/cascadia/TerminalSettingsEditor/Extensions.idl
Original file line number Diff line number Diff line change
Expand Up @@ -77,5 +77,6 @@ namespace Microsoft.Terminal.Settings.Editor

Windows.UI.Xaml.DataTemplate DefaultTemplate;
Windows.UI.Xaml.DataTemplate ComplexTemplate;
Windows.UI.Xaml.DataTemplate ComplexTemplateWithFontIcon;
}
}
55 changes: 55 additions & 0 deletions src/cascadia/TerminalSettingsEditor/Extensions.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@

<local:ExtensionPackageTemplateSelector x:Key="ExtensionPackageIdentifierTemplateSelector"
ComplexTemplate="{StaticResource ComplexExtensionIdentifierTemplate}"
ComplexTemplateWithFontIcon="{StaticResource ComplexExtensionIdentifierTemplateWithFontIcon}"
DefaultTemplate="{StaticResource DefaultExtensionIdentifierTemplate}" />

<DataTemplate x:Key="DefaultExtensionIdentifierTemplate"
Expand Down Expand Up @@ -91,8 +92,37 @@
</Grid>
</DataTemplate>

<DataTemplate x:Key="ComplexExtensionIdentifierTemplateWithFontIcon"
x:DataType="local:ExtensionPackageViewModel">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>

<FontIcon Grid.Row="0"
Grid.RowSpan="2"
Grid.Column="0"
Margin="0,0,8,0"
FontSize="32"
Glyph="{x:Bind Package.Icon}" />
<TextBlock Grid.Row="0"
Grid.Column="1"
Text="{x:Bind Package.DisplayName}" />
<TextBlock Grid.Row="1"
Grid.Column="1"
Style="{StaticResource SettingsPageItemDescriptionStyle}"
Text="{x:Bind Package.Source}" />
</Grid>
</DataTemplate>

<local:ExtensionPackageTemplateSelector x:Key="ExtensionPackageNavigatorTemplateSelector"
ComplexTemplate="{StaticResource ComplexExtensionNavigatorTemplate}"
ComplexTemplateWithFontIcon="{StaticResource ComplexExtensionNavigatorTemplateWithFontIcon}"
DefaultTemplate="{StaticResource DefaultExtensionNavigatorTemplate}" />

<DataTemplate x:Key="DefaultExtensionNavigatorTemplate"
Expand Down Expand Up @@ -146,6 +176,31 @@
</Button>
</DataTemplate>

<DataTemplate x:Key="ComplexExtensionNavigatorTemplateWithFontIcon"
x:DataType="local:ExtensionPackageViewModel">
<Button AutomationProperties.Name="{x:Bind AccessibleName}"
Click="ExtensionNavigator_Click"
Style="{StaticResource NavigatorButtonStyle}"
Tag="{x:Bind}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>

<ContentPresenter Content="{x:Bind}"
ContentTemplate="{StaticResource ComplexExtensionIdentifierTemplateWithFontIcon}" />

<ToggleSwitch Grid.Column="1"
HorizontalAlignment="Right"
VerticalAlignment="Center"
AutomationProperties.Name="{x:Bind AccessibleName}"
IsOn="{x:Bind Enabled, Mode=TwoWay}"
Style="{StaticResource ToggleSwitchInExpanderStyle}" />
</Grid>
</Button>
</DataTemplate>

<DataTemplate x:Key="FragmentProfileViewModelTemplate"
x:DataType="local:FragmentProfileViewModel">
<muxc:Expander AutomationProperties.Name="{x:Bind AccessibleName}"
Expand Down
4 changes: 2 additions & 2 deletions src/cascadia/TerminalSettingsModel/SshHostGenerator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
static constexpr std::wstring_view SshHostGeneratorNamespace{ L"Windows.Terminal.SSH" };

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

// OpenSSH is installed under System32 when installed via Optional Features
static constexpr std::wstring_view SSH_EXE_PATH1 = L"%SystemRoot%\\System32\\OpenSSH\\ssh.exe";
Expand Down
5 changes: 5 additions & 0 deletions src/features.xml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,11 @@
<description>Enables the dynamic profile generator for OpenSSH config files</description>
<id>9031</id>
<stage>AlwaysDisabled</stage>
<alwaysEnabledBrandingTokens>
<brandingToken>Dev</brandingToken>
<brandingToken>Canary</brandingToken>
<brandingToken>Preview</brandingToken>
</alwaysEnabledBrandingTokens>
Comment on lines 102 to +107
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like this should be AlwaysEnabled then?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nope! The SSH code is hidden behind a feature flag on Stable builds so I'm making sure we still don't expose it yet. I want to make sure the experience feels right with the Extensions page. Once the Extensions page goes to Stable, we can just remove the feature flag altogether.

WindowsInbox is also one that's omitted. Same deal there.

</feature>

<feature>
Expand Down
Loading