From 9493166694a766a46d3e293ce8a56def6afb3568 Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Fri, 1 Nov 2024 20:51:30 +0100 Subject: [PATCH] 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 (cherry picked from commit 12e8a7173569d03a98fcd47c593a09e55a96801d) Reviewed-by: Qt Cherry-pick Bot --- src/widgets/styles/qfusionstyle.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/widgets/styles/qfusionstyle.cpp b/src/widgets/styles/qfusionstyle.cpp index a52f04db4bf..b0bc41739cd 100644 --- a/src/widgets/styles/qfusionstyle.cpp +++ b/src/widgets/styles/qfusionstyle.cpp @@ -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; }