diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2021-03-31 11:26:23 +0200 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2021-04-13 10:16:04 +0200 |
commit | 94b624586931d8aead96195dd498310ac8e8bdd6 (patch) | |
tree | 81aac876f60ffc1a21e0ee0b01d4dbe44a4c70c3 /src/imports/controls/imagine/qquickninepatchimage.cpp | |
parent | 9b62b6b44338dbaa3de1fe888d2b9d4b36eca947 (diff) |
Ninepatch: keep resetNode status to not lose track of ImageNode->NinePatchNode changes
Fixes: QTBUG-87236
Change-Id: Ie8371de8a9d49054c888e4bffb7e89392a6d7c07
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
(cherry picked from commit 764b21987e36bc0734b7e8c9aab0e0d25771b56e)
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Diffstat (limited to 'src/imports/controls/imagine/qquickninepatchimage.cpp')
-rw-r--r-- | src/imports/controls/imagine/qquickninepatchimage.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/imports/controls/imagine/qquickninepatchimage.cpp b/src/imports/controls/imagine/qquickninepatchimage.cpp index 76d36138..f2884415 100644 --- a/src/imports/controls/imagine/qquickninepatchimage.cpp +++ b/src/imports/controls/imagine/qquickninepatchimage.cpp @@ -386,7 +386,12 @@ void QQuickNinePatchImage::pixmapChange() { Q_D(QQuickNinePatchImage); if (QFileInfo(d->url.fileName()).completeSuffix().toLower() == QLatin1String("9.png")) { - d->resetNode = d->ninePatch.isNull(); + // Keep resetNode if it is already set, we do not want to miss an + // ImageNode->NinePatchNode change. Without this there's a chance one gets + // an incorrect cast on oldNode every once in a while with source changes. + if (!d->resetNode) + d->resetNode = d->ninePatch.isNull(); + d->ninePatch = d->pix.image(); if (d->ninePatch.depth() != 32) d->ninePatch = d->ninePatch.convertToFormat(QImage::Format_ARGB32); |