resolving loop harmonized with QskSkinHintTable
This commit is contained in:
parent
54f8591c33
commit
b2d9663a20
@ -484,24 +484,31 @@ QVariant QskSkinnable::animatedValue(
|
|||||||
if ( aspect.state() == QskAspect::NoState )
|
if ( aspect.state() == QskAspect::NoState )
|
||||||
aspect = aspect | skinState();
|
aspect = aspect | skinState();
|
||||||
|
|
||||||
const auto aspect0 = aspect;
|
const auto a = aspect;
|
||||||
|
|
||||||
Q_FOREVER
|
Q_FOREVER
|
||||||
{
|
{
|
||||||
Q_FOREVER
|
v = QskSkinTransition::animatedHint( control->window(), aspect );
|
||||||
{
|
|
||||||
v = QskSkinTransition::animatedHint( control->window(), aspect );
|
|
||||||
if ( v.isValid() || aspect.state() == QskAspect::NoState )
|
|
||||||
break;
|
|
||||||
|
|
||||||
aspect.clearState( aspect.topState() );
|
if ( !v.isValid() )
|
||||||
|
{
|
||||||
|
if ( const auto topState = aspect.topState() )
|
||||||
|
{
|
||||||
|
aspect.clearState( aspect.topState() );
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( aspect.placement() )
|
||||||
|
{
|
||||||
|
// clear the placement bits and restart
|
||||||
|
aspect = a;
|
||||||
|
aspect.setPlacement( QskAspect::NoPlacement );
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( v.isValid() || aspect.placement() == QskAspect::NoPlacement )
|
break;
|
||||||
break;
|
|
||||||
|
|
||||||
aspect = aspect0;
|
|
||||||
aspect.setPlacement( QskAspect::NoPlacement );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user