qt6ct
qt6ct copied to clipboard
Apply new platform palette without overriding app palette
Currently when a palette is set by qt6ct, it can in some cases override an app-specific palette. It would be nice if qt6ct would only set the platform palette (i.e. QPlatformTheme::SystemPalette) and still allow apps to set/adjust their own palette when desired.
Test case: start Audacious and select Dark theme in Audacious settings. Then in qt6ct configuration, select "dusk" or "sand" color scheme. It partially applies to Audacious (where it should not) and you end up with an unusable mix of Audacious's color scheme and qt6ct's.
Port of the qt5ct patch from https://sourceforge.net/p/qt5ct/tickets/97/. I have been using the patch in both qt5ct and qt6ct for quite some time and have not seen any ill side effects.
It might be a good idea to port qt6ct to QWindowSystemInterface::handleThemeChange which updates system dark mode state (which Qt calls color scheme), palette, icons and fonts without overriding them via APIs meant for applications: https://github.com/qt/qtbase/blob/dev/src/gui/kernel/qguiapplication.cpp#L2639-L2669
It might be a good idea to port qt6ct to QWindowSystemInterface::handleThemeChange
Implemented with #52