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>
This commit is contained in:
parent
33c9165773
commit
aa5a595a98
@ -126,30 +126,6 @@ static qreal qt_getDevicePixelRatio(const QWidget *widget)
|
|||||||
return widget ? widget->devicePixelRatio() : qApp->devicePixelRatio();
|
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
|
\class QCommonStyle
|
||||||
\brief The QCommonStyle class encapsulates the common Look and Feel of a GUI.
|
\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;
|
break;
|
||||||
case PE_IndicatorTabClose: {
|
case PE_IndicatorTabClose: {
|
||||||
if (d->tabBarcloseButtonIcon.isNull())
|
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);
|
const int size = proxy()->pixelMetric(QStyle::PM_SmallIconSize, opt);
|
||||||
QIcon::Mode mode = opt->state & State_Enabled ?
|
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"));
|
return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-volume-muted-16.png"));
|
||||||
case SP_LineEditClearButton:
|
case SP_LineEditClearButton:
|
||||||
return QPixmap(clearText16IconPath());
|
return QPixmap(clearText16IconPath());
|
||||||
|
case SP_TabCloseButton:
|
||||||
|
return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-closetab-16.png"));
|
||||||
#endif // QT_NO_IMAGEFORMAT_PNG
|
#endif // QT_NO_IMAGEFORMAT_PNG
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -6392,6 +6370,20 @@ QIcon QCommonStyle::standardIcon(StandardPixmap standardIcon, const QStyleOption
|
|||||||
toolBarExtVSizes, sizeof(toolBarExtVSizes)/sizeof(toolBarExtVSizes[0]), icon);
|
toolBarExtVSizes, sizeof(toolBarExtVSizes)/sizeof(toolBarExtVSizes[0]), icon);
|
||||||
break;
|
break;
|
||||||
#endif // QT_NO_IMAGEFORMAT_PNG
|
#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:
|
default:
|
||||||
icon.addPixmap(proxy()->standardPixmap(standardIcon, option, widget));
|
icon.addPixmap(proxy()->standardPixmap(standardIcon, option, widget));
|
||||||
break;
|
break;
|
||||||
|
@ -2124,6 +2124,8 @@ void QStyle::drawItemPixmap(QPainter *painter, const QRect &rect, int alignment,
|
|||||||
This enum value was added in Qt 5.14.
|
This enum value was added in Qt 5.14.
|
||||||
\value SP_RestoreDefaultsButton Icon for a standard RestoreDefaults button in a QDialogButtonBox.
|
\value SP_RestoreDefaultsButton Icon for a standard RestoreDefaults button in a QDialogButtonBox.
|
||||||
This enum value was added in Qt 5.14.
|
This enum value was added in Qt 5.14.
|
||||||
|
\value SP_TabCloseButton Icon for the close button in the tab of a QTabBar.
|
||||||
|
This enum value was added in Qt 6.3.
|
||||||
\value SP_CustomBase Base value for custom standard pixmaps;
|
\value SP_CustomBase Base value for custom standard pixmaps;
|
||||||
custom values must be greater than this value.
|
custom values must be greater than this value.
|
||||||
|
|
||||||
|
@ -825,6 +825,7 @@ public:
|
|||||||
SP_DialogRetryButton,
|
SP_DialogRetryButton,
|
||||||
SP_DialogIgnoreButton,
|
SP_DialogIgnoreButton,
|
||||||
SP_RestoreDefaultsButton,
|
SP_RestoreDefaultsButton,
|
||||||
|
SP_TabCloseButton,
|
||||||
// do not add any values below/greater than this
|
// do not add any values below/greater than this
|
||||||
SP_CustomBase = 0xf0000000
|
SP_CustomBase = 0xf0000000
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user