diff --git a/src/cascadia/TerminalSettingsModel/CascadiaSettings.cpp b/src/cascadia/TerminalSettingsModel/CascadiaSettings.cpp index 2d397ad55..5c6d91a4d 100644 --- a/src/cascadia/TerminalSettingsModel/CascadiaSettings.cpp +++ b/src/cascadia/TerminalSettingsModel/CascadiaSettings.cpp @@ -36,7 +36,7 @@ winrt::com_ptr Model::implementation::CreateChild(const winrt::com_ptr< profile->Name(parent->Name()); profile->Guid(parent->Guid()); profile->Hidden(parent->Hidden()); - profile->InsertParent(parent); + profile->AddLeastImportantParent(parent); return profile; } @@ -336,7 +336,7 @@ Model::Profile CascadiaSettings::DuplicateProfile(const Model::Profile& source) // Make sure to add the default appearance of the duplicated profile as a parent to the duplicate's UnfocusedAppearance winrt::com_ptr defaultAppearance; defaultAppearance.copy_from(winrt::get_self(duplicated->DefaultAppearance())); - unfocusedAppearance->InsertParent(defaultAppearance); + unfocusedAppearance->AddLeastImportantParent(defaultAppearance); duplicated->UnfocusedAppearance(*unfocusedAppearance); } diff --git a/src/cascadia/TerminalSettingsModel/CascadiaSettingsSerialization.cpp b/src/cascadia/TerminalSettingsModel/CascadiaSettingsSerialization.cpp index aa8402af1..9f4a4a1be 100644 --- a/src/cascadia/TerminalSettingsModel/CascadiaSettingsSerialization.cpp +++ b/src/cascadia/TerminalSettingsModel/CascadiaSettingsSerialization.cpp @@ -284,15 +284,15 @@ void SettingsLoader::MergeFragmentIntoUserSettings(const winrt::hstring& source, void SettingsLoader::FinalizeLayering() { // Layer default globals -> user globals - userSettings.globals->InsertParent(inboxSettings.globals); + userSettings.globals->AddLeastImportantParent(inboxSettings.globals); userSettings.globals->_FinalizeInheritance(); // Layer default profile defaults -> user profile defaults - userSettings.baseLayerProfile->InsertParent(inboxSettings.baseLayerProfile); + userSettings.baseLayerProfile->AddLeastImportantParent(inboxSettings.baseLayerProfile); userSettings.baseLayerProfile->_FinalizeInheritance(); // Layer user profile defaults -> user profiles for (const auto& profile : userSettings.profiles) { - profile->InsertParent(0, userSettings.baseLayerProfile); + profile->AddMostImportantParent(userSettings.baseLayerProfile); profile->_FinalizeInheritance(); } } @@ -524,7 +524,7 @@ void SettingsLoader::_parseFragment(const winrt::hstring& source, const std::str { if (const auto it = userSettings.profilesByGuid.find(updates); it != userSettings.profilesByGuid.end()) { - it->second->InsertParent(0, fragmentProfile); + it->second->AddMostImportantParent(fragmentProfile); } } else @@ -598,7 +598,7 @@ void SettingsLoader::_addParentProfile(const winrt::com_ptr The generated profile is a parent of the existing user profile. - it->second->InsertParent(profile); + it->second->AddLeastImportantParent(profile); } else { diff --git a/src/cascadia/TerminalSettingsModel/GlobalAppSettings.cpp b/src/cascadia/TerminalSettingsModel/GlobalAppSettings.cpp index 0ffe584fc..e417042e4 100644 --- a/src/cascadia/TerminalSettingsModel/GlobalAppSettings.cpp +++ b/src/cascadia/TerminalSettingsModel/GlobalAppSettings.cpp @@ -30,7 +30,7 @@ void GlobalAppSettings::_FinalizeInheritance() { for (const auto& parent : _parents) { - _actionMap->InsertParent(parent->_actionMap); + _actionMap->AddLeastImportantParent(parent->_actionMap); _keybindingsWarnings.insert(_keybindingsWarnings.end(), parent->_keybindingsWarnings.begin(), parent->_keybindingsWarnings.end()); for (const auto& [k, v] : parent->_colorSchemes) { @@ -68,7 +68,7 @@ winrt::com_ptr GlobalAppSettings::Copy() const for (const auto& parent : _parents) { - globals->InsertParent(parent->Copy()); + globals->AddLeastImportantParent(parent->Copy()); } return globals; } diff --git a/src/cascadia/TerminalSettingsModel/IInheritable.h b/src/cascadia/TerminalSettingsModel/IInheritable.h index c6281e5e3..aeb5179c7 100644 --- a/src/cascadia/TerminalSettingsModel/IInheritable.h +++ b/src/cascadia/TerminalSettingsModel/IInheritable.h @@ -35,7 +35,7 @@ namespace winrt::Microsoft::Terminal::Settings::Model::implementation // to pass ownership over to the com_ptr. com_ptr parent; winrt::copy_from_abi(parent, const_cast(static_cast(this))); - child->InsertParent(parent); + child->AddLeastImportantParent(parent); child->_FinalizeInheritance(); return child; @@ -46,15 +46,14 @@ namespace winrt::Microsoft::Terminal::Settings::Model::implementation _parents.clear(); } - void InsertParent(com_ptr parent) + void AddLeastImportantParent(com_ptr parent) { _parents.emplace_back(std::move(parent)); } - void InsertParent(size_t index, com_ptr parent) + void AddMostImportantParent(com_ptr parent) { - auto pos{ _parents.begin() + index }; - _parents.emplace(pos, std::move(parent)); + _parents.emplace(_parents.begin(), std::move(parent)); } const std::vector>& Parents() diff --git a/src/cascadia/TerminalSettingsModel/Profile.cpp b/src/cascadia/TerminalSettingsModel/Profile.cpp index f56e99d4a..163731fab 100644 --- a/src/cascadia/TerminalSettingsModel/Profile.cpp +++ b/src/cascadia/TerminalSettingsModel/Profile.cpp @@ -46,7 +46,7 @@ void Profile::CreateUnfocusedAppearance() // taken from this profile's default appearance, so add it as a parent com_ptr parentCom; parentCom.copy_from(winrt::get_self(_DefaultAppearance)); - unfocusedAppearance->InsertParent(parentCom); + unfocusedAppearance->AddLeastImportantParent(parentCom); _UnfocusedAppearance = *unfocusedAppearance; } @@ -119,7 +119,7 @@ winrt::com_ptr Profile::CopySettings() const if (*_UnfocusedAppearance) { const auto appearance = AppearanceConfig::CopyAppearance(winrt::get_self(*_UnfocusedAppearance), weakProfile); - appearance->InsertParent(defaultAppearance); + appearance->AddLeastImportantParent(defaultAppearance); unfocused = *appearance; } profile->_UnfocusedAppearance = unfocused; @@ -189,7 +189,7 @@ void Profile::LayerJson(const Json::Value& json) // taken from this profile's default appearance, so add it as a parent com_ptr parentCom; parentCom.copy_from(defaultAppearanceImpl); - unfocusedAppearance->InsertParent(parentCom); + unfocusedAppearance->AddLeastImportantParent(parentCom); unfocusedAppearance->LayerJson(json[JsonKey(UnfocusedAppearanceKey)]); _UnfocusedAppearance = *unfocusedAppearance; @@ -218,7 +218,7 @@ void Profile::_FinalizeInheritance() { if (auto parentDefaultAppearanceImpl = parent->_DefaultAppearance.try_as()) { - defaultAppearanceImpl->InsertParent(parentDefaultAppearanceImpl); + defaultAppearanceImpl->AddLeastImportantParent(parentDefaultAppearanceImpl); } } } @@ -231,7 +231,7 @@ void Profile::_FinalizeInheritance() { if (auto parentFontInfoImpl = parent->_FontInfo.try_as()) { - fontInfoImpl->InsertParent(parentFontInfoImpl); + fontInfoImpl->AddLeastImportantParent(parentFontInfoImpl); } } } diff --git a/src/cascadia/TerminalSettingsModel/TerminalSettings.cpp b/src/cascadia/TerminalSettingsModel/TerminalSettings.cpp index a8575a976..9645b0983 100644 --- a/src/cascadia/TerminalSettingsModel/TerminalSettings.cpp +++ b/src/cascadia/TerminalSettingsModel/TerminalSettings.cpp @@ -247,7 +247,7 @@ namespace winrt::Microsoft::Terminal::Settings::Model::implementation ClearParents(); com_ptr parentImpl; parentImpl.copy_from(get_self(parent)); - InsertParent(parentImpl); + AddLeastImportantParent(parentImpl); } Model::TerminalSettings TerminalSettings::GetParent()