Fixed text rendering in selected tab button
We resort to custom Qt rendering when selected since it looks better than using Carbon's HITheme engine. Change-Id: Iefcc2bebb1ba58d0d99f078c4960c5126542f637 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
This commit is contained in:
parent
0ef459d7a2
commit
65b39b3cdc
@ -4002,13 +4002,17 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
|
||||
QStyleOptionTabV3 myTab = *tab;
|
||||
ThemeTabDirection ttd = getTabDirection(myTab.shape);
|
||||
bool verticalTabs = ttd == kThemeTabWest || ttd == kThemeTabEast;
|
||||
bool selected = (myTab.state & QStyle::State_Selected);
|
||||
|
||||
if (selected && !myTab.documentMode)
|
||||
myTab.palette.setColor(QPalette::WindowText, QColor(Qt::white));
|
||||
|
||||
// Check to see if we use have the same as the system font
|
||||
// (QComboMenuItem is internal and should never be seen by the
|
||||
// outside world, unless they read the source, in which case, it's
|
||||
// their own fault).
|
||||
bool nonDefaultFont = p->font() != qt_app_fonts_hash()->value("QComboMenuItem");
|
||||
if (verticalTabs || nonDefaultFont || !tab->icon.isNull()
|
||||
if (selected || verticalTabs || nonDefaultFont || !tab->icon.isNull()
|
||||
|| !myTab.leftButtonSize.isNull() || !myTab.rightButtonSize.isNull()) {
|
||||
int heightOffset = 0;
|
||||
if (verticalTabs) {
|
||||
@ -4019,12 +4023,15 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
|
||||
}
|
||||
myTab.rect.setHeight(myTab.rect.height() + heightOffset);
|
||||
|
||||
if (myTab.documentMode) {
|
||||
if (myTab.documentMode || selected) {
|
||||
p->save();
|
||||
rotateTabPainter(p, myTab.shape, myTab.rect);
|
||||
|
||||
QColor shadowColor = QColor(myTab.documentMode ? Qt::white : Qt::black);
|
||||
shadowColor.setAlpha(75);
|
||||
QPalette np = tab->palette;
|
||||
np.setColor(QPalette::WindowText, QColor(255, 255, 255, 75));
|
||||
np.setColor(QPalette::WindowText, shadowColor);
|
||||
|
||||
QRect nr = subElementRect(SE_TabBarTabText, opt, w);
|
||||
nr.moveTop(-1);
|
||||
int alignment = Qt::AlignCenter | Qt::TextShowMnemonic | Qt::TextHideMnemonic;
|
||||
|
Loading…
Reference in New Issue
Block a user