-
Notifications
You must be signed in to change notification settings - Fork 8.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Apply MVVM Pattern to Settings UI #9207
Labels
Area-SettingsUI
Anything specific to the SUI
Issue-Feature
Complex enough to require an in depth planning process and actual budgeted, scheduled work.
Needs-Tag-Fix
Doesn't match tag requirements
Product-Terminal
The new Windows Terminal.
Milestone
Comments
carlos-zamora
added
Issue-Feature
Complex enough to require an in depth planning process and actual budgeted, scheduled work.
Product-Terminal
The new Windows Terminal.
Area-SettingsUI
Anything specific to the SUI
labels
Feb 18, 2021
ghost
added
the
Needs-Triage
It's a new issue that the core contributor team needs to triage at the next triage meeting
label
Feb 18, 2021
DHowett
removed
the
Needs-Triage
It's a new issue that the core contributor team needs to triage at the next triage meeting
label
Feb 18, 2021
This was referenced Feb 18, 2021
6 tasks
This was referenced Dec 1, 2021
ghost
pushed a commit
that referenced
this issue
Dec 8, 2021
## Summary of the Pull Request Cleans up `ProfileViewModel`, `Profiles`, and `ProfilePageNavigationState` to move all of the view model responsibilities over to `ProfileViewModel`. We don't actually store the `ProfilePageNavigationState` anymore. We only use it as a way to transfer information to the new page. ## References #9207 - Apply MVVM ## Detailed Description of the Pull Request / Additional comments - I pulled out `ProfileViewModel` into its own file to keep things cleaner. It was getting pretty big. - The font lists are now stored in a static location in `ProfileViewModel`, which means that we can reuse the same list between pages. - the profile pivot was also moved to the `ProfileViewModel` and stored as a static value. ## Validation Steps Performed ✅ pivot behavior is the same ✅ font list is still populated
I should do this: #11877 (comment) (or really, anybody should haha. Doesn't have to be me :P) |
zadjii-msft
modified the milestones:
Engineering Improvements 2021,
Engineering Improvements
Jan 3, 2022
There was a long series of PRs for all the global settings pages, with which we can finally close this out. I think that landed broadly in 1.15 ish. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Area-SettingsUI
Anything specific to the SUI
Issue-Feature
Complex enough to require an in depth planning process and actual budgeted, scheduled work.
Needs-Tag-Fix
Doesn't match tag requirements
Product-Terminal
The new Windows Terminal.
The Settings UI is currently directly bound to the settings model. Unfortunately, this forces us to run into a few issues every now and then:
The Model-View-ViewModel Design Pattern was designed to keep the settings model and the settings UI pure simultaneously.
We've already started some of this work by introducing the
ProfileViewModel
. It serves as a middle-man between the UI controls and the settings model, and can be used to track extra information like "is this the base layer" and special values for settings (i.e. background image's use desktop wallpaper, etc.).We need to apply this design pattern to...
This allows for the following scenarios:
ProfileViewModel
s andAppearanceViewModel
sThe text was updated successfully, but these errors were encountered: