Skip to content

Conversation

@Reedbeta
Copy link
Contributor

@Reedbeta Reedbeta commented Apr 19, 2025

This PR adds the option for "invert score" to follow the app theme: that is, automatically turning on when the app theme is dark, and off when it's light.

In the Appearance preferences, a new checkbox has been added per the design in this comment.


  • I signed the CLA
  • The title of the PR describes the problem it addresses
  • Each commit's message describes its purpose and effects, and references the issue it resolves
  • If changes are extensive, there is a sequence of easily reviewable commits
  • The code in the PR follows the coding rules
  • There are no unnecessary changes
  • The code compiles and runs on my machine, preferably after each commit individually
  • I created a unit test or vtest to verify the changes I made (if applicable)

@Ash-86
Copy link
Contributor

Ash-86 commented Apr 19, 2025

It might be easier on the eyes if the black background was dark grey instead. Maybe add a "high contrast" option for deep black?

@Reedbeta
Copy link
Contributor Author

It might be easier on the eyes if the black background was dark grey instead. Maybe add a "high contrast" option for deep black?

I tend to agree, but that's out of the scope of this PR (which is just adding the option to follow the app theme; the color inversion option was there before).

@cbjeukendrup cbjeukendrup requested a review from bkunda April 19, 2025 21:30
@Reedbeta Reedbeta force-pushed the pr/invert-follow-theme branch from 1059780 to 19d5f80 Compare April 26, 2025 23:59
@Reedbeta Reedbeta force-pushed the pr/invert-follow-theme branch from 19d5f80 to fabc828 Compare May 10, 2025 21:43
@avvvvve
Copy link

avvvvve commented Oct 21, 2025

Thanks for working on this @Reedbeta and apologies for the delay. We'd love to include this in 4.7 but with some tweaks to how the new option is presented in the UI. Long message incoming but I promise it's nothing super complex!

Here's the plan:

  1. Make 'Invert score' a toggle, rename it to 'Invert score colors', and move it within the 'Page' section (previously titled 'Paper')
  2. To its right is the new 'Only invert score in dark theme' checkbox, which is disabled until 'Invert score' is turned on
  3. The 'Color'/'Image' (previously 'Wallpaper') radio buttons still need to become disabled when the score is inverted, which happens only under these 3 combinations of the theme/invert options:
    • Light theme / Invert ON / Only invert in dark OFF
    • Dark theme / Invert ON / Only invert in dark OFF
    • Dark theme / Invert ON / Only invert in dark ON
  4. Reorder the sections of the page in this order:
    • 'Theme'
    • 'UI Colors' (this is only shown when 'Enable high-contrast' is on)
    • 'Page'
    • 'Background'
    • 'App text'

So the default state of the 'Appearance' page in Preferences will looks like this:
image

Here's the spacing of the new UI:
image

Here's a prototype of the interaction:

Screen.Recording.2025-10-21.at.3.48.27.PM.mov

And here are some other UI copy tweaks we'd like to make on this page while we're at it, if you don't mind updating these too. These are already reflected in the designs above, but to point them out more clearly here's a screenshot of the old design noting what should be changed:
image

If you see this and aren't available to work on this in the coming weeks, just let us know if you don't mind. Thanks so much!

@Reedbeta
Copy link
Contributor Author

Thanks for working on this @Reedbeta and apologies for the delay. We'd love to include this in 4.7 but with some tweaks to how the new option is presented in the UI. Long message incoming but I promise it's nothing super complex!

Thanks for following up. It sounds straightforward enough. I can probably find some time to work on this.

@Reedbeta Reedbeta force-pushed the pr/invert-follow-theme branch from fabc828 to 61bd4f5 Compare November 12, 2025 05:43
@Reedbeta
Copy link
Contributor Author

@avvvvve I've pushed an update to the PR with my changes. I think I've implemented everything you asked for; give it a whirl when you have a chance. 🙂

Copy link

@bkunda bkunda left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to work as expected (tested on macOS). Thank you @Reedbeta.

As an aside, it seems like a missed opportunity here if we make this one tweak to "invert score" but don't try to more generally improve how it actually looks. The current white on black is extremely hard on the eyes, and the lack of customisability means if you don't like it, you just can't use it.

If we were to at least fine-tune the colours in invert mode (using greys instead of pure black/white) – and perhaps even add colour palette pickers in the advanced tab for customisability – then this would be a feature we could actually talk-up/promote.

@jessjwilliamson any colour suggestions you have would be appreciated here.

@bkunda
Copy link

bkunda commented Nov 12, 2025

Ah I see my suggestion was already made above (should have read the thread). I realise it's out of scope for this PR, but if we were to think more holistically about improvements to this feature that will make the biggest impact in the next release, I'd strongly encourage rounding-off this improvement with better colour options.

Otherwise, the reaction will be "why was this change made, but the colours still look ugly?".

@cbjeukendrup
Copy link
Member

I've made the color change in #30997. I will now review and merge this PR.

@cbjeukendrup cbjeukendrup force-pushed the pr/invert-follow-theme branch 2 times, most recently from 0af0e13 to 791c6cf Compare November 15, 2025 00:29
@Reedbeta
Copy link
Contributor Author

Thanks for the fixes and cleanup, @cbjeukendrup!

I noticed that the ScoreInversionMode enum from the earlier version of the PR crept back in; it's not used anymore in the latest version of this code, so I pushed another commit to remove it.

into NotationConfiguration.

It has evolved into a UI setting, with the possibility to follow the app theme, and as such does not fit in the engraving module anymore. The engraving module only needs to know whether a certain paint action should use inverted colors or not; that info is passed in via PaintOptions.
@cbjeukendrup cbjeukendrup force-pushed the pr/invert-follow-theme branch from 214e8ee to bcfb1d9 Compare November 15, 2025 13:41
@cbjeukendrup
Copy link
Member

Oops, yes, good catch. I had accidentally initially based my changes on an old version of the PR because I forgot I had checked out the branch earlier. I've squashed your commit into mine for a clean history.

@cbjeukendrup cbjeukendrup merged commit 7d0735b into musescore:master Nov 15, 2025
11 checks passed
@github-project-automation github-project-automation bot moved this to Needs porting in MuseScore Studio 4.7 Nov 15, 2025
@cbjeukendrup cbjeukendrup moved this from Needs porting to Done in MuseScore Studio 4.7 Nov 15, 2025
@Reedbeta Reedbeta deleted the pr/invert-follow-theme branch November 15, 2025 17:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants