Fusion style: cache pixmap for PE_FrameGroupBox

Don't load the pixmap used for PE_FrameGroupBox on every call to
drawPrimitive(PE_FrameGroupBox, ...) but store it in the QPixmapCache.

Change-Id: I5be6ce8a18cfc17c72dd5217efd5f446ba10ea64
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
(cherry picked from commit 12e8a7173569d03a98fcd47c593a09e55a96801d)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Christian Ehrlicher 2024-11-01 20:51:30 +01:00 committed by Qt Cherry-pick Bot
parent 1171144f48
commit 9493166694

View File

@ -345,7 +345,12 @@ void QFusionStyle::drawPrimitive(PrimitiveElement elem,
// No frame drawn
case PE_FrameGroupBox:
{
QPixmap pixmap(":/qt-project.org/styles/commonstyle/images/fusion_groupbox.png"_L1);
const auto strFrameGroupBox = QStringLiteral(u"fusion_groupbox");
QPixmap pixmap;
if (!QPixmapCache::find(strFrameGroupBox, &pixmap)) {
pixmap.load(":/qt-project.org/styles/commonstyle/images/fusion_groupbox.png"_L1);
QPixmapCache::insert(strFrameGroupBox, pixmap);
}
qDrawBorderPixmap(painter, option->rect, QMargins(6, 6, 6, 6), pixmap);
break;
}