new info badge

This commit is contained in:
Pankaj Bhojwani 2025-06-20 14:39:12 -07:00
parent 4311a2b51c
commit ac0eb51259
7 changed files with 25 additions and 0 deletions

View File

@ -23,6 +23,8 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
{
_ViewModel = e.Parameter().as<Editor::ActionsViewModel>();
_ViewModel.CurrentPage(ActionsSubPage::Base);
auto vmImpl = get_self<ActionsViewModel>(_ViewModel);
vmImpl->MarkAsVisited();
}
void Actions::AddNew_Click(const IInspectable& /*sender*/, const RoutedEventArgs& /*eventArgs*/)

View File

@ -193,6 +193,8 @@ inline const std::set<winrt::Microsoft::Terminal::Settings::Model::ShortcutActio
namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
{
static constexpr std::wstring_view ActionsPageId{ L"page.actions" };
CommandViewModel::CommandViewModel(Command cmd, std::vector<Control::KeyChord> keyChordList, const Editor::ActionsViewModel actionsPageVM) :
_command{ cmd },
_keyChordList{ keyChordList },
@ -1067,6 +1069,17 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
}
}
void ActionsViewModel::MarkAsVisited()
{
Model::ApplicationState::SharedInstance().DismissBadge(ActionsPageId);
_NotifyChanges(L"DisplayBadge");
}
bool ActionsViewModel::DisplayBadge() const noexcept
{
return !Model::ApplicationState::SharedInstance().BadgeDismissed(ActionsPageId);
}
void ActionsViewModel::_MakeCommandVMsHelper()
{
const auto& allCommands{ _Settings.ActionMap().AllCommands() };

View File

@ -256,6 +256,8 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
public:
ActionsViewModel(Model::CascadiaSettings settings);
void UpdateSettings(const Model::CascadiaSettings& settings);
void MarkAsVisited();
bool DisplayBadge() const noexcept;
void AddNewCommand();

View File

@ -144,6 +144,7 @@ namespace Microsoft.Terminal.Settings.Editor
ActionsSubPage CurrentPage;
CommandViewModel CurrentCommand;
Boolean DisplayBadge { get; };
void AttemptAddOrModifyKeyChord(KeyChordViewModel senderVM, String commandID, Microsoft.Terminal.Control.KeyChord newKeys, Microsoft.Terminal.Control.KeyChord oldKeys);
void AttemptDeleteKeyChord(Microsoft.Terminal.Control.KeyChord keys);

View File

@ -44,6 +44,7 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
Windows::Foundation::Collections::IObservableVector<IInspectable> Breadcrumbs() noexcept;
Editor::ExtensionsViewModel ExtensionsVM() const noexcept { return _extensionsVM; }
Editor::ActionsViewModel ActionsVM() const noexcept { return _actionsVM; }
til::typed_event<Windows::Foundation::IInspectable, Model::SettingsTarget> OpenJson;

View File

@ -2,6 +2,7 @@
// Licensed under the MIT license.
import "Extensions.idl";
import "ActionsViewModel.idl";
namespace Microsoft.Terminal.Settings.Editor
{
@ -47,6 +48,7 @@ namespace Microsoft.Terminal.Settings.Editor
Windows.Foundation.Collections.IObservableVector<IInspectable> Breadcrumbs { get; };
ExtensionsViewModel ExtensionsVM { get; };
ActionsViewModel ActionsVM { get; };
Windows.UI.Xaml.Media.Brush BackgroundBrush { get; };
}

View File

@ -147,6 +147,10 @@
<muxc:NavigationViewItem.Icon>
<FontIcon Glyph="&#xE765;" />
</muxc:NavigationViewItem.Icon>
<muxc:NavigationViewItem.InfoBadge>
<muxc:InfoBadge Style="{StaticResource NewInfoBadge}"
Visibility="{x:Bind ActionsVM.DisplayBadge, Mode=OneWay}" />
</muxc:NavigationViewItem.InfoBadge>
</muxc:NavigationViewItem>
<muxc:NavigationViewItem x:Uid="Nav_NewTabMenu"