Kaydet (Commit) 5edc23db authored tarafından Aleksei Nikiforov's avatar Aleksei Nikiforov Kaydeden (comit) Katarina Behrens

tdf#120777 KDE5: Update initialization of QImages

Make sure that created empty QImages are filled with transparent pixels.

Copying data from previous QImage on widget resize removes blanking
on window resize when qt5 vcl plugin is used.

Change-Id: If072a4b8b334bc87dbe4aaea9aa8774bb5e202ee
Reviewed-on: https://gerrit.libreoffice.org/63029Reviewed-by: 's avatarKatarina Behrens <Katarina.Behrens@cib.de>
Tested-by: 's avatarKatarina Behrens <Katarina.Behrens@cib.de>
üst 84a0496d
...@@ -63,6 +63,7 @@ bool Qt5Bitmap::Create(const Size& rSize, sal_uInt16 nBitCount, const BitmapPale ...@@ -63,6 +63,7 @@ bool Qt5Bitmap::Create(const Size& rSize, sal_uInt16 nBitCount, const BitmapPale
else else
{ {
m_pImage.reset(new QImage(toQSize(rSize), getBitFormat(nBitCount))); m_pImage.reset(new QImage(toQSize(rSize), getBitFormat(nBitCount)));
m_pImage->fill(Qt::transparent);
m_pBuffer.reset(); m_pBuffer.reset();
} }
m_aPalette = rPal; m_aPalette = rPal;
...@@ -129,7 +130,7 @@ bool Qt5Bitmap::Create(const SalBitmap& rSalBmp, sal_uInt16 nNewBitCount) ...@@ -129,7 +130,7 @@ bool Qt5Bitmap::Create(const SalBitmap& rSalBmp, sal_uInt16 nNewBitCount)
// convert 4bit indexed palette to 32bit ARGB // convert 4bit indexed palette to 32bit ARGB
m_pImage.reset(new QImage(pBitmap->m_aSize.Width(), pBitmap->m_aSize.Height(), m_pImage.reset(new QImage(pBitmap->m_aSize.Width(), pBitmap->m_aSize.Height(),
getBitFormat(nNewBitCount))); getBitFormat(nNewBitCount)));
m_pImage->fill(0); m_pImage->fill(Qt::transparent);
// prepare a whole palette // prepare a whole palette
const BitmapPalette& rPal = pBitmap->m_aPalette; const BitmapPalette& rPal = pBitmap->m_aPalette;
......
...@@ -211,6 +211,7 @@ SalGraphics* Qt5Frame::AcquireGraphics() ...@@ -211,6 +211,7 @@ SalGraphics* Qt5Frame::AcquireGraphics()
{ {
m_pQt5Graphics.reset(new Qt5Graphics(this)); m_pQt5Graphics.reset(new Qt5Graphics(this));
m_pQImage.reset(new QImage(m_pQWidget->size(), Qt5_DefaultFormat32)); m_pQImage.reset(new QImage(m_pQWidget->size(), Qt5_DefaultFormat32));
m_pQImage->fill(Qt::transparent);
m_pQt5Graphics->ChangeQImage(m_pQImage.get()); m_pQt5Graphics->ChangeQImage(m_pQImage.get());
} }
return m_pQt5Graphics.get(); return m_pQt5Graphics.get();
......
...@@ -76,6 +76,7 @@ bool Qt5VirtualDevice::SetSizeUsingBuffer(long nNewDX, long nNewDY, sal_uInt8* p ...@@ -76,6 +76,7 @@ bool Qt5VirtualDevice::SetSizeUsingBuffer(long nNewDX, long nNewDY, sal_uInt8* p
m_pImage.reset(new QImage(nNewDX, nNewDY, Qt5_DefaultFormat32)); m_pImage.reset(new QImage(nNewDX, nNewDY, Qt5_DefaultFormat32));
} }
m_pImage->fill(Qt::transparent);
m_pImage->setDevicePixelRatio(m_fScale); m_pImage->setDevicePixelRatio(m_fScale);
// update device in existing graphics // update device in existing graphics
......
...@@ -86,7 +86,17 @@ void Qt5Widget::resizeEvent(QResizeEvent* pEvent) ...@@ -86,7 +86,17 @@ void Qt5Widget::resizeEvent(QResizeEvent* pEvent)
} }
else else
{ {
QImage* pImage = new QImage(size(), Qt5_DefaultFormat32); QImage* pImage = nullptr;
if (m_pFrame->m_pQImage)
pImage = new QImage(
m_pFrame->m_pQImage->copy(0, 0, pEvent->size().width(), pEvent->size().height()));
else
{
pImage = new QImage(size(), Qt5_DefaultFormat32);
pImage->fill(Qt::transparent);
}
m_pFrame->m_pQt5Graphics->ChangeQImage(pImage); m_pFrame->m_pQt5Graphics->ChangeQImage(pImage);
m_pFrame->m_pQImage.reset(pImage); m_pFrame->m_pQImage.reset(pImage);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment