terminal/src/cascadia/TerminalSettingsModel
Carlos Zamora b603929214
Make Global and Profile settings inheritable (#7923)
## Summary of the Pull Request
Introduces `IInheritable` as an interface that helps move cascading settings into the Terminal Settings Model. `GlobalAppSettings` and `Profile` both are now `IInheritable`. `CascadiaSettings` was updated to `CreateChild()` for globals and each profile when we are loading the JSON data.

IInheritable does most of the heavy lifting. It introduces a two new macros and the interface. The macros help implement the fallback functionality for nullable and non-nullable settings.

## References
#7876 - Spec Addendum
#6904 - TSM Spec
#1564 - Settings UI

#7876 - `Copy()` needs to be updated to include _parent
2020-10-27 17:35:09 +00:00
..
dll Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
Resources/en-US add rowsToScroll to scrollUp/Down w/ fallback to system default (#7924) 2020-10-26 18:19:52 -07:00
ActionAndArgs.cpp add rowsToScroll to scrollUp/Down w/ fallback to system default (#7924) 2020-10-26 18:19:52 -07:00
ActionAndArgs.h Implement CascadiaSettings::Copy() (#7877) 2020-10-16 15:14:11 -07:00
ActionArgs.cpp add rowsToScroll to scrollUp/Down w/ fallback to system default (#7924) 2020-10-26 18:19:52 -07:00
ActionArgs.h add rowsToScroll to scrollUp/Down w/ fallback to system default (#7924) 2020-10-26 18:19:52 -07:00
ActionArgs.idl add rowsToScroll to scrollUp/Down w/ fallback to system default (#7924) 2020-10-26 18:19:52 -07:00
AzureCloudShellGenerator.cpp Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
AzureCloudShellGenerator.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
CascadiaSettings.cpp Make Global and Profile settings inheritable (#7923) 2020-10-27 17:35:09 +00:00
CascadiaSettings.h Make Global and Profile settings inheritable (#7923) 2020-10-27 17:35:09 +00:00
CascadiaSettings.idl Implement CascadiaSettings::Copy() (#7877) 2020-10-16 15:14:11 -07:00
CascadiaSettingsSerialization.cpp Make Global and Profile settings inheritable (#7923) 2020-10-27 17:35:09 +00:00
ColorScheme.cpp Implement CascadiaSettings::Copy() (#7877) 2020-10-16 15:14:11 -07:00
ColorScheme.h Implement CascadiaSettings::Copy() (#7877) 2020-10-16 15:14:11 -07:00
ColorScheme.idl Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
Command.cpp Implement CascadiaSettings::Copy() (#7877) 2020-10-16 15:14:11 -07:00
Command.h Implement CascadiaSettings::Copy() (#7877) 2020-10-16 15:14:11 -07:00
Command.idl Introduce IconConverter (#7830) 2020-10-08 11:29:04 -07:00
DefaultProfileUtils.cpp Make Global and Profile settings inheritable (#7923) 2020-10-27 17:35:09 +00:00
DefaultProfileUtils.h Make Global and Profile settings inheritable (#7923) 2020-10-27 17:35:09 +00:00
defaults-universal.json From orbit, nuke the Telnet connection and all supporting infra. (#7840) 2020-10-09 18:59:58 +00:00
defaults.json Add an animation to pane entrance/exit (#7364) 2020-10-09 23:06:40 +00:00
GlobalAppSettings.cpp Make Global and Profile settings inheritable (#7923) 2020-10-27 17:35:09 +00:00
GlobalAppSettings.h Make Global and Profile settings inheritable (#7923) 2020-10-27 17:35:09 +00:00
GlobalAppSettings.idl Make Global and Profile settings inheritable (#7923) 2020-10-27 17:35:09 +00:00
IDynamicProfileGenerator.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
IInheritable.h Make Global and Profile settings inheritable (#7923) 2020-10-27 17:35:09 +00:00
init.cpp Hook up the WIL fallback error tracer in Terminal (#7864) 2020-10-09 22:20:12 +00:00
JsonUtils.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
KeyChordSerialization.cpp Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
KeyChordSerialization.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
KeyChordSerialization.idl Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
KeyMapping.cpp Implement CascadiaSettings::Copy() (#7877) 2020-10-16 15:14:11 -07:00
KeyMapping.h Implement CascadiaSettings::Copy() (#7877) 2020-10-16 15:14:11 -07:00
KeyMapping.idl Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
KeyMappingSerialization.cpp Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07: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 Make Global and Profile settings inheritable (#7923) 2020-10-27 17:35:09 +00:00
Microsoft.Terminal.Settings.ModelLib.vcxproj.filters Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
packages.config Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
pch.cpp Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
pch.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
PowershellCoreProfileGenerator.cpp Introduce IconConverter (#7830) 2020-10-08 11:29:04 -07:00
PowershellCoreProfileGenerator.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
Profile.cpp Make Global and Profile settings inheritable (#7923) 2020-10-27 17:35:09 +00:00
Profile.h Make Global and Profile settings inheritable (#7923) 2020-10-27 17:35:09 +00:00
Profile.idl Make Global and Profile settings inheritable (#7923) 2020-10-27 17:35:09 +00:00
SettingsTypes.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
TerminalSettingsSerializationHelpers.h Add a setting to configure the audible bell (#7793) 2020-10-15 15:27:27 -07:00
TerminalWarnings.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
TerminalWarnings.idl Display a warning for when we fail to write to the settings file (#7950) 2020-10-23 00:21:07 +00:00
userDefaults.json Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
WslDistroGenerator.cpp Introduce IconConverter (#7830) 2020-10-08 11:29:04 -07:00
WslDistroGenerator.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00