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 );
}
void QskSkinnable::setSkinStateFlag( QskAspect::State state, bool on )
void QskSkinnable::setSkinStateFlag( QskAspect::State stateFlag, bool on )
{
const auto newState = on
? ( m_data->skinState | state )
: ( m_data->skinState & ~state );
? ( m_data->skinState | stateFlag )
: ( m_data->skinState & ~stateFlag );
setSkinState( newState );
}
void QskSkinnable::setSkinState( QskAspect::State newState )
{
if ( m_data->skinState == newState )
return;

View File

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