diff options
author | Olivier Goffart <ogoffart@trolltech.com> | 2009-11-09 14:26:45 (GMT) |
---|---|---|
committer | Olivier Goffart <ogoffart@trolltech.com> | 2009-11-09 15:35:42 (GMT) |
commit | 0d2f1562d63cf51d254a5761bf37ce36120cfcfd (patch) | |
tree | a34207924364bc7fe17801078a568be546f5d6d8 | |
parent | 445e8af844ef6f120a5e406271dbeabad34ed47a (diff) | |
download | Qt-0d2f1562d63cf51d254a5761bf37ce36120cfcfd.zip Qt-0d2f1562d63cf51d254a5761bf37ce36120cfcfd.tar.gz Qt-0d2f1562d63cf51d254a5761bf37ce36120cfcfd.tar.bz2 |
QPlastiqueStyle: Fix painting QTreeView with gradient
When setting a gradian brush as a base for a QTreeWidget (with
stylesheet), the branch decoration would be plain black.
This is because the color() of a gradient brush is always black.
Fix it by using the base brush itself to paint the decoration if
the brush is not solid color.
Task-number: QTBUG-3816
Reviewed-by: Thierry
-rw-r--r-- | src/gui/styles/qplastiquestyle.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/gui/styles/qplastiquestyle.cpp b/src/gui/styles/qplastiquestyle.cpp index f880351..be4fff2 100644 --- a/src/gui/styles/qplastiquestyle.cpp +++ b/src/gui/styles/qplastiquestyle.cpp @@ -1094,8 +1094,6 @@ void QPlastiqueStyle::drawPrimitive(PrimitiveElement element, const QStyleOption QColor borderColor = option->palette.background().color().darker(178); QColor gradientStartColor = option->palette.button().color().lighter(104); QColor gradientStopColor = option->palette.button().color().darker(105); - QColor baseGradientStartColor = option->palette.base().color().darker(101); - QColor baseGradientStopColor = option->palette.base().color().darker(106); QColor highlightedGradientStartColor = option->palette.button().color().lighter(101); QColor highlightedGradientStopColor = mergedColors(option->palette.button().color(), option->palette.highlight().color(), 85); QColor highlightedBaseGradientStartColor = option->palette.base().color(); @@ -1978,7 +1976,13 @@ void QPlastiqueStyle::drawPrimitive(PrimitiveElement element, const QStyleOption QRect gradientRect(adjustedRect.left() + 1, adjustedRect.top() + 1, adjustedRect.right() - adjustedRect.left() - 1, adjustedRect.bottom() - adjustedRect.top() - 1); - qt_plastique_draw_gradient(painter, gradientRect, baseGradientStartColor, baseGradientStopColor); + if (option->palette.base().style() == Qt::SolidPattern) { + QColor baseGradientStartColor = option->palette.base().color().darker(101); + QColor baseGradientStopColor = option->palette.base().color().darker(106); + qt_plastique_draw_gradient(painter, gradientRect, baseGradientStartColor, baseGradientStopColor); + } else { + painter->fillRect(gradientRect, option->palette.base()); + } // draw "+" or "-" painter->setPen(alphaTextColor); painter->drawLine(center.x() - 2, center.y(), center.x() + 2, center.y()); |