-
Notifications
You must be signed in to change notification settings - Fork 1.2k
qt: Introduce appearance tab and setup dialog #3568
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
qt: Introduce appearance tab and setup dialog #3568
Conversation
84acf74 to
eaf2227
Compare
Allows to scale the font in the same way like with -font-scale.
Allows to set the weight for normal and bold text
Allows to choose between system default font or montserrat
A widget which just wraps all appearance related settings. Also replaces Appearance settings in OptionsDialog with the introduced widget.
This will pop up the first time the user starts the DashCore version with the new UI changes.
eaf2227 to
90ccaac
Compare
|
Ready for review! Like discussed in #3578 this PR also introduces a "initial appearance setup dialog" now.. basically just to let user know it's there and to give them the opportunity to set their preferred defaults. It will only pop up the first time a user runs any dash core version with this PR included.
|
|
Looks ok-ish but works weird with |
Before getFont(FontFamily, ...) wasn't always able to return the correct font without the requested font family beeing set as application font upfront.
Add conversion helpers. and let all of them depend on the currently selected font.
For SystemDefault only because Montserrat has all supported weights.
eda4260 to
c4c8583
Compare
|
@UdjinM6 The latest commits should clean that up and fix it. There are still rare cases i have on my list now (i.e. if command line parameters are used on first start) where we run into inconsistencies but i assume that can be a known issue at this point? I would like to rework all that weight handling stuff a bit when i move all that code in some theme handler class. Are we good with that? |
…to better match the logic and avoid confusion with weight(To/From)Arg functions
|
Makes both sense, picked 👍 |
UdjinM6
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.
ACK
PastaPastaPasta
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.
ACK, seems to work as expected
* qt: Add "Appearance Tab" to OptionsDialog and move "Theme" into it * qt: Add "Font scale" settings to Appearance Tab of OptionsDialog Allows to scale the font in the same way like with -font-scale. * qt: Add font weight settings to Appearance tab of OptionsDialog Allows to set the weight for normal and bold text * qt: Add font family setting to Appearance tab of OptionsDialog Allows to choose between system default font or montserrat * qt: GUIUtil - Maintain a map with supported weights for all fonts. * qt: Introduce AppearanceWidget A widget which just wraps all appearance related settings. Also replaces Appearance settings in OptionsDialog with the introduced widget. * qt: Introduce initial appearance setup dialog This will pop up the first time the user starts the DashCore version with the new UI changes. * qt: Load font related settings in GUIUtil::loadFonts * qt: Make osDefaultFont global in GUIUtil to fix getFont() Before getFont(FontFamily, ...) wasn't always able to return the correct font without the requested font family beeing set as application font upfront. * qt: Improve supported weight helpers Add conversion helpers. and let all of them depend on the currently selected font. * qt: Default weights based on supported if not all weights are supported For SystemDefault only because Montserrat has all supported weights. * qt/test: Fix GUI tests * Store normal/bold font GUI settings as "pure" (not "supported") values * Rename supportedWeighti(To/From)Arg to supportedWeight(To/From)Index to better match the logic and avoid confusion with weight(To/From)Arg functions Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* qt: Add "Appearance Tab" to OptionsDialog and move "Theme" into it * qt: Add "Font scale" settings to Appearance Tab of OptionsDialog Allows to scale the font in the same way like with -font-scale. * qt: Add font weight settings to Appearance tab of OptionsDialog Allows to set the weight for normal and bold text * qt: Add font family setting to Appearance tab of OptionsDialog Allows to choose between system default font or montserrat * qt: GUIUtil - Maintain a map with supported weights for all fonts. * qt: Introduce AppearanceWidget A widget which just wraps all appearance related settings. Also replaces Appearance settings in OptionsDialog with the introduced widget. * qt: Introduce initial appearance setup dialog This will pop up the first time the user starts the DashCore version with the new UI changes. * qt: Load font related settings in GUIUtil::loadFonts * qt: Make osDefaultFont global in GUIUtil to fix getFont() Before getFont(FontFamily, ...) wasn't always able to return the correct font without the requested font family beeing set as application font upfront. * qt: Improve supported weight helpers Add conversion helpers. and let all of them depend on the currently selected font. * qt: Default weights based on supported if not all weights are supported For SystemDefault only because Montserrat has all supported weights. * qt/test: Fix GUI tests * Store normal/bold font GUI settings as "pure" (not "supported") values * Rename supportedWeighti(To/From)Arg to supportedWeight(To/From)Index to better match the logic and avoid confusion with weight(To/From)Arg functions Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* qt: Add "Appearance Tab" to OptionsDialog and move "Theme" into it * qt: Add "Font scale" settings to Appearance Tab of OptionsDialog Allows to scale the font in the same way like with -font-scale. * qt: Add font weight settings to Appearance tab of OptionsDialog Allows to set the weight for normal and bold text * qt: Add font family setting to Appearance tab of OptionsDialog Allows to choose between system default font or montserrat * qt: GUIUtil - Maintain a map with supported weights for all fonts. * qt: Introduce AppearanceWidget A widget which just wraps all appearance related settings. Also replaces Appearance settings in OptionsDialog with the introduced widget. * qt: Introduce initial appearance setup dialog This will pop up the first time the user starts the DashCore version with the new UI changes. * qt: Load font related settings in GUIUtil::loadFonts * qt: Make osDefaultFont global in GUIUtil to fix getFont() Before getFont(FontFamily, ...) wasn't always able to return the correct font without the requested font family beeing set as application font upfront. * qt: Improve supported weight helpers Add conversion helpers. and let all of them depend on the currently selected font. * qt: Default weights based on supported if not all weights are supported For SystemDefault only because Montserrat has all supported weights. * qt/test: Fix GUI tests * Store normal/bold font GUI settings as "pure" (not "supported") values * Rename supportedWeighti(To/From)Arg to supportedWeight(To/From)Index to better match the logic and avoid confusion with weight(To/From)Arg functions Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* qt: Add "Appearance Tab" to OptionsDialog and move "Theme" into it * qt: Add "Font scale" settings to Appearance Tab of OptionsDialog Allows to scale the font in the same way like with -font-scale. * qt: Add font weight settings to Appearance tab of OptionsDialog Allows to set the weight for normal and bold text * qt: Add font family setting to Appearance tab of OptionsDialog Allows to choose between system default font or montserrat * qt: GUIUtil - Maintain a map with supported weights for all fonts. * qt: Introduce AppearanceWidget A widget which just wraps all appearance related settings. Also replaces Appearance settings in OptionsDialog with the introduced widget. * qt: Introduce initial appearance setup dialog This will pop up the first time the user starts the DashCore version with the new UI changes. * qt: Load font related settings in GUIUtil::loadFonts * qt: Make osDefaultFont global in GUIUtil to fix getFont() Before getFont(FontFamily, ...) wasn't always able to return the correct font without the requested font family beeing set as application font upfront. * qt: Improve supported weight helpers Add conversion helpers. and let all of them depend on the currently selected font. * qt: Default weights based on supported if not all weights are supported For SystemDefault only because Montserrat has all supported weights. * qt/test: Fix GUI tests * Store normal/bold font GUI settings as "pure" (not "supported") values * Rename supportedWeighti(To/From)Arg to supportedWeight(To/From)Index to better match the logic and avoid confusion with weight(To/From)Arg functions Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>


This PR ist part of a series of +-25 PRs related to UI redesigns. Its ancestor is #3567, its successor is #3569. I did not screenshot every single PR and its changes, instead i made "walk through all screen" videos with the result of this PR series and also with the 0.15 UI. If there are any concrete screenshots wanted, just let me know. To build with the full set of changes you can build from the branch xdustinface:pr-ui-redesign which always contains all changes.
-> Walk through 0.15
-> Walk through Redesign
I tried to give the commits enough text to make things obvious without a lot description for each PR. Also here, if you want more description for this specific PR, let me know.
About this PR
This PR implements a new tab in OptionsDialog. Called "Appearance" which now contains the theme setting. Also you can apply some customization there related to font size, font weight or font family.
The content of this new tab is also used for an "Initial appearance setup dialog" which appears if Dash Core gets started the first time after this PR.