[PR #11853] [CLOSED] Apply MVVM for global settings in SUI #28766

Open
opened 2026-01-31 09:30:38 +00:00 by claunia · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/microsoft/terminal/pull/11853
Author: @carlos-zamora
Created: 12/1/2021
Status: Closed

Base: mainHead: dev/cazamor/eim/mvvm


📝 Commits (5)

  • c3e5a35 introduce GlobalSettingsViewModel
  • f110fef fully replace navigation state storage with view model
  • 0ee9121 fix some minor things I found
  • 332967b Merge branch 'main' into dev/cazamor/eim/mvvm
  • 0a9977f Merge branch 'main' into dev/cazamor/eim/mvvm

📊 Changes

23 files changed (+551 additions, -410 deletions)

View changed files

📝 src/cascadia/TerminalSettingsEditor/GlobalAppearance.cpp (+2 -188)
📝 src/cascadia/TerminalSettingsEditor/GlobalAppearance.h (+3 -22)
📝 src/cascadia/TerminalSettingsEditor/GlobalAppearance.idl (+3 -16)
📝 src/cascadia/TerminalSettingsEditor/GlobalAppearance.xaml (+18 -18)
src/cascadia/TerminalSettingsEditor/GlobalSettingsViewModel.cpp (+251 -0)
src/cascadia/TerminalSettingsEditor/GlobalSettingsViewModel.h (+65 -0)
src/cascadia/TerminalSettingsEditor/GlobalSettingsViewModel.idl (+88 -0)
📝 src/cascadia/TerminalSettingsEditor/Interaction.cpp (+2 -9)
📝 src/cascadia/TerminalSettingsEditor/Interaction.h (+3 -7)
📝 src/cascadia/TerminalSettingsEditor/Interaction.idl (+3 -8)
📝 src/cascadia/TerminalSettingsEditor/Interaction.xaml (+11 -11)
📝 src/cascadia/TerminalSettingsEditor/Launch.cpp (+4 -50)
📝 src/cascadia/TerminalSettingsEditor/Launch.h (+7 -15)
📝 src/cascadia/TerminalSettingsEditor/Launch.idl (+5 -19)
📝 src/cascadia/TerminalSettingsEditor/Launch.xaml (+14 -14)
📝 src/cascadia/TerminalSettingsEditor/MainPage.cpp (+14 -4)
📝 src/cascadia/TerminalSettingsEditor/Microsoft.Terminal.Settings.Editor.vcxproj (+10 -0)
📝 src/cascadia/TerminalSettingsEditor/Microsoft.Terminal.Settings.Editor.vcxproj.filters (+1 -0)
📝 src/cascadia/TerminalSettingsEditor/Rendering.cpp (+2 -4)
📝 src/cascadia/TerminalSettingsEditor/Rendering.h (+3 -4)

...and 3 more files

📄 Description

Summary of the Pull Request

Introduces and uses GlobalSettingsViewModel as the view model for global settings in the settings UI. This makes it so that we don't actually store the XXXNavigationState on the page objects. Instead, we store the view model. The view model also stores some additional useful information like enum entry lists, current enum entry values, and getters for the settings model.

References

#9207 - Apply MVVM

Detailed Description of the Pull Request / Additional comments

Really this just involved me moving stuff into GlobalSettingsViewModel. There should be no change in functionality.

Validation Steps Performed

Changed some global settings and saved/discarded changes. Verified correct behavior from that.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/microsoft/terminal/pull/11853 **Author:** [@carlos-zamora](https://github.com/carlos-zamora) **Created:** 12/1/2021 **Status:** ❌ Closed **Base:** `main` ← **Head:** `dev/cazamor/eim/mvvm` --- ### 📝 Commits (5) - [`c3e5a35`](https://github.com/microsoft/terminal/commit/c3e5a352b7e5208893925e09c4575124f86a5abd) introduce GlobalSettingsViewModel - [`f110fef`](https://github.com/microsoft/terminal/commit/f110fef5ab35a5231f4f17f6ff331393ad368825) fully replace navigation state storage with view model - [`0ee9121`](https://github.com/microsoft/terminal/commit/0ee91216543a1701fa31183326852fb9295b8759) fix some minor things I found - [`332967b`](https://github.com/microsoft/terminal/commit/332967becce165b052954f2e04de590e100ab140) Merge branch 'main' into dev/cazamor/eim/mvvm - [`0a9977f`](https://github.com/microsoft/terminal/commit/0a9977f4ab77b6ff001f30e41883b155c306202b) Merge branch 'main' into dev/cazamor/eim/mvvm ### 📊 Changes **23 files changed** (+551 additions, -410 deletions) <details> <summary>View changed files</summary> 📝 `src/cascadia/TerminalSettingsEditor/GlobalAppearance.cpp` (+2 -188) 📝 `src/cascadia/TerminalSettingsEditor/GlobalAppearance.h` (+3 -22) 📝 `src/cascadia/TerminalSettingsEditor/GlobalAppearance.idl` (+3 -16) 📝 `src/cascadia/TerminalSettingsEditor/GlobalAppearance.xaml` (+18 -18) ➕ `src/cascadia/TerminalSettingsEditor/GlobalSettingsViewModel.cpp` (+251 -0) ➕ `src/cascadia/TerminalSettingsEditor/GlobalSettingsViewModel.h` (+65 -0) ➕ `src/cascadia/TerminalSettingsEditor/GlobalSettingsViewModel.idl` (+88 -0) 📝 `src/cascadia/TerminalSettingsEditor/Interaction.cpp` (+2 -9) 📝 `src/cascadia/TerminalSettingsEditor/Interaction.h` (+3 -7) 📝 `src/cascadia/TerminalSettingsEditor/Interaction.idl` (+3 -8) 📝 `src/cascadia/TerminalSettingsEditor/Interaction.xaml` (+11 -11) 📝 `src/cascadia/TerminalSettingsEditor/Launch.cpp` (+4 -50) 📝 `src/cascadia/TerminalSettingsEditor/Launch.h` (+7 -15) 📝 `src/cascadia/TerminalSettingsEditor/Launch.idl` (+5 -19) 📝 `src/cascadia/TerminalSettingsEditor/Launch.xaml` (+14 -14) 📝 `src/cascadia/TerminalSettingsEditor/MainPage.cpp` (+14 -4) 📝 `src/cascadia/TerminalSettingsEditor/Microsoft.Terminal.Settings.Editor.vcxproj` (+10 -0) 📝 `src/cascadia/TerminalSettingsEditor/Microsoft.Terminal.Settings.Editor.vcxproj.filters` (+1 -0) 📝 `src/cascadia/TerminalSettingsEditor/Rendering.cpp` (+2 -4) 📝 `src/cascadia/TerminalSettingsEditor/Rendering.h` (+3 -4) _...and 3 more files_ </details> ### 📄 Description ## Summary of the Pull Request Introduces and uses `GlobalSettingsViewModel` as the view model for global settings in the settings UI. This makes it so that we don't actually store the `XXXNavigationState` on the page objects. Instead, we store the view model. The view model also stores some additional useful information like enum entry lists, current enum entry values, and getters for the settings model. ## References #9207 - Apply MVVM ## Detailed Description of the Pull Request / Additional comments Really this just involved me moving stuff into `GlobalSettingsViewModel`. There should be no change in functionality. ## Validation Steps Performed Changed some global settings and saved/discarded changes. Verified correct behavior from that. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-31 09:30:38 +00:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#28766