-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
FEAT(client): Settings Profiles #6681
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
base: master
Are you sure you want to change the base?
Conversation
Krzmbrzl
left a comment
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.
For reference, this implements #1264
One thing we need to think about/discuss is whether we believe whether all settings are created equal or whether there might be some settings that should be profile-dependent and some which are global-independent.
In the latter category, one might have things like the ask-on-quit setting.
If we believe that some settings should be independent of profiles, then the entire feature would become much more complex as this dependence would also have to be reflected in the UI in order to not make users guess whether a given setting depends on the profile or not 👀
I am 100% in favor of "all settings are created equal".
@Krzmbrzl One thing that I am unsure about as of yet is "settings_version". That should be included in the individual profiles, but when we leave it out of the JSON root, we might - in rare, error caused circumstances - have users that might not be able to start Mumble... I/We have to come up with a nice solution for this |
I'm also like 80% or 90% sure that this is likely the correct thing to do, so let's stick with that 👍
It is meant for scenarios such as mumble/src/mumble/Settings.cpp Lines 846 to 866 in c0eaa32
So with settings_version you could simply check the version and decide based on that how you have to parse the settings file, without having to do this awkward "always do the new format but also always the old in case the file is not yet updated" procedure. Similarly, if we rename a setting, this could cause the version to increase, though that is not (always) necessary as we havemumble/src/mumble/JSONSerialization.cpp Lines 152 to 172 in c0eaa32
Finally, if not already implemented, we will probably want a hotkey to switch to a specific settings profile (and one to cycle through them?). |
This would be a really usefull addition to Mumble. At least for us, community of 30 people, one of the major things that stops us from fully migrating to Mumble from Teamspeak is inability to assign different Audio and Hotkey profiles. (we use said functions a lot, to the point that they become essential for us) Implementing both options, switch and\or cycle, would be very welcome. |
e784b92 to
b14de43
Compare
This was easier said than done. A real brain twister, if you like 😆 I think I got it now, however we need two migrate methods ( |
|
What do you think of the UI (frontend) part? I have considered different options such as creating a new MenuBar entry for profiles, but I think that's not a good approach. We could also create a dedicated sub-settings page. Or keep the current thing were there is just a drop-down in the main settings interface? Maybe hide the buttons in a burger menu? |
|
As for the UI: I think the current location of the profiles is a bit prone to be missed at first glance. I would prefer if it was a bit more "in-your-face" which profile is currently in use. We should definitely have it always visible. However, from my gut, I would put it at the very top of the settings page like this: though that might end up looking awful xD
yeah, that sounds reasonable to me (both of it) Something that would be a really neat bonus was if inside the settings file we didn't duplicate every setting but have only one complete set of settings and then only store those settings in a profile that are different from those base settings. That would facilitate manual editing of the settings file. However, this is definitely not a requirement. |
a5ab053 to
3b20087
Compare
8192d5b to
eadf494
Compare
|
I am having a hard time with implementing the shortcut. The main aspect, changing the profile, works. But each |
|
Couldn't you simply call the same function that is called when clicking Save or Apply in the settings GUI? |
Yes, but this requires the config widgets to be loaded which they only are if (and as long as) the config dialog is active. I'll look into that |
|
@CodiumAI-Agent /improve |
PR Code Suggestions ✨Latest suggestions up to eadf494
Previous suggestionsSuggestions up to commit eadf494
Suggestions up to commit eadf494
|
|
@Krzmbrzl At first glance it looks like all of these are wrong or at least questionable 👀 Maybe the one where it clears the map before serializing has some merit to it. |
|
Hm? It automatically removed some suggestions again? It keeps changing lol. |
Yeah. It worked better in another PR where I tried it (not for Mumble) but even so, I think it identified some points of interest that at least warrant a reviewer to take a closer look and ponder whether the way it is done, is correct.
Indeed 😀 |
TODO: Write commit message
TODO: Write commit message
136efd2 to
12e01f8
Compare
12e01f8 to
59b9dd6
Compare
This is very much WIP and I need to add a proper description, but it is functional on a fundamental level.
Feedback for both UI and settings refactor welcome
version3.mp4
Closes #1264