terminal/src/cascadia/TerminalSettingsModel
Schuyler Rosefield 8d81497eb7
Add action to run multiple actions. (#11045)
<!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? -->
## Summary of the Pull Request
Add a new action that can contain multiple other actions.

<!-- Other than the issue solved, is this relevant to any other issues/existing PRs? --> 
## References

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
* [x] Closes #3992
* [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
* [ ] Tests added/passed
* [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
* [x] Schema updated.
* [ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx

<!-- Provide a more detailed description of the PR, other things fixed or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments
Creates a shortcut action that allows a list of actions to be specified as arguments. Steals a bunch of the serialization code from my other pr. Overall, because I had the serialization code written already, this was remarkably easy.

I can't think of any combined action to be added to the defaults, so I think this is just a thing for the documentation unless someone else has a good example. I know there are lot of times when the recommended workaround is "make an action with commandline wt.exe ..." and this could be a good replacement for that, but that is all personalized.

I didn't add this to the command line parsing, since the command line is already a way to run multiple actions.

<!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
Created a new command, confirmed that "Move right->down" showed up in the command palette, and that running it did the correct behavior (moving right one pane, then down one pane).
```
      {
        "command": {
          "action": "multipleActions",
          "name": "Move right->down",
          "actions": [
            {"action":  "moveFocus", "direction": "right" },
            {"action":  "moveFocus", "direction": "down" },
          ]
        }
      }
```
2021-08-31 19:35:51 +00:00
..
dll Revert "Upgrade to Microsoft.UI.Xaml 2.6.2 (or equivalent) (#10996)" (#11031) 2021-08-24 17:46:12 -05:00
Resources/en-US Add first pane movement for MoveFocus/SwapPane. (#11044) 2021-08-26 17:58:56 +00:00
ActionAndArgs.cpp Add action to run multiple actions. (#11045) 2021-08-31 19:35:51 +00:00
ActionAndArgs.h Add action to run multiple actions. (#11045) 2021-08-31 19:35:51 +00:00
ActionArgs.cpp Add action to run multiple actions. (#11045) 2021-08-31 19:35:51 +00:00
ActionArgs.h Add action to run multiple actions. (#11045) 2021-08-31 19:35:51 +00:00
ActionArgs.idl Add action to run multiple actions. (#11045) 2021-08-31 19:35:51 +00:00
ActionMap.cpp Make ActionMap compatible with ScanCode-only KeyChords (#10945) 2021-08-20 00:21:33 +00:00
ActionMap.h Make ActionMap compatible with ScanCode-only KeyChords (#10945) 2021-08-20 00:21:33 +00:00
ActionMap.idl Adding/fixing Alt+Space handling (#10799) 2021-08-10 19:53:07 +00:00
ActionMapSerialization.cpp Use WinRT VirtualKeyModifiers instead of a custom enum (#10603) 2021-07-12 21:24:26 +00:00
AllShortcutActions.h Add action to run multiple actions. (#11045) 2021-08-31 19:35:51 +00:00
AppearanceConfig.cpp Add an ENUM setting for disabling rendering "intense" text as bold (#10759) 2021-08-16 13:45:56 +00:00
AppearanceConfig.h Render "intense" text as bright by default (#10958) 2021-08-16 19:59:37 +00:00
AppearanceConfig.idl Add support for a profile to specify an "unfocused" appearance (#8392) 2021-04-08 22:46:16 +00:00
ApplicationState.cpp Add action to run multiple actions. (#11045) 2021-08-31 19:35:51 +00:00
ApplicationState.h Teach CommandPalette to persist recent command lines (#11030) 2021-08-26 19:04:35 +00:00
ApplicationState.idl Teach CommandPalette to persist recent command lines (#11030) 2021-08-26 19:04:35 +00:00
AzureCloudShellGenerator.cpp Add support for a profile to specify an "unfocused" appearance (#8392) 2021-04-08 22:46:16 +00:00
AzureCloudShellGenerator.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
CascadiaSettings.cpp Use the "base" profile for incoming handoff and new commands (#11022) 2021-08-25 22:41:42 +00:00
CascadiaSettings.h Allow generated profiles to be deleted (#11007) 2021-08-23 22:00:08 +00:00
CascadiaSettings.idl Rely more on profile objects and less on GUIDs (#10982) 2021-08-23 12:11:53 -05:00
CascadiaSettingsSerialization.cpp Allow generated profiles to be deleted (#11007) 2021-08-23 22:00:08 +00:00
ColorScheme.cpp Introduce MS.Term.Core.Color to replace W.U.Color for Core/Control/TSM (#9658) 2021-03-30 20:15:49 +00:00
ColorScheme.h Introduce MS.Term.Core.Color to replace W.U.Color for Core/Control/TSM (#9658) 2021-03-30 20:15:49 +00:00
ColorScheme.idl Introduce MS.Term.Core.Color to replace W.U.Color for Core/Control/TSM (#9658) 2021-03-30 20:15:49 +00:00
Command.cpp Bugfix: serialize iterable commands (#10373) 2021-06-10 18:25:27 +00:00
Command.h Introduce serialization for actions (#9926) 2021-05-20 18:44:04 +00:00
Command.idl Introduce ActionMap to Terminal Settings Model (#9621) 2021-05-04 21:50:13 -07:00
DefaultProfileUtils.cpp Introduce setting override tracking and update SettingContainer (#9079) 2021-02-19 23:50:52 +00:00
DefaultProfileUtils.h Make Global and Profile settings inheritable (#7923) 2020-10-27 17:35:09 +00:00
defaults-universal.json Introduce vk() and sc() key chord specifiers (#10666) 2021-07-20 22:34:51 +00:00
defaults.json Add first pane movement for MoveFocus/SwapPane. (#11044) 2021-08-26 17:58:56 +00:00
DefaultTerminal.cpp Prevent crashes in Settings UI launch on OS versions before package management extensions (#10238) 2021-05-27 17:53:00 +00:00
DefaultTerminal.h Prevent crashes in Settings UI launch on OS versions before package management extensions (#10238) 2021-05-27 17:53:00 +00:00
DefaultTerminal.idl Implement UI for choosing default terminal inside Settings page (#9907) 2021-04-28 10:43:30 +00:00
EnumMappings.cpp Add an ENUM setting for disabling rendering "intense" text as bold (#10759) 2021-08-16 13:45:56 +00:00
EnumMappings.h Add an ENUM setting for disabling rendering "intense" text as bold (#10759) 2021-08-16 13:45:56 +00:00
EnumMappings.idl Add an ENUM setting for disabling rendering "intense" text as bold (#10759) 2021-08-16 13:45:56 +00:00
FileUtils.cpp Fix WriteUTF8FileAtomic to preserve symlinks (#10908) 2021-08-12 16:47:16 +00:00
FileUtils.h Introduce a basic ApplicationState class (#10513) 2021-06-30 02:25:44 +02:00
FontConfig.cpp Allow users to set font features and font axes (#10525) 2021-07-22 23:15:44 +00:00
FontConfig.h Allow users to set font features and font axes (#10525) 2021-07-22 23:15:44 +00:00
FontConfig.idl Allow users to set font features and font axes (#10525) 2021-07-22 23:15:44 +00:00
GlobalAppSettings.cpp Add titlebar acrylic (#10864) 2021-08-23 16:40:25 +00:00
GlobalAppSettings.h Add titlebar acrylic (#10864) 2021-08-23 16:40:25 +00:00
GlobalAppSettings.idl Add titlebar acrylic (#10864) 2021-08-23 16:40:25 +00:00
HashUtils.h Introduce ActionMap to Terminal Settings Model (#9621) 2021-05-04 21:50:13 -07:00
IAppearanceConfig.idl Add an ENUM setting for disabling rendering "intense" text as bold (#10759) 2021-08-16 13:45:56 +00:00
IconPathConverter.cpp Revert "Add the profile, page icons to the page headers (#10046)" (#10124) 2021-05-18 17:35:50 -05:00
IconPathConverter.h Move IconSourceConverter from TerminalApp to TSM 2020-12-11 13:17:22 -08:00
IconPathConverter.idl Move IconSourceConverter from TerminalApp to TSM 2020-12-11 13:17:22 -08:00
IDynamicProfileGenerator.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
IInheritable.h Move TerminalSettings from TermApp to TerminalSettingsModel (#9318) 2021-03-15 23:15:25 +00:00
IInheritable.idl.h Introduce setting override tracking and update SettingContainer (#9079) 2021-02-19 23:50:52 +00:00
init.cpp Hook up the WIL fallback error tracer in Terminal (#7864) 2020-10-09 22:20:12 +00:00
JsonUtils.h Add action to run multiple actions. (#11045) 2021-08-31 19:35:51 +00:00
KeyChordSerialization.cpp Fix: Multimedia Key Hotkey Support (#10801) 2021-07-27 17:11:51 +00:00
KeyChordSerialization.h Introduce ActionMap to Terminal Settings Model (#9621) 2021-05-04 21:50:13 -07:00
KeyChordSerialization.idl Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
LegacyProfileGeneratorNamespaces.h From orbit, nuke the Telnet connection and all supporting infra. (#7840) 2020-10-09 18:59:58 +00:00
Microsoft.Terminal.Settings.ModelLib.vcxproj Revert "Upgrade to Microsoft.UI.Xaml 2.6.2 (or equivalent) (#10996)" (#11031) 2021-08-24 17:46:12 -05:00
Microsoft.Terminal.Settings.ModelLib.vcxproj.filters Enable /Zc:preprocessor (#10593) 2021-07-13 23:00:11 +00:00
packages.config Update C++/WinRT to 2.0.210309.3 (#9437) 2021-03-10 16:04:59 -06:00
pch.cpp Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
pch.h Fix crash when unpackaged due to PrimaryLanguageOverride (#10434) 2021-06-16 21:08:14 +00:00
PowershellCoreProfileGenerator.cpp Add support for a profile to specify an "unfocused" appearance (#8392) 2021-04-08 22:46:16 +00:00
PowershellCoreProfileGenerator.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
Profile.cpp Allow generated profiles to be deleted (#11007) 2021-08-23 22:00:08 +00:00
Profile.h Allow generated profiles to be deleted (#11007) 2021-08-23 22:00:08 +00:00
Profile.idl Allow generated profiles to be deleted (#11007) 2021-08-23 22:00:08 +00:00
SettingsTypes.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
TerminalSettings.cpp Move commandline->title promotion into TerminalSettings (#11029) 2021-08-24 23:31:27 +00:00
TerminalSettings.h Rely more on profile objects and less on GUIDs (#10982) 2021-08-23 12:11:53 -05:00
TerminalSettings.idl Rely more on profile objects and less on GUIDs (#10982) 2021-08-23 12:11:53 -05:00
TerminalSettingsSerializationHelpers.h Add first pane movement for MoveFocus/SwapPane. (#11044) 2021-08-26 17:58:56 +00:00
TerminalWarnings.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
TerminalWarnings.idl Invalidate nested command with no valid subcommands (#9495) 2021-03-15 16:34:06 +00:00
userDefaults.json Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
WslDistroGenerator.cpp Lookup WSL distros in the registry (#10967) 2021-08-24 13:10:36 +00:00
WslDistroGenerator.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00