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/63029
Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
Tested-by: Katarina Behrens <Katarina.Behrens@cib.de>
diff --git a/vcl/qt5/Qt5Bitmap.cxx b/vcl/qt5/Qt5Bitmap.cxx
index eb2037c..defd028 100644
--- a/vcl/qt5/Qt5Bitmap.cxx
+++ b/vcl/qt5/Qt5Bitmap.cxx
@@ -63,6 +63,7 @@
    else
    {
        m_pImage.reset(new QImage(toQSize(rSize), getBitFormat(nBitCount)));
        m_pImage->fill(Qt::transparent);
        m_pBuffer.reset();
    }
    m_aPalette = rPal;
@@ -129,7 +130,7 @@
        // convert 4bit indexed palette to 32bit ARGB
        m_pImage.reset(new QImage(pBitmap->m_aSize.Width(), pBitmap->m_aSize.Height(),
                                  getBitFormat(nNewBitCount)));
        m_pImage->fill(0);
        m_pImage->fill(Qt::transparent);

        // prepare a whole palette
        const BitmapPalette& rPal = pBitmap->m_aPalette;
diff --git a/vcl/qt5/Qt5Frame.cxx b/vcl/qt5/Qt5Frame.cxx
index f6428af..ad043eb 100644
--- a/vcl/qt5/Qt5Frame.cxx
+++ b/vcl/qt5/Qt5Frame.cxx
@@ -211,6 +211,7 @@
        {
            m_pQt5Graphics.reset(new Qt5Graphics(this));
            m_pQImage.reset(new QImage(m_pQWidget->size(), Qt5_DefaultFormat32));
            m_pQImage->fill(Qt::transparent);
            m_pQt5Graphics->ChangeQImage(m_pQImage.get());
        }
        return m_pQt5Graphics.get();
diff --git a/vcl/qt5/Qt5VirtualDevice.cxx b/vcl/qt5/Qt5VirtualDevice.cxx
index a26ec62..f1c7d96 100644
--- a/vcl/qt5/Qt5VirtualDevice.cxx
+++ b/vcl/qt5/Qt5VirtualDevice.cxx
@@ -76,6 +76,7 @@
            m_pImage.reset(new QImage(nNewDX, nNewDY, Qt5_DefaultFormat32));
    }

    m_pImage->fill(Qt::transparent);
    m_pImage->setDevicePixelRatio(m_fScale);

    // update device in existing graphics
diff --git a/vcl/qt5/Qt5Widget.cxx b/vcl/qt5/Qt5Widget.cxx
index 9edb7d1..1c032e2 100644
--- a/vcl/qt5/Qt5Widget.cxx
+++ b/vcl/qt5/Qt5Widget.cxx
@@ -86,7 +86,17 @@
    }
    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_pQImage.reset(pImage);
    }