qt6ct icon indicating copy to clipboard operation
qt6ct copied to clipboard

Apply new platform palette without overriding app palette

Open jlindgren90 opened this issue 9 months ago • 2 comments

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.

jlindgren90 avatar May 11 '24 05:05 jlindgren90

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

ilya-fedin avatar May 15 '24 12:05 ilya-fedin

It might be a good idea to port qt6ct to QWindowSystemInterface::handleThemeChange

Implemented with #52

ilya-fedin avatar Oct 02 '24 03:10 ilya-fedin