summaryrefslogtreecommitdiffstats
path: root/src/widgets/styles/qcommonstyle.cpp
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2021-07-19 14:02:10 +0200
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2021-07-20 15:20:21 +0200
commitaa5a595a98f1af4a514485268a18e6cb9cfec783 (patch)
tree0482cf97089a3d19d9710a86f0f836ad41171b56 /src/widgets/styles/qcommonstyle.cpp
parent33c916577389fa6607b0b2f6a78da4a0eb485000 (diff)
QStyle: Add SP_TabCloseButton
Move the static tabBarCloseButtonIcon helper into the standardIcon() implementation, simplified by using QIcon::addFile and the iconResourcePrefix helper. Add corresponding support in standardPixmap(). Use standardIcon() in PE_IndicatorTabClose where tabBarCloseButtonIcon() was previously used to get the icon, leave the caching in place. Fixes: QTBUG-95264 Change-Id: I89c161734553db762caa29f8ab738e3c6e64ea0a Reviewed-by: David Faure <david.faure@kdab.com>
Diffstat (limited to 'src/widgets/styles/qcommonstyle.cpp')
-rw-r--r--src/widgets/styles/qcommonstyle.cpp42
1 files changed, 17 insertions, 25 deletions
diff --git a/src/widgets/styles/qcommonstyle.cpp b/src/widgets/styles/qcommonstyle.cpp
index 9d09fbe2b5..d784315ca7 100644
--- a/src/widgets/styles/qcommonstyle.cpp
+++ b/src/widgets/styles/qcommonstyle.cpp
@@ -126,30 +126,6 @@ static qreal qt_getDevicePixelRatio(const QWidget *widget)
return widget ? widget->devicePixelRatio() : qApp->devicePixelRatio();
}
-static QIcon tabBarCloseButtonIcon()
-{
- QIcon result;
- result.addPixmap(QPixmap(
- QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-closetab-16.png")),
- QIcon::Normal, QIcon::Off);
- result.addPixmap(QPixmap(
- QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-closetab-32.png")),
- QIcon::Normal, QIcon::Off);
- result.addPixmap(QPixmap(
- QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-closetab-down-16.png")),
- QIcon::Normal, QIcon::On);
- result.addPixmap(QPixmap(
- QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-closetab-down-32.png")),
- QIcon::Normal, QIcon::On);
- result.addPixmap(QPixmap(
- QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-closetab-hover-16.png")),
- QIcon::Active, QIcon::Off);
- result.addPixmap(QPixmap(
- QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-closetab-hover-32.png")),
- QIcon::Active, QIcon::Off);
- return result;
-}
-
/*!
\class QCommonStyle
\brief The QCommonStyle class encapsulates the common Look and Feel of a GUI.
@@ -441,7 +417,7 @@ void QCommonStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, Q
break;
case PE_IndicatorTabClose: {
if (d->tabBarcloseButtonIcon.isNull())
- d->tabBarcloseButtonIcon = tabBarCloseButtonIcon();
+ d->tabBarcloseButtonIcon = proxy()->standardIcon(QStyle::SP_TabCloseButton, opt, widget);
const int size = proxy()->pixelMetric(QStyle::PM_SmallIconSize, opt);
QIcon::Mode mode = opt->state & State_Enabled ?
@@ -5775,6 +5751,8 @@ QPixmap QCommonStyle::standardPixmap(StandardPixmap sp, const QStyleOption *opti
return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-volume-muted-16.png"));
case SP_LineEditClearButton:
return QPixmap(clearText16IconPath());
+ case SP_TabCloseButton:
+ return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-closetab-16.png"));
#endif // QT_NO_IMAGEFORMAT_PNG
default:
break;
@@ -6392,6 +6370,20 @@ QIcon QCommonStyle::standardIcon(StandardPixmap standardIcon, const QStyleOption
toolBarExtVSizes, sizeof(toolBarExtVSizes)/sizeof(toolBarExtVSizes[0]), icon);
break;
#endif // QT_NO_IMAGEFORMAT_PNG
+ case SP_TabCloseButton:
+ icon.addFile(iconResourcePrefix() + u"standardbutton-closetab-16.png", QSize(16, 16),
+ QIcon::Normal, QIcon::Off);
+ icon.addFile(iconResourcePrefix() + u"standardbutton-closetab-32.png", QSize(32, 32),
+ QIcon::Normal, QIcon::Off);
+ icon.addFile(iconResourcePrefix() + u"standardbutton-closetab-down-16.png", QSize(16, 16),
+ QIcon::Normal, QIcon::On);
+ icon.addFile(iconResourcePrefix() + u"standardbutton-closetab-down-32.png", QSize(32, 32),
+ QIcon::Normal, QIcon::On);
+ icon.addFile(iconResourcePrefix() + u"standardbutton-closetab-hover-16.png", QSize(16, 16),
+ QIcon::Active, QIcon::Off);
+ icon.addFile(iconResourcePrefix() + u"standardbutton-closetab-hover-16.png", QSize(32, 32),
+ QIcon::Active, QIcon::Off);
+ break;
default:
icon.addPixmap(proxy()->standardPixmap(standardIcon, option, widget));
break;