RPCS3 / rpcs3

PlayStation 3 emulator and debugger
https://rpcs3.net/
GNU General Public License v2.0
15.39k stars 1.91k forks source link

[Bug] [macOS] RPCS3 uses non-native stylesheets on macOS by default #16107

Closed schm1dtmac closed 3 weeks ago

schm1dtmac commented 1 month ago

Quick summary

The default stylesheets that are presumably intended for Windows use are being used wrongly on macOS, making the entire UI look non-native by default and even unreadable in some cases.

Details

macOS Qt in RPCS3 shouldn't even need stylesheets at all, since when using the "None" or "Native (macOS" options in Settings you get perfect native UI controls and styling that automatically syncs with the system-wide Light/Dark Aqua appearance setting.

By default however RPCS3 carries over the Windows-optimised defaults for styling and offers a non-functional 'option' to use Dark Mode (aka change stylesheets, something Windows may need due to the awful state of system-wide dark mode there, or lack thereof). Both result in broken UI, especially if you have macOS set to be Dark, which results in completely unreadable light+dark UI that can only be fixed by switching to native styling.

The solution here is simple: RPCS3 should default to no stylesheet at all or to "Native (macOS)" as they're the same thing, and should hide the broken non-functional "Enable Dark Mode" option in the initial setup to avoid user confusion when macOS/Qt will handle dark mode automatically when using native controls. (Controversially, stylesheets should be hidden completely on macOS as none of them look good on this OS, most are clearly designed for Windows and I imagine most macOS users generally prefer native-only as a whole. However I acknowledge that may be a bit extreme so just fixing the defaults should be enough).

Attach a log file

RPCS3.log Doesn't seem to be much in this of relevance except the final 3 lines.

Attach capture files for visual issues

No response

System configuration

System: 2022 MacBook Air SOC: Apple M2 OS: macOS 15 Sequoia RPCS3 version: Latest arm64 artifact from the CI PR, affects any compile of RPCS3 for macOS currently though (arm64 or x86)

Other details

Image of RPCS3 using default styling on first boot irrespective of whether the Dark toggle is enabled or not, with macOS set to Dark Mode system-wide:

image

How RPCS3 should look, when set to use None/Native(macOS) stylesheets:

image
Megamouse commented 1 month ago

Missing logfile

schm1dtmac commented 1 month ago

Missing logfile

@Megamouse fixed it, that's on me for mistakenly presuming the log wouldn't have provided any relevant info, but it does seem to have a few lines of details that may be interesting.

Megamouse commented 1 month ago

We've established before that Qt blatantly ignores stylesheets and applies it's own palette on macOs. The reason why we use a default stylesheet is that rpcs3 is supposed to look similar on each OS, and also has a lot of elements that look bad with default styles (I mean just look at your example). If it bothers users so much, you could try to adjust the default stylesheet to fix the palette issues (without regressing the other OS'es). I don't have a mac, so I can't really do it efficiently.

We definitely shouldn't use the native styles by default though (because of hilariously ugly elements).

schm1dtmac commented 4 weeks ago

Qt 6.7.3 being merged recently improves the appearance of the native macOS styling now, when it comes to titlebars at least. I'd say it's usable just enough to be the default for macOS only for now (either as an override of Default (Bright) or otherwise) although as you note it'd probably be better to fix the palette issues with the default stylesheet at some point and stick with that.

image