terminal/src/cascadia/ut_app
Carlos Zamora 6b503ba887
Add Serializer to CascadiaSettings (#8018)
##  Summary of the Pull Request
This adds `ToJson` functions to `Profile`, `GlobalAppSettings`, and `ColorScheme`. They are used in `CascadiaSettings` to completely serialize an instance of the settings model. Thanks to #7923, all of the settings are `std::optional`, and `JsonUtils` only writes out values that are actually populated.

`CascadiaSettings::WriteSettingsToDisk` serializes the current settings and writes them to the settings.json. A backup file is created with your old contents.

#### Limitations:
- all of the color schemes are serialized regardless of them coming from defaults.json or settings.json
- keybindings/actions are copied/pasted

## References
#1564 - Settings UI
TSM Specs (#6904 and #7876)

## PR Checklist
* [x] Tests added/passed
2020-11-17 00:37:19 +00:00
..
ColorHelperTests.cpp Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00
DynamicProfileTests.cpp Add Serializer to CascadiaSettings (#8018) 2020-11-17 00:37:19 +00:00
JsonTests.cpp Add Serializer to CascadiaSettings (#8018) 2020-11-17 00:37:19 +00:00
JsonUtilsTests.cpp Rework JsonUtils' optional handling to let Converters see null (#8175) 2020-11-09 15:13:02 -08:00
precomp.cpp Refactor TerminalApp and Add Tests for Xaml Content (#1164) 2019-07-15 14:27:56 -05:00
precomp.h Make Profile a WinRT object (#7283) 2020-08-28 01:09:22 +00:00
TerminalApp.Unit.Tests.AppxManifest.xml ci: run spell check in CI, fix remaining issues (#4799) 2020-03-25 11:02:53 -07:00
TerminalApp.Unit.Tests.manifest constexprs have to go into the headers or other usages can't find them. Imagine that. 2019-09-04 10:59:18 -07:00
TerminalApp.UnitTests.vcxproj Fix the WINRT_NO_MAKE_DETECTION build break (#8067) 2020-10-27 17:56:09 -07:00
TestDynamicProfileGenerator.h Introduce TerminalSettingsModel project (#7667) 2020-10-06 09:56:59 -07:00