diff options
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/painting/qbrush.cpp | 18 | ||||
-rw-r--r-- | src/gui/painting/qpdf.cpp | 4 |
2 files changed, 16 insertions, 6 deletions
diff --git a/src/gui/painting/qbrush.cpp b/src/gui/painting/qbrush.cpp index d136f3a903..40dad85cde 100644 --- a/src/gui/painting/qbrush.cpp +++ b/src/gui/painting/qbrush.cpp @@ -1029,7 +1029,10 @@ QDataStream &operator<<(QDataStream &s, const QBrush &b) s << style << b.color(); if (b.style() == Qt::TexturePattern) { - s << b.texture(); + if (s.version() >= QDataStream::Qt_5_5) + s << b.textureImage(); + else + s << b.texture(); } else if (s.version() >= QDataStream::Qt_4_0 && gradient_style) { const QGradient *gradient = b.gradient(); int type_as_int = int(gradient->type()); @@ -1089,10 +1092,17 @@ QDataStream &operator>>(QDataStream &s, QBrush &b) QColor color; s >> style; s >> color; + b = QBrush(color); if (style == Qt::TexturePattern) { - QPixmap pm; - s >> pm; - b = QBrush(color, pm); + if (s.version() >= QDataStream::Qt_5_5) { + QImage img; + s >> img; + b.setTextureImage(qMove(img)); + } else { + QPixmap pm; + s >> pm; + b.setTexture(qMove(pm)); + } } else if (style == Qt::LinearGradientPattern || style == Qt::RadialGradientPattern || style == Qt::ConicalGradientPattern) { diff --git a/src/gui/painting/qpdf.cpp b/src/gui/painting/qpdf.cpp index 2efaec41ef..687d8efcec 100644 --- a/src/gui/painting/qpdf.cpp +++ b/src/gui/painting/qpdf.cpp @@ -2264,9 +2264,9 @@ int QPdfEnginePrivate::addBrushPattern(const QTransform &m, bool *specifyColor, if (pattern.isEmpty()) { if (brush.style() != Qt::TexturePattern) return 0; - QImage image = brush.texture().toImage(); + QImage image = brush.textureImage(); bool bitmap = true; - imageObject = addImage(image, &bitmap, brush.texture().cacheKey()); + imageObject = addImage(image, &bitmap, image.cacheKey()); if (imageObject != -1) { QImage::Format f = image.format(); if (f != QImage::Format_MonoLSB && f != QImage::Format_Mono) { |