From 39059c4264a55f5bcabf51314b1b2b81d733d696 Mon Sep 17 00:00:00 2001 From: Carlos Zamora Date: Thu, 10 Oct 2024 16:05:26 -0700 Subject: [PATCH] Fix icon preview when targetting exe --- .../TerminalSettingsEditor/ProfileViewModel.cpp | 11 ++++++++++- .../TerminalSettingsEditor/ProfileViewModel.h | 1 + .../TerminalSettingsEditor/ProfileViewModel.idl | 1 + .../TerminalSettingsEditor/Profiles_Base.xaml | 8 ++++---- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/cascadia/TerminalSettingsEditor/ProfileViewModel.cpp b/src/cascadia/TerminalSettingsEditor/ProfileViewModel.cpp index 2b11e705a62..3eca0e23c20 100644 --- a/src/cascadia/TerminalSettingsEditor/ProfileViewModel.cpp +++ b/src/cascadia/TerminalSettingsEditor/ProfileViewModel.cpp @@ -85,7 +85,7 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation else if (viewModelProperty == L"Icon") { _DeduceCurrentIconType(); - _NotifyChanges(L"LocalizedIcon"); + _NotifyChanges(L"LocalizedIcon", L"EvaluatedIcon", L"IconPreview"); } else if (viewModelProperty == L"CurrentIconType") { @@ -418,6 +418,15 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation return Icon(); } + Windows::UI::Xaml::Controls::IconElement ProfileViewModel::IconPreview() const + { + // IconWUX sets the icon width/height to 32 by default + auto icon = Microsoft::Terminal::UI::IconPathConverter::IconWUX(EvaluatedIcon()); + icon.Width(16); + icon.Height(16); + return icon; + } + void ProfileViewModel::CurrentIconType(const Windows::Foundation::IInspectable& value) { if (_currentIconType != value) diff --git a/src/cascadia/TerminalSettingsEditor/ProfileViewModel.h b/src/cascadia/TerminalSettingsEditor/ProfileViewModel.h index 7dda7d2c1b8..59efd5580d4 100644 --- a/src/cascadia/TerminalSettingsEditor/ProfileViewModel.h +++ b/src/cascadia/TerminalSettingsEditor/ProfileViewModel.h @@ -65,6 +65,7 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation { return _currentIconType; } + Windows::UI::Xaml::Controls::IconElement IconPreview() const; winrt::hstring LocalizedIcon() const; void CurrentIconType(const Windows::Foundation::IInspectable& value); bool UsingNoIcon() const; diff --git a/src/cascadia/TerminalSettingsEditor/ProfileViewModel.idl b/src/cascadia/TerminalSettingsEditor/ProfileViewModel.idl index ed2ed35af6d..b1145c2d170 100644 --- a/src/cascadia/TerminalSettingsEditor/ProfileViewModel.idl +++ b/src/cascadia/TerminalSettingsEditor/ProfileViewModel.idl @@ -82,6 +82,7 @@ namespace Microsoft.Terminal.Settings.Editor Boolean AutoMarkPromptsAvailable { get; }; Boolean RepositionCursorWithMouseAvailable { get; }; + Windows.UI.Xaml.Controls.IconElement IconPreview { get; }; String EvaluatedIcon { get; }; String LocalizedIcon { get; }; String CurrentEmojiIcon; diff --git a/src/cascadia/TerminalSettingsEditor/Profiles_Base.xaml b/src/cascadia/TerminalSettingsEditor/Profiles_Base.xaml index 76c8dbc4ffd..3adcb20bde5 100644 --- a/src/cascadia/TerminalSettingsEditor/Profiles_Base.xaml +++ b/src/cascadia/TerminalSettingsEditor/Profiles_Base.xaml @@ -109,10 +109,10 @@ - +