This is a regression compared to KDE4. Dropdowns in seemingly every Plasma dialog only partially respect theme settings, resulting in unreadable text. Reproducible: Always Steps to Reproduce: 1. Change to a dark theme (e.g. Breeze Dark) 2. Open desktop settings 3. Click "Wallpaper type" Actual Results: Extremely low contrast results in unreadable text. Expected Results: Widget is styled consistently with the restof the system, or at least is readable. Fedora 22
Created attachment 94533 [details] Screenshot of the faulty rendering
Created attachment 94534 [details] Screenshot of correct rendering (same system, same settings, different application)
This is a bug in the QtQuick Controls ComboBox used by Plasma - I reported an upstream bug there: https://bugreports.qt.io/browse/QTBUG-48252
Hugo, could you perhaps have a look at this? It affects Breeze and Oxygen as well as Windows 95 style but not the Qt Fusion style. QtQuick Controls ComboBox uses PE_PanelItemViewRow in its ComboBox popup, perhaps we don't style that thing properly? Relevant code: qApp->style()->drawPrimitive(QStyle::PE_PanelItemViewRow, m_styleoption, &pixpainter); if ((style() == "mac" || !qApp->style()->styleHint(QStyle::SH_ItemView_ShowDecorationSelected)) && selected()) { pal = QApplication::palette("QAbstractItemView"); pal.setCurrentColorGroup(m_styleoption->palette.currentColorGroup()); pixpainter.fillRect(m_styleoption->rect, pal.highlight()); }
(In reply to Kai Uwe Broulik from comment #4) > Hugo, could you perhaps have a look at this? It affects Breeze and Oxygen as > well as Windows 95 style but not the Qt Fusion style. QtQuick Controls > ComboBox uses PE_PanelItemViewRow in its ComboBox popup, perhaps we don't > style that thing properly? > > Relevant code: > qApp->style()->drawPrimitive(QStyle::PE_PanelItemViewRow, m_styleoption, > &pixpainter); > if ((style() == "mac" || > !qApp->style()->styleHint(QStyle::SH_ItemView_ShowDecorationSelected)) && > selected()) { > pal = QApplication::palette("QAbstractItemView"); > pal.setCurrentColorGroup(m_styleoption->palette.currentColorGroup()); > pixpainter.fillRect(m_styleoption->rect, pal.highlight()); > } Hi Kai, From what I can understand, the code above is relevant for the selected item only, whereas the bug is for unselected ones. And in fact, comparing the correct and incorrect rendering, what seems to be the problem is the color used for the list "background". (possibly incorrect background role). Anyway, yes, I can try investigate a bit more (but it is likely _not_ in the code mentionned above.
Any other application than plasmashell (desktop settings) that I could use to reproduce the issue ? (such as a QtQuickControls demo, for instance ?) Right now plasmashell crashes on my hybrid system (kde4/kf5) and I don't feel like recompiling everything to make it work ... Thanks in advance, Hugo
The you go: http://code.qt.io/cgit/qt/qtquickcontrols.git/tree/examples/quick/controls/gallery
Thanks Kay !
In fact, for editable comboboxes, fusion also shows the issue. Only for read-only comboboxes it does not, and for such, fusion's rendering (also in the widget case) is quite non-standard. I guess i'll look into how they do it in the QFusionStyle and see if I can get the code from there. Still : this _is_ an upstream bug.
https://bugreports.qt.io/browse/QTBUG-48252 if you're interested.
*** Bug 357019 has been marked as a duplicate of this bug. ***
*** Bug 357049 has been marked as a duplicate of this bug. ***