Repository navigation
Conversation
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
The dialogs are created in the CClientDlg constructor, before iOS has applied the appearance of the system, so they resolve the light palette even when the system uses the dark one. The iOS platform plugin reports a change of the colour scheme to the application only, not to the windows, so the stale palette is never replaced and the dialogs are painted with black text on the dark background until something unrelated repaints them. Clear the palette when a dialog is shown, so that it inherits the current application palette before it is painted for the first time.
3d52f7a to
f0d8a90
Compare
Short description of changes
Adopt the current application palette when a dialog is shown, so that dialogs opened after the system appearance is known are not painted with black text on the dark background.
The dialogs are created in the
CClientDlgconstructor, i.e. before iOS has applied the appearance of the system, so they resolve the light palette even when the system uses the dark one. Qt's iOS platform plugin reports a change of the colour scheme to the application only (QApplicationPrivate::handleThemeChanged()updates the palette but does not notify the widgets), so the stale palette is never replaced. The result was a server list with the server names in black on the dark background until something unrelated repainted the dialog.Clearing the palette in
CBaseDlg::event()when the dialog is shown makes it inherit the current application palette before the first paint. The change is guarded withQ_OS_IOS, so the other platforms are untouched.CHANGELOG: iOS: Fixed dialog contents being unreadable in dark mode
Context: Fixes an issue?
Fixes #3994 (dark mode item).
Measured on the iPad Pro 11-inch simulator with Qt 6.11.1:
Does this change need documentation? What needs to be documented and how?
No.
Status of this Pull Request
Working implementation.
What is missing until this pull request can be merged?
mainwith or without this change, and none of the palette or repaint attempts from inside Jamulus changed it, so it looks like the palette itself reverts to light while the window keeps its dark background. It needs its own investigation, probably with a Qt bug report.