From 775dca57922bde119f563d07e83526b4218095b6 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Sat, 22 Dec 2018 16:11:24 +0100 Subject: [PATCH] QskSkinnable::setSkinState added to be able to have transitions between states that differ in more than one flag --- src/controls/QskSkinnable.cpp | 11 ++++++++--- src/controls/QskSkinnable.h | 2 ++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/controls/QskSkinnable.cpp b/src/controls/QskSkinnable.cpp index b7178399..8da2f440 100644 --- a/src/controls/QskSkinnable.cpp +++ b/src/controls/QskSkinnable.cpp @@ -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; diff --git a/src/controls/QskSkinnable.h b/src/controls/QskSkinnable.h index 9d8800f2..eec9c6d2 100644 --- a/src/controls/QskSkinnable.h +++ b/src/controls/QskSkinnable.h @@ -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;