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