2 changed files with 41 additions and 0 deletions
@ -0,0 +1,40 @@ |
|||
--- src/qt6gtk2-style/qstylehelper_p.h.orig 2025-06-11 06:41:16 UTC |
|||
+++ src/qt6gtk2-style/qstylehelper_p.h |
|||
@@ -43,6 +43,37 @@ |
|||
|
|||
QT_BEGIN_NAMESPACE |
|||
|
|||
+#if (QT_VERSION >= QT_VERSION_CHECK(6, 9, 0)) |
|||
+#define BEGIN_STYLE_PIXMAPCACHE(a) \ |
|||
+ QRect rect = option->rect; \ |
|||
+ QPixmap internalPixmapCache; \ |
|||
+ QPainter *p = painter; \ |
|||
+ const auto dpr = p->device()->devicePixelRatio(); \ |
|||
+ const QString unique = QStyleHelper::uniqueName((a), option, option->rect.size(), dpr); \ |
|||
+ int txType = painter->deviceTransform().type() | painter->worldTransform().type(); \ |
|||
+ const bool doPixmapCache = (!option->rect.isEmpty()) \ |
|||
+ && ((txType <= QTransform::TxTranslate) || (painter->deviceTransform().type() == QTransform::TxScale)); \ |
|||
+ if (doPixmapCache && QPixmapCache::find(unique, &internalPixmapCache)) { \ |
|||
+ painter->drawPixmap(option->rect.topLeft(), internalPixmapCache); \ |
|||
+ } else { \ |
|||
+ if (doPixmapCache) { \ |
|||
+ rect.setRect(0, 0, option->rect.width(), option->rect.height()); \ |
|||
+ internalPixmapCache = styleCachePixmap(option->rect.size(), dpr); \ |
|||
+ p = new QPainter(&internalPixmapCache); \ |
|||
+ } |
|||
+ |
|||
+ |
|||
+ |
|||
+#define END_STYLE_PIXMAPCACHE \ |
|||
+ if (doPixmapCache) { \ |
|||
+ p->end(); \ |
|||
+ delete p; \ |
|||
+ painter->drawPixmap(option->rect.topLeft(), internalPixmapCache); \ |
|||
+ QPixmapCache::insert(unique, internalPixmapCache); \ |
|||
+ } \ |
|||
+ } |
|||
+#endif |
|||
+ |
|||
class QPainter; |
|||
class QPixmap; |
|||
class QStyleOptionSlider; |
|||
Loading…
Reference in new issue