diff options
author | Marko Kangas <marko.kangas@digia.com> | 2014-10-20 17:51:02 +0300 |
---|---|---|
committer | Marko Kangas <marko.kangas@digia.com> | 2014-10-23 08:30:32 +0200 |
commit | 3056b825bd22ddf17deee03c5c43117ad6aa545e (patch) | |
tree | fc3caa11a8c7bbefca98ecd312486bd0c8db0ef4 /src | |
parent | c399e4b7ea0b10dd7eb71ebe3ccea3c6134f25ba (diff) |
Fix styled vertical dockwidget title cut off bug and elide text if long
Change common stylesheet to elide text correctly for both direction.
Change-Id: I045f6f74733ca8fa67b3e4fbb9d3845a1bea777d
Task-number: QTBUG-41466
Reviewed-by: Jens Bache-Wiig <jensbw@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/widgets/styles/qstylesheetstyle.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/widgets/styles/qstylesheetstyle.cpp b/src/widgets/styles/qstylesheetstyle.cpp index a6c7f5dde2..a9e13bad49 100644 --- a/src/widgets/styles/qstylesheetstyle.cpp +++ b/src/widgets/styles/qstylesheetstyle.cpp @@ -4047,26 +4047,28 @@ void QStyleSheetStyle::drawControl(ControlElement ce, const QStyleOption *opt, Q } if (!dwOpt->title.isEmpty()) { - QRect r = opt->rect; + QRect r = subElementRect(SE_DockWidgetTitleBarText, opt, w); if (dwOpt->verticalTitleBar) { QSize s = r.size(); s.transpose(); r.setSize(s); - p->save(); p->translate(r.left(), r.top() + r.width()); p->rotate(-90); p->translate(-r.left(), -r.top()); } + r = subRule.contentsRect(r); Qt::Alignment alignment = 0; if (subRule.hasPosition()) alignment = subRule.position()->textAlignment; if (alignment == 0) alignment = Qt::AlignLeft; - drawItemText(p, subRule.contentsRect(opt->rect), + + QString titleText = p->fontMetrics().elidedText(dwOpt->title, Qt::ElideRight, r.width()); + drawItemText(p, r, alignment | Qt::TextShowMnemonic, dwOpt->palette, - dwOpt->state & State_Enabled, dwOpt->title, + dwOpt->state & State_Enabled, titleText, QPalette::WindowText); if (dwOpt->verticalTitleBar) |