diff options
author | Gunnar Sletta <gunnar@sletta.org> | 2014-08-23 14:24:05 +0200 |
---|---|---|
committer | Gunnar Sletta <gunnar@sletta.org> | 2014-08-26 06:13:27 +0200 |
commit | 695a9605c6575eafe535c2dbfe94ad3e7697a5a8 (patch) | |
tree | 19912c49d48c63f54bcbaf4583469699827de302 /src | |
parent | b0149afd075e8fa5b86bbe90501f46c4c63a52da (diff) |
Make use of QQuickWindowQObjectCleanup in QQuickImage.
Saves us a few lines..
Change-Id: I572f6fc44ede3b923208ce3563116d8fcc9bb922
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/quick/items/qquickimage.cpp | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/src/quick/items/qquickimage.cpp b/src/quick/items/qquickimage.cpp index ff34fda336..073b107753 100644 --- a/src/quick/items/qquickimage.cpp +++ b/src/quick/items/qquickimage.cpp @@ -93,14 +93,6 @@ QQuickImagePrivate::QQuickImagePrivate() { } -class QQuickImageCleanup : public QRunnable -{ -public: - QQuickImageCleanup(QQuickImageTextureProvider *p) : provider(p) { } - void run() Q_DECL_OVERRIDE { delete provider; } - QQuickImageTextureProvider *provider; -}; - /*! \qmltype Image \instantiates QQuickImage @@ -172,11 +164,10 @@ QQuickImage::QQuickImage(QQuickImagePrivate &dd, QQuickItem *parent) QQuickImage::~QQuickImage() { Q_D(QQuickImage); - if (QQuickWindow *w = window()) { - w->scheduleRenderJob(new QQuickImageCleanup(d->provider), QQuickWindow::AfterSynchronizingStage); - } else { - // Should have been released already in releaseResources or in invalidateSG. - Q_ASSERT(!d->provider); + if (d->provider) { + // We're guaranteed to have a window() here because the provider would have + // been released in releaseResources() if we were gone from a window. + QQuickWindowQObjectCleanupJob::schedule(window(), d->provider); } } @@ -589,7 +580,7 @@ void QQuickImage::releaseResources() { Q_D(QQuickImage); if (d->provider) { - window()->scheduleRenderJob(new QQuickImageCleanup(d->provider), QQuickWindow::AfterSynchronizingStage); + QQuickWindowQObjectCleanupJob::schedule(window(), d->provider); d->provider = 0; } } |