From 435c23be984691e3de645ae8ddff440e5f1786dd Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Thu, 3 Dec 2015 18:15:00 +0100 Subject: StackView: fix crash when attempting to transition null items Don't attempt to kick off view transitions for stack elements that have failed to load. Change-Id: I6e42785a30abc815d14a07e7d16aad5bde66391d Reviewed-by: Mitch Curtis --- src/templates/qquickstackview_p.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/templates/qquickstackview_p.cpp') diff --git a/src/templates/qquickstackview_p.cpp b/src/templates/qquickstackview_p.cpp index 1a08d349..ffd9934e 100644 --- a/src/templates/qquickstackview_p.cpp +++ b/src/templates/qquickstackview_p.cpp @@ -405,13 +405,13 @@ void QQuickStackViewPrivate::popTransition(QQuickStackElement *enter, QQuickStac } if (exit) { - if (immediate || !exit->prepareTransition(transitioner, viewBounds)) + if (immediate || !exit->item || !exit->prepareTransition(transitioner, viewBounds)) completeTransition(exit, transitioner->removeTransition); else exit->startTransition(transitioner); } if (enter) { - if (immediate || !enter->prepareTransition(transitioner, QRectF())) + if (immediate || !enter->item || !enter->prepareTransition(transitioner, QRectF())) completeTransition(enter, transitioner->removeDisplacedTransition); else enter->startTransition(transitioner); @@ -437,13 +437,13 @@ void QQuickStackViewPrivate::pushTransition(QQuickStackElement *enter, QQuickSta } if (enter) { - if (immediate || !enter->prepareTransition(transitioner, viewBounds)) + if (immediate || !enter->item || !enter->prepareTransition(transitioner, viewBounds)) completeTransition(enter, transitioner->addTransition); else enter->startTransition(transitioner); } if (exit) { - if (immediate || !exit->prepareTransition(transitioner, QRectF())) + if (immediate || !exit->item || !exit->prepareTransition(transitioner, QRectF())) completeTransition(exit, transitioner->addDisplacedTransition); else exit->startTransition(transitioner); @@ -470,13 +470,13 @@ void QQuickStackViewPrivate::replaceTransition(QQuickStackElement *enter, QQuick } if (exit) { - if (immediate || !exit->prepareTransition(transitioner, QRectF())) + if (immediate || !exit->item || !exit->prepareTransition(transitioner, QRectF())) completeTransition(exit, transitioner->moveDisplacedTransition); else exit->startTransition(transitioner); } if (enter) { - if (immediate || !enter->prepareTransition(transitioner, viewBounds)) + if (immediate || !enter->item || !enter->prepareTransition(transitioner, viewBounds)) completeTransition(enter, transitioner->moveTransition); else enter->startTransition(transitioner); -- cgit v1.2.3