diff options
author | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2015-01-12 14:57:08 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-02-02 22:05:31 +0000 |
commit | 9cd5c614559159fe09b414d568f88a192405b84d (patch) | |
tree | 6e577b7b00862e94a29f6b974d80ef73ca3c23fd /tests/auto/gui/painting/qbrush | |
parent | cc7d84e09ed824af96aa5e59ba8f3a6522e7d7e6 (diff) |
Avoid unneeded QBrush::texture() calls
If a QBrush has been created without QPixmap the texture() method will
create one. This patch avoids that in several places by checking the
type of the texture brush before accessing it, or not accessing it at
all.
Task-number: QTBUG-43766
Change-Id: If6009fe1d5bd51b239ae2c838e5c3b904b56b11a
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Diffstat (limited to 'tests/auto/gui/painting/qbrush')
-rw-r--r-- | tests/auto/gui/painting/qbrush/tst_qbrush.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/auto/gui/painting/qbrush/tst_qbrush.cpp b/tests/auto/gui/painting/qbrush/tst_qbrush.cpp index d252a0e87c..8be9973c64 100644 --- a/tests/auto/gui/painting/qbrush/tst_qbrush.cpp +++ b/tests/auto/gui/painting/qbrush/tst_qbrush.cpp @@ -69,6 +69,8 @@ private slots: void nullBrush(); void isOpaque(); void debug(); + + void textureBrushStream(); }; @@ -407,5 +409,42 @@ void tst_QBrush::debug() qDebug() << pixmap_brush; // don't crash } +void tst_QBrush::textureBrushStream() +{ + QPixmap pixmap_source(10, 10); + QImage image_source(10, 10, QImage::Format_RGB32); + + fill(&pixmap_source); + fill(&image_source); + + QBrush pixmap_brush; + pixmap_brush.setTexture(pixmap_source); + QBrush image_brush; + image_brush.setTextureImage(image_source); + + QByteArray data1; + QByteArray data2; + { + QDataStream stream1(&data1, QIODevice::WriteOnly); + QDataStream stream2(&data2, QIODevice::WriteOnly); + stream1 << pixmap_brush; + stream2 << image_brush; + } + + QBrush loadedBrush1; + QBrush loadedBrush2; + { + QDataStream stream1(&data1, QIODevice::ReadOnly); + QDataStream stream2(&data2, QIODevice::ReadOnly); + stream1 >> loadedBrush1; + stream2 >> loadedBrush2; + } + + QCOMPARE(loadedBrush1.style(), Qt::TexturePattern); + QCOMPARE(loadedBrush2.style(), Qt::TexturePattern); + QCOMPARE(loadedBrush1.texture(), pixmap_source); + QCOMPARE(loadedBrush2.textureImage(), image_source); +} + QTEST_MAIN(tst_QBrush) #include "tst_qbrush.moc" |