QMacStyle: account for QStyleSheetStyle using QTabBar directly
in this case w->parentWidget() is not QTabBar, but QTabWidget and we never draw PE_IndicatorTabClose control (before the recent major re-write in qmacstyle we never tested the actual type). Task-number: QTBUG-61092 Change-Id: I87c4813258cc2b483b2ef278c4a2f8796973af1c Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
This commit is contained in:
parent
aa75697b63
commit
d5b3ddffae
@ -3229,7 +3229,13 @@ void QMacStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPai
|
||||
break;
|
||||
case PE_IndicatorTabClose: {
|
||||
// Make close button visible only on the hovered tab.
|
||||
if (QTabBar *tabBar = qobject_cast<QTabBar*>(w->parentWidget())) {
|
||||
QTabBar *tabBar = qobject_cast<QTabBar*>(w->parentWidget());
|
||||
if (!tabBar) {
|
||||
// QStyleSheetStyle instead of CloseButton (which has
|
||||
// a QTabBar as a parent widget) uses the QTabBar itself:
|
||||
tabBar = qobject_cast<QTabBar *>(const_cast<QWidget*>(w));
|
||||
}
|
||||
if (tabBar) {
|
||||
const bool documentMode = tabBar->documentMode();
|
||||
const QTabBarPrivate *tabBarPrivate = static_cast<QTabBarPrivate *>(QObjectPrivate::get(tabBar));
|
||||
const int hoveredTabIndex = tabBarPrivate->hoveredTabIndex();
|
||||
|
Loading…
Reference in New Issue
Block a user