summaryrefslogtreecommitdiffstats
path: root/src/widgets/styles/qstylehelper.cpp
diff options
context:
space:
mode:
authorGabriel de Dietrich <gabriel.dedietrich@qt.io>2018-01-04 10:59:11 -0800
committerGabriel de Dietrich <gabriel.dedietrich@qt.io>2018-01-05 17:43:50 +0000
commit1e75dcf2518e37a7b83d006a4e002f972615b43b (patch)
tree6813b0fe52483b0b97367738ff255590e41c2127 /src/widgets/styles/qstylehelper.cpp
parent2226f01d745ca8f90974ce84269e2fa152e44a88 (diff)
QStyleHelper: Use palette cache key in pixmap key
This reverts commit d7bcdc3a442b99c2caebd4cfd38de67e14090e05. Now that QPalette::setBrush() is a bit smarter (see c564779c071b35fddb76f4e50afda4305b634651), we can be confident the palette's cache key won't change so often. Therefore, we can use it again as part of every pixmap's cache key. Change-Id: I5cab2296a937f9149c7745291e0442eea24f4e9d Task-number: QTBUG-65475 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Diffstat (limited to 'src/widgets/styles/qstylehelper.cpp')
-rw-r--r--src/widgets/styles/qstylehelper.cpp21
1 files changed, 1 insertions, 20 deletions
diff --git a/src/widgets/styles/qstylehelper.cpp b/src/widgets/styles/qstylehelper.cpp
index 4f498efac0..373699a7aa 100644
--- a/src/widgets/styles/qstylehelper.cpp
+++ b/src/widgets/styles/qstylehelper.cpp
@@ -51,8 +51,6 @@
#include "qstylehelper_p.h"
#include <qstringbuilder.h>
-#include <qdatastream.h>
-#include <qcryptographichash.h>
QT_BEGIN_NAMESPACE
@@ -66,6 +64,7 @@ QString uniqueName(const QString &key, const QStyleOption *option, const QSize &
QString tmp = key % HexString<uint>(option->state)
% HexString<uint>(option->direction)
% HexString<uint>(complexOption ? uint(complexOption->activeSubControls) : 0u)
+ % HexString<quint64>(option->palette.cacheKey())
% HexString<uint>(size.width())
% HexString<uint>(size.height());
@@ -77,24 +76,6 @@ QString uniqueName(const QString &key, const QStyleOption *option, const QSize &
}
#endif // QT_CONFIG(spinbox)
- // QTBUG-56743, try to create a palette cache key reflecting the value,
- // as leaks may occur in conjunction with QStyleSheetStyle/QRenderRule modifying
- // palettes when using QPalette::cacheKey()
- if (option->palette != QGuiApplication::palette()) {
- tmp.append(QLatin1Char('P'));
-#ifndef QT_NO_DATASTREAM
- QByteArray key;
- key.reserve(5120); // Observed 5040B for a serialized palette on 64bit
- {
- QDataStream str(&key, QIODevice::WriteOnly);
- str << option->palette;
- }
- const QByteArray sha1 = QCryptographicHash::hash(key, QCryptographicHash::Sha1).toHex();
- tmp.append(QString::fromLatin1(sha1));
-#else // QT_NO_DATASTREAM
- tmp.append(QString::number(option->palette.cacheKey(), 16));
-#endif // !QT_NO_DATASTREAM
- }
return tmp;
}