From 2b0a39494f13978a395369aa2af5278ac66745f8 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Wed, 26 Jul 2017 17:48:52 +0200 Subject: [PATCH] interpolating between color-filter and no-color-filter ( and v.v. ) added for skin transitions --- src/controls/QskSkinTransition.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/controls/QskSkinTransition.cpp b/src/controls/QskSkinTransition.cpp index 03398f25..db0328c7 100644 --- a/src/controls/QskSkinTransition.cpp +++ b/src/controls/QskSkinTransition.cpp @@ -63,6 +63,7 @@ static QVector< AnimatorCandidate > qskAnimatorCandidates( // building a list of candidates for animations by comparing // the old/new set of skin hints + const QskColorFilter noFilter; QVector< AnimatorCandidate > candidates; if ( oldMap.empty() ) @@ -89,16 +90,16 @@ static QVector< AnimatorCandidate > qskAnimatorCandidates( const auto it1 = oldFilters.find( entry.second.toInt() ); const auto it2 = newFilters.find( entry.second.toInt() ); - if ( it1 != oldFilters.end() && it2 != newFilters.end() ) + if ( it1 != oldFilters.end() || it2 != newFilters.end() ) { - const auto& filter1 = it1->second; - const auto& filter2 = it2->second; + const auto& f1 = ( it1 != oldFilters.end() ) ? it1->second : noFilter; + const auto& f2 = ( it2 != newFilters.end() ) ? it2->second : noFilter; - if ( filter1 != filter2 ) + if ( f1 != f2 ) { candidates += AnimatorCandidate( aspect, - QVariant::fromValue( filter1 ), - QVariant::fromValue( filter2 ) ); + QVariant::fromValue( f1 ), + QVariant::fromValue( f2 ) ); } } break;