QskSkinnable::setSkinState added to be able to have transitions between

states that differ in more than one flag
This commit is contained in:
Uwe Rathmann 2018-12-22 16:11:24 +01:00
parent 3716b04036
commit 775dca5792
2 changed files with 10 additions and 3 deletions

View File

@ -759,12 +759,17 @@ void QskSkinnable::startTransition( QskAspect::Aspect aspect,
m_data->animators.start( control, aspect, animationHint, from, to ); m_data->animators.start( control, aspect, animationHint, from, to );
} }
void QskSkinnable::setSkinStateFlag( QskAspect::State state, bool on ) void QskSkinnable::setSkinStateFlag( QskAspect::State stateFlag, bool on )
{ {
const auto newState = on const auto newState = on
? ( m_data->skinState | state ) ? ( m_data->skinState | stateFlag )
: ( m_data->skinState & ~state ); : ( m_data->skinState & ~stateFlag );
setSkinState( newState );
}
void QskSkinnable::setSkinState( QskAspect::State newState )
{
if ( m_data->skinState == newState ) if ( m_data->skinState == newState )
return; return;

View File

@ -154,7 +154,9 @@ class QSK_EXPORT QskSkinnable
void debug( QDebug, QskAspect::State ) const; void debug( QDebug, QskAspect::State ) const;
protected: protected:
void setSkinState( QskAspect::State );
void setSkinStateFlag( QskAspect::State, bool = true ); void setSkinStateFlag( QskAspect::State, bool = true );
virtual void updateNode( QSGNode* ); virtual void updateNode( QSGNode* );
virtual bool isTransitionAccepted( QskAspect::Aspect ) const; virtual bool isTransitionAccepted( QskAspect::Aspect ) const;