terminal/src/cascadia
Carlos Zamora eb0fb3e822
Introduce setting override tracking and update SettingContainer (#9079)
This PR adds improved override message generation for inheritance in
SUI. The settings model now has an `OriginTag` to be able to denote
where a `Profile` came from. This tag is used in the `SettingContainer`
to generate a more specific override message.

## References
#6800 - SUI Epic
#8919 - SUI Inheritance PR
#8804 - SUI Inheritance (old issue)

## Detailed Description of the Pull Request / Additional comments
- **Terminal Settings Model**
  - Introduced `PROJECTED_SETTING` as a macro to more easily declare the
    functions for each setting
  - Introduced `<setting>OverrideSource` which finds the `Profile` that
    has \<setting\> defined
  - Introduced `OriginTag Profile::Origin {Custom, InBox, Generated}` to
    trace where a profile came from
  - `DefaultProfileUtils` creates profiles for profile generators. So
    that now sets the `Origin` tag to `Generated`
  - `CascadiaSettings::LoadDefaults()` tags all profiles created as
    `InBox`.
  - The view model had to ingest the API change to be able to interact
    with `<setting>OverrideSource`
- **Override Message Generation**
  - The reset button now has a more specific tooltip
  - The reset button now only appears if base layer is being overridden
  - We use the settings model changes to determine the message to
    display for the target

## Validation Steps Performed
Tested the following cases:
- overrides nothing (inherited setting)
- overrides value inherited from...
  - base layer
  - a profile generator
  - in-box profile
- global settings should not have this feature
2021-02-19 23:50:52 +00:00
..
CascadiaPackage Add support for "fragment extensions" (#7632) 2021-02-19 02:12:16 +00:00
inc Add support for the windowingBehavior setting (#9118) 2021-02-19 21:09:17 +00:00
LocalTests_SettingsModel A bunch of test fixes (#9192) 2021-02-18 20:47:14 +00:00
LocalTests_TerminalApp Fix FilteredCommand tests to run on UI thread (#9209) 2021-02-19 18:22:09 +00:00
PublicTerminalCore Exclude more rarely-used stuff from Windows headers (#8513) 2020-12-11 19:35:23 +00:00
Remoting Add support for the windowingBehavior setting (#9118) 2021-02-19 21:09:17 +00:00
ShellExtension Fix crash in explorer background context menu logic (#8977) 2021-02-01 17:30:54 +00:00
TerminalApp Introduce setting override tracking and update SettingContainer (#9079) 2021-02-19 23:50:52 +00:00
TerminalAzBridge Exclude more rarely-used stuff from Windows headers (#8513) 2020-12-11 19:35:23 +00:00
TerminalConnection make "open terminal here" context menu work for directory background (#8638) 2021-01-06 19:59:30 +00:00
TerminalControl Add findNext, findPrev actions (#8917) 2021-02-18 19:21:35 +00:00
TerminalCore Add support for double-width/double-height lines in conhost (#8664) 2021-02-18 05:44:50 +00:00
TerminalSettingsEditor Introduce setting override tracking and update SettingContainer (#9079) 2021-02-19 23:50:52 +00:00
TerminalSettingsModel Introduce setting override tracking and update SettingContainer (#9079) 2021-02-19 23:50:52 +00:00
UnitTests_Remoting Add support for the windowingBehavior setting (#9118) 2021-02-19 21:09:17 +00:00
UnitTests_TerminalCore A bunch of test fixes (#9192) 2021-02-18 20:47:14 +00:00
ut_app A bunch of test fixes (#9192) 2021-02-18 20:47:14 +00:00
WindowsTerminal Add centerOnLaunch setting (#9036) 2021-02-19 22:30:24 +00:00
WindowsTerminalUniversal Update Win32 Toolkit (6.1.2) and VCRT Forwarders (1.0.4) (#8501) 2020-12-10 01:30:00 +00:00
WinRTUtils Exclude more rarely-used stuff from Windows headers (#8513) 2020-12-11 19:35:23 +00:00
WpfTerminalControl wpf: prevent a 0 size when VS builds the Terminal window too early (#9194) 2021-02-17 21:00:50 +00:00
WpfTerminalTestNetCore wpf: target netcoreapp3.1, clean up test project path (#8491) 2020-12-04 18:17:25 +00:00
wt Build and ship an actual binary named wt that just launches WT (#6860) 2020-07-10 22:41:37 +00:00
CascadiaResources.build.items Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00