Skip to content

Commit cf50777

Browse files
committed
PRE-MERGE microsoft#17215 Remove command's knowledge of its keys
2 parents d699a08 + 253dedf commit cf50777

17 files changed

+90
-231
lines changed

src/cascadia/TerminalApp/ActionPaletteItem.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ using namespace winrt::Microsoft::Terminal::Settings::Model;
1818

1919
namespace winrt::TerminalApp::implementation
2020
{
21-
ActionPaletteItem::ActionPaletteItem(const Microsoft::Terminal::Settings::Model::Command& command) :
21+
ActionPaletteItem::ActionPaletteItem(const Microsoft::Terminal::Settings::Model::Command& command, const winrt::hstring keyChordText) :
2222
_Command(command)
2323
{
2424
Name(command.Name());
25-
KeyChordText(command.KeyChordText());
25+
KeyChordText(keyChordText);
2626
Icon(command.IconPath());
2727
}
2828
}

src/cascadia/TerminalApp/ActionPaletteItem.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ namespace winrt::TerminalApp::implementation
1111
struct ActionPaletteItem : ActionPaletteItemT<ActionPaletteItem, PaletteItem>
1212
{
1313
ActionPaletteItem() = default;
14-
ActionPaletteItem(const Microsoft::Terminal::Settings::Model::Command& command);
14+
ActionPaletteItem(const Microsoft::Terminal::Settings::Model::Command& command, const winrt::hstring keyChordText);
1515

1616
WINRT_PROPERTY(Microsoft::Terminal::Settings::Model::Command, Command, nullptr);
1717

src/cascadia/TerminalApp/ActionPaletteItem.idl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace TerminalApp
77
{
88
[default_interface] runtimeclass ActionPaletteItem : PaletteItem
99
{
10-
ActionPaletteItem(Microsoft.Terminal.Settings.Model.Command command);
10+
ActionPaletteItem(Microsoft.Terminal.Settings.Model.Command command, String keyChordText);
1111

1212
Microsoft.Terminal.Settings.Model.Command Command { get; };
1313
}

src/cascadia/TerminalApp/CommandPalette.cpp

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -950,21 +950,27 @@ namespace winrt::TerminalApp::implementation
950950
void CommandPalette::SetActionMap(const Microsoft::Terminal::Settings::Model::IActionMapView& actionMap)
951951
{
952952
_actionMap = actionMap;
953+
_setCommands();
953954
}
954955

955-
void CommandPalette::SetCommands(const Collections::IVector<Command>& actions)
956+
void CommandPalette::_setCommands()
956957
{
957-
_allCommands.Clear();
958-
for (const auto& action : actions)
958+
if (_actionMap)
959959
{
960-
auto actionPaletteItem{ winrt::make<winrt::TerminalApp::implementation::ActionPaletteItem>(action) };
961-
auto filteredCommand{ winrt::make<FilteredCommand>(actionPaletteItem) };
962-
_allCommands.Append(filteredCommand);
963-
}
960+
_allCommands.Clear();
961+
const auto expandedCommands{ _actionMap.ExpandedCommands() };
962+
for (const auto& action : expandedCommands)
963+
{
964+
const auto keyChordText{ KeyChordSerialization::ToString(_actionMap.GetKeyBindingForAction(action.ID())) };
965+
auto actionPaletteItem{ winrt::make<winrt::TerminalApp::implementation::ActionPaletteItem>(action, keyChordText) };
966+
auto filteredCommand{ winrt::make<FilteredCommand>(actionPaletteItem) };
967+
_allCommands.Append(filteredCommand);
968+
}
964969

965-
if (Visibility() == Visibility::Visible && _currentMode == CommandPaletteMode::ActionMode)
966-
{
967-
_updateFilteredActions();
970+
if (Visibility() == Visibility::Visible && _currentMode == CommandPaletteMode::ActionMode)
971+
{
972+
_updateFilteredActions();
973+
}
968974
}
969975
}
970976

@@ -1178,7 +1184,8 @@ namespace winrt::TerminalApp::implementation
11781184
for (const auto& nameAndCommand : parentCommand.NestedCommands())
11791185
{
11801186
const auto action = nameAndCommand.Value();
1181-
auto nestedActionPaletteItem{ winrt::make<winrt::TerminalApp::implementation::ActionPaletteItem>(action) };
1187+
// nested commands cannot have keys bound to them, so just pass in the command and no keys
1188+
auto nestedActionPaletteItem{ winrt::make<winrt::TerminalApp::implementation::ActionPaletteItem>(action, L"") };
11821189
auto nestedFilteredCommand{ winrt::make<FilteredCommand>(nestedActionPaletteItem) };
11831190
_currentNestedCommands.Append(nestedFilteredCommand);
11841191
}

src/cascadia/TerminalApp/CommandPalette.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ namespace winrt::TerminalApp::implementation
3131

3232
Windows::Foundation::Collections::IObservableVector<winrt::TerminalApp::FilteredCommand> FilteredActions();
3333

34-
void SetCommands(const Windows::Foundation::Collections::IVector<Microsoft::Terminal::Settings::Model::Command>& actions);
3534
void SetTabs(const Windows::Foundation::Collections::IObservableVector<winrt::TerminalApp::TabBase>& tabs, const Windows::Foundation::Collections::IObservableVector<winrt::TerminalApp::TabBase>& mruTabs);
3635
void SetActionMap(const Microsoft::Terminal::Settings::Model::IActionMapView& actionMap);
3736

@@ -81,6 +80,8 @@ namespace winrt::TerminalApp::implementation
8180

8281
bool _lastFilterTextWasEmpty{ true };
8382

83+
void _setCommands();
84+
8485
void _filterTextChanged(const Windows::Foundation::IInspectable& sender,
8586
const Windows::UI::Xaml::RoutedEventArgs& args);
8687
void _previewKeyDownHandler(const Windows::Foundation::IInspectable& sender,

src/cascadia/TerminalApp/CommandPalette.idl

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@ namespace TerminalApp
2020

2121
Windows.Foundation.Collections.IObservableVector<FilteredCommand> FilteredActions { get; };
2222

23-
void SetCommands(Windows.Foundation.Collections.IVector<Microsoft.Terminal.Settings.Model.Command> actions);
24-
2523
void SetTabs(Windows.Foundation.Collections.IObservableVector<TabBase> tabs, Windows.Foundation.Collections.IObservableVector<TabBase> mruTabs);
2624

2725
void SetActionMap(Microsoft.Terminal.Settings.Model.IActionMapView actionMap);

src/cascadia/TerminalApp/SuggestionsControl.cpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -508,7 +508,7 @@ namespace winrt::TerminalApp::implementation
508508
automationPeer.RaiseNotificationEvent(
509509
Automation::Peers::AutomationNotificationKind::ItemAdded,
510510
Automation::Peers::AutomationNotificationProcessing::MostRecent,
511-
paletteItem.Name() + L" " + paletteItem.KeyChordText(),
511+
paletteItem.Name(),
512512
L"SuggestionsControlSelectedItemChanged" /* unique name for this notification category */);
513513
}
514514
}
@@ -751,17 +751,13 @@ namespace winrt::TerminalApp::implementation
751751
return _filteredActions;
752752
}
753753

754-
void SuggestionsControl::SetActionMap(const Microsoft::Terminal::Settings::Model::IActionMapView& actionMap)
755-
{
756-
_actionMap = actionMap;
757-
}
758-
759754
void SuggestionsControl::SetCommands(const Collections::IVector<Command>& actions)
760755
{
761756
_allCommands.Clear();
762757
for (const auto& action : actions)
763758
{
764-
auto actionPaletteItem{ winrt::make<winrt::TerminalApp::implementation::ActionPaletteItem>(action) };
759+
// key chords aren't relevant in the suggestions control, so make the palette item with just the command and no keys
760+
auto actionPaletteItem{ winrt::make<winrt::TerminalApp::implementation::ActionPaletteItem>(action, L"") };
765761
auto filteredCommand{ winrt::make<FilteredCommand>(actionPaletteItem) };
766762
_allCommands.Append(filteredCommand);
767763
}
@@ -915,7 +911,7 @@ namespace winrt::TerminalApp::implementation
915911
for (const auto& nameAndCommand : parentCommand.NestedCommands())
916912
{
917913
const auto action = nameAndCommand.Value();
918-
auto nestedActionPaletteItem{ winrt::make<winrt::TerminalApp::implementation::ActionPaletteItem>(action) };
914+
auto nestedActionPaletteItem{ winrt::make<winrt::TerminalApp::implementation::ActionPaletteItem>(action, L"") };
919915
auto nestedFilteredCommand{ winrt::make<FilteredCommand>(nestedActionPaletteItem) };
920916
_currentNestedCommands.Append(nestedFilteredCommand);
921917
}

src/cascadia/TerminalApp/SuggestionsControl.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ namespace winrt::TerminalApp::implementation
2424
Windows::Foundation::Collections::IObservableVector<winrt::TerminalApp::FilteredCommand> FilteredActions();
2525

2626
void SetCommands(const Windows::Foundation::Collections::IVector<Microsoft::Terminal::Settings::Model::Command>& actions);
27-
void SetActionMap(const Microsoft::Terminal::Settings::Model::IActionMapView& actionMap);
2827

2928
bool OnDirectKeyEvent(const uint32_t vkey, const uint8_t scanCode, const bool down);
3029

src/cascadia/TerminalApp/SuggestionsControl.idl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ namespace TerminalApp
3636
SuggestionsMode Mode { get; set; };
3737

3838
void SetCommands(Windows.Foundation.Collections.IVector<Microsoft.Terminal.Settings.Model.Command> actions);
39-
void SetActionMap(Microsoft.Terminal.Settings.Model.IActionMapView actionMap);
4039
void SelectNextItem(Boolean moveDown);
4140

4241
void Open(SuggestionsMode mode, IVector<Microsoft.Terminal.Settings.Model.Command> commands, String filterText, Windows.Foundation.Point anchor, Windows.Foundation.Size space, Single characterHeight);

src/cascadia/TerminalApp/SuggestionsControl.xaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
MinHeight="0"
3232
Padding="16,0,12,0"
3333
HorizontalContentAlignment="Stretch"
34-
AutomationProperties.AcceleratorKey="{x:Bind Item.KeyChordText, Mode=OneWay}"
3534
AutomationProperties.Name="{x:Bind Item.Name, Mode=OneWay}"
3635
FontSize="12" />
3736
</DataTemplate>

0 commit comments

Comments
 (0)