mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-08-03 18:44:13 +02:00
Apply the elements-panel light palette to the viewport too
ElementsPanel and ElementsTreeView already force a fixed light palette (white base, black text) on themselves, specifically because element icons are rendered with colors read directly from each .elmt file -- almost always black linework, matching printed-schematic convention -- onto a transparent background. That only stays legible if the row background is reliably light, regardless of the OS/desktop theme. But QAbstractItemView paints row backgrounds using its viewport's palette, not the view widget's own palette. setPalette() on the view itself doesn't propagate to viewport() in the general case, so under styles that actually respect the viewport's (unset, therefore theme-inherited) palette -- e.g. KDE Plasma's Breeze Dark -- the row background falls through to the app's dark palette while the element linework is still literal black, making library icons and terminal symbols invisible. Apply the same QPalette to viewport() right after setPalette() in both constructors, so the fix these two classes already clearly intended actually takes effect under every style. Fixes https://qelectrotech.org/bugtracker/view.php?id=335
This commit is contained in:
@@ -43,6 +43,14 @@ ElementsTreeView::ElementsTreeView(QWidget *parent) :
|
||||
{
|
||||
// force du noir sur une alternance de blanc (comme le schema) et de gris
|
||||
// clair, avec du blanc sur bleu pas trop fonce pour la selection
|
||||
//
|
||||
// Element icons are rendered with colors read directly from each .elmt
|
||||
// file (almost always black linework, matching printed-schematic
|
||||
// convention) onto a transparent background -- so this view must keep
|
||||
// a light background regardless of the OS/desktop theme, or the icons
|
||||
// become invisible on dark themes. QAbstractItemView paints its rows
|
||||
// using the viewport's palette, not the view's own, so the palette
|
||||
// must be applied to both to actually take effect under every style.
|
||||
QPalette qp = palette();
|
||||
qp.setColor(QPalette::Text, Qt::black);
|
||||
qp.setColor(QPalette::Base, Qt::white);
|
||||
@@ -50,6 +58,7 @@ ElementsTreeView::ElementsTreeView(QWidget *parent) :
|
||||
qp.setColor(QPalette::Highlight, QColor("#678db2"));
|
||||
qp.setColor(QPalette::HighlightedText, Qt::black);
|
||||
setPalette(qp);
|
||||
viewport()->setPalette(qp);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user