diff options
author | Norwegian Rock Cat <qt-info@nokia.com> | 2009-07-03 13:29:33 +0200 |
---|---|---|
committer | Norwegian Rock Cat <qt-info@nokia.com> | 2009-07-03 13:29:33 +0200 |
commit | bf4ff76ad2036603a702cee9ecdb57172d520e4b (patch) | |
tree | 55eaf7006eee3e14d0ed097297619f67da90fd4f | |
parent | 6336831866eabf3347ba6b1ba953967ee414f87f (diff) |
Fix disabled text rendering
Seems I need to set the color group myself since the widget itself has a separate enabled state.
-rw-r--r-- | src/qtsegmentcontrol.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/qtsegmentcontrol.cpp b/src/qtsegmentcontrol.cpp index 762b40f..00e21c3 100644 --- a/src/qtsegmentcontrol.cpp +++ b/src/qtsegmentcontrol.cpp @@ -66,7 +66,8 @@ static void drawSegmentControlSegmentSegment(const QStyleOption *option, QPainte HIThemeSegmentDrawInfo sgi; bool selected = (segment->state & QStyle::State_Selected); sgi.version = 0; - sgi.state = getDrawState(segment->state); + // Things look the same regardless of enabled. + sgi.state = getDrawState(segment->state | QStyle::State_Enabled); sgi.value = selected ? kThemeButtonOn : kThemeButtonOff; sgi.size = kHIThemeSegmentSizeNormal; sgi.kind = kHIThemeSegmentKindNormal; @@ -122,8 +123,12 @@ static void drawSegmentControlSegmentLabel(const QStyleOption *option, QPainter { if (const QtStyleOptionSegmentControlSegment *segment = static_cast<const QtStyleOptionSegmentControlSegment *>(option)) { - qApp->style()->drawItemText(painter, segment->rect, Qt::AlignCenter, segment->palette, - segment->state & QStyle::State_Enabled, segment->text); + QPalette palette = segment->palette; + bool enabled = segment->state & QStyle::State_Enabled; + if (!enabled) + palette.setCurrentColorGroup(QPalette::Disabled); + qApp->style()->drawItemText(painter, segment->rect, Qt::AlignCenter, palette, + enabled, segment->text, QPalette::WindowText); } } |