-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
Transitioned to Json Settings #6113
Conversation
@yaichenbaum Ready for review! |
@d2dyno1 I've pushed a few changes. Feel free to revert them if you disagree. Basically:
|
I've just noticed them, thank you ❤️ From the initial look, these look fine so I'm going to keep them in. I'll merge some other settings soon and then it's finished! |
We did hook up |
The problem is that settings do not implement INotifyPropertyChanged so this kind of things don't work : |
@gave92 I've fixed the issue. The problem actually had nothing to do with |
Looks mostly fixed 👍 This setting does not work without restart: IsVerticalTabFlyoutEnabled (seems the only one that relied on INotifyPropertyChanged, all the rest are handled in code behind through settings changed event) |
@d2dyno1 could you check if a fresh install is working? If I make a fresh install of this branch, it will give me a lot of errors and won't work. If I install first last main and then install this version so it gets updated, it works as expected. |
I've just ran a fresh build of |
That's odd, I just tried again uninstalling Files-Dev and then debugging as debug and it throws a lot of exceptions about "Value cannot be null.". Are you debugging on debug or on release? |
Debug x64 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LRGTM (R is for "really")
Lereallygimate lol |
Resolved / Related Issues
Details of Changes
This PR transitions registry based
SettingsViewModel
to json settings. Now importing and exporting your settings is possible!This PR also introduces BaseJsonSettingsModel v3 with refactored codebase and
ISettingsSharingContext
for sharing one settings file across multipleBaseJsonSettingsModel
instances. This allows for settings organization while keeping everything in one place.Benefits
Regressions
Note for Contributors
IServiceProvider
for injecting dependencies into classes (currently only used for injecting setting services). The IoC container was added in mind of further expansion.SettingsViewModel
is deprecated and should be no longer used for storing settings. It is only used for merging the settings database.BEFORE:
AFTER:
Validation
For #4180, #5195