animatedValue fixed

This commit is contained in:
Uwe Rathmann 2019-04-19 17:04:36 +02:00
parent d03779cc6d
commit 925613b81c
1 changed files with 15 additions and 5 deletions

View File

@ -395,8 +395,7 @@ QskAnimationHint QskSkinnable::effectiveAnimation(
return hint; return hint;
} }
const QskSkin* skin = effectiveSkin(); if ( auto skin = effectiveSkin() )
if ( skin )
{ {
const auto a = skin->hintTable().resolvedAnimator( aspect, hint ); const auto a = skin->hintTable().resolvedAnimator( aspect, hint );
if ( a.isAnimator() ) if ( a.isAnimator() )
@ -485,13 +484,24 @@ QVariant QskSkinnable::animatedValue(
if ( aspect.state() == QskAspect::NoState ) if ( aspect.state() == QskAspect::NoState )
aspect = aspect | skinState(); aspect = aspect | skinState();
const auto aspect0 = aspect;
Q_FOREVER Q_FOREVER
{ {
v = QskSkinTransition::animatedHint( control->window(), aspect ); Q_FOREVER
if ( v.isValid() || aspect.state() == QskAspect::NoState ) {
v = QskSkinTransition::animatedHint( control->window(), aspect );
if ( v.isValid() || aspect.state() == QskAspect::NoState )
break;
aspect.clearState( aspect.topState() );
}
if ( v.isValid() || aspect.placement() == QskAspect::NoPlacement )
break; break;
aspect.clearState( aspect.topState() ); aspect = aspect0;
aspect.setPlacement( QskAspect::NoPlacement );
} }
} }
} }