diff --git a/src/cascadia/TerminalSettingsModel/ActionArgs.h b/src/cascadia/TerminalSettingsModel/ActionArgs.h index 786cb2b5f9..b6b75bd2df 100644 --- a/src/cascadia/TerminalSettingsModel/ActionArgs.h +++ b/src/cascadia/TerminalSettingsModel/ActionArgs.h @@ -592,7 +592,7 @@ namespace winrt::Microsoft::Terminal::Settings::Model::implementation NewTabArgs() = default; NewTabArgs(const Model::INewContentArgs& terminalArgs) : _ContentArgs{ terminalArgs } {}; - WINRT_PROPERTY(Model::INewContentArgs, ContentArgs, Model::NewTerminalArgs{}); + WINRT_PROPERTY(Model::INewContentArgs, ContentArgs, nullptr); public: hstring GenerateName() const { return GenerateName(GetLibraryResourceLoader().ResourceContext()); } @@ -689,7 +689,7 @@ namespace winrt::Microsoft::Terminal::Settings::Model::implementation _SplitMode{ splitMode } {}; SPLIT_PANE_ARGS(DECLARE_ARGS); - WINRT_PROPERTY(Model::INewContentArgs, ContentArgs, Model::NewTerminalArgs{}); + WINRT_PROPERTY(Model::INewContentArgs, ContentArgs, nullptr); public: hstring GenerateName() const { return GenerateName(GetLibraryResourceLoader().ResourceContext()); } @@ -821,7 +821,7 @@ namespace winrt::Microsoft::Terminal::Settings::Model::implementation NewWindowArgs() = default; NewWindowArgs(const Model::INewContentArgs& terminalArgs) : _ContentArgs{ terminalArgs } {}; - WINRT_PROPERTY(Model::INewContentArgs, ContentArgs, Model::NewTerminalArgs{}); + WINRT_PROPERTY(Model::INewContentArgs, ContentArgs, nullptr); public: hstring GenerateName() const { return GenerateName(GetLibraryResourceLoader().ResourceContext()); } diff --git a/src/cascadia/TerminalSettingsModel/ActionMap.cpp b/src/cascadia/TerminalSettingsModel/ActionMap.cpp index deae365c90..097d2135c4 100644 --- a/src/cascadia/TerminalSettingsModel/ActionMap.cpp +++ b/src/cascadia/TerminalSettingsModel/ActionMap.cpp @@ -187,16 +187,97 @@ namespace winrt::Microsoft::Terminal::Settings::Model::implementation Model::IActionArgs ActionArgFactory::GetEmptyArgsForAction(Model::ShortcutAction shortcutAction) { + // TODO: GH 19056 - we cannot cleanly macro this because of some special cases (SplitPaneArgs, NewTabArgs, NewWindowArgs) + // where we initialize a NewTerminalArgs object to pass in to them because the settings UI cannot currently handle + // a ContentArgs object that is not a NewTerminalArgs switch (shortcutAction) { -#define ON_ALL_ACTIONS_WITH_ARGS(name) \ - case Model::ShortcutAction::name: \ - return winrt::make(); - - ALL_SHORTCUT_ACTIONS_WITH_ARGS - -#undef ON_ALL_ACTIONS_WITH_ARGS - + case Model::ShortcutAction::AdjustFontSize: + return winrt::make(); + case Model::ShortcutAction::CloseOtherTabs: + return winrt::make(); + case Model::ShortcutAction::CloseTabsAfter: + return winrt::make(); + case Model::ShortcutAction::CloseTab: + return winrt::make(); + case Model::ShortcutAction::CopyText: + return winrt::make(); + case Model::ShortcutAction::ExecuteCommandline: + return winrt::make(); + case Model::ShortcutAction::FindMatch: + return winrt::make(); + case Model::ShortcutAction::SearchForText: + return winrt::make(); + case Model::ShortcutAction::GlobalSummon: + return winrt::make(); + case Model::ShortcutAction::MoveFocus: + return winrt::make(); + case Model::ShortcutAction::MovePane: + return winrt::make(); + case Model::ShortcutAction::SwapPane: + return winrt::make(); + case Model::ShortcutAction::MoveTab: + return winrt::make(); + case Model::ShortcutAction::NewTab: + return winrt::make(Model::NewTerminalArgs{}); + case Model::ShortcutAction::NewWindow: + return winrt::make(Model::NewTerminalArgs{}); + case Model::ShortcutAction::NextTab: + return winrt::make(); + case Model::ShortcutAction::OpenSettings: + return winrt::make(); + case Model::ShortcutAction::SetFocusMode: + return winrt::make(); + case Model::ShortcutAction::SetFullScreen: + return winrt::make(); + case Model::ShortcutAction::SetMaximized: + return winrt::make(); + case Model::ShortcutAction::PrevTab: + return winrt::make(); + case Model::ShortcutAction::RenameTab: + return winrt::make(); + case Model::ShortcutAction::RenameWindow: + return winrt::make(); + case Model::ShortcutAction::ResizePane: + return winrt::make(); + case Model::ShortcutAction::ScrollDown: + return winrt::make(); + case Model::ShortcutAction::ScrollUp: + return winrt::make(); + case Model::ShortcutAction::ScrollToMark: + return winrt::make(); + case Model::ShortcutAction::AddMark: + return winrt::make(); + case Model::ShortcutAction::SendInput: + return winrt::make(); + case Model::ShortcutAction::SetColorScheme: + return winrt::make(); + case Model::ShortcutAction::SetTabColor: + return winrt::make(); + case Model::ShortcutAction::SplitPane: + return winrt::make(SplitDirection::Automatic, Model::NewTerminalArgs{}); + case Model::ShortcutAction::SwitchToTab: + return winrt::make(); + case Model::ShortcutAction::ToggleCommandPalette: + return winrt::make(); + case Model::ShortcutAction::FocusPane: + return winrt::make(); + case Model::ShortcutAction::ExportBuffer: + return winrt::make(); + case Model::ShortcutAction::ClearBuffer: + return winrt::make(); + case Model::ShortcutAction::MultipleActions: + return winrt::make(); + case Model::ShortcutAction::AdjustOpacity: + return winrt::make(); + case Model::ShortcutAction::Suggestions: + return winrt::make(); + case Model::ShortcutAction::SelectCommand: + return winrt::make(); + case Model::ShortcutAction::SelectOutput: + return winrt::make(); + case Model::ShortcutAction::ColorSelection: + return winrt::make(); default: return nullptr; }