From b034f131d58309e5e028e29897845f6dc69d2159 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Mon, 27 Jan 2025 09:06:24 +0100 Subject: [PATCH] avoid pointless transition when setting the color scheme initially --- src/controls/QskSkin.cpp | 6 +++++- src/controls/QskSkinManager.cpp | 5 +++++ src/controls/QskSkinManager.h | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/controls/QskSkin.cpp b/src/controls/QskSkin.cpp index 685ebeab..f4eec4c7 100644 --- a/src/controls/QskSkin.cpp +++ b/src/controls/QskSkin.cpp @@ -262,7 +262,11 @@ void QskSkin::setColorScheme( ColorScheme colorScheme ) m_data->colorScheme = colorScheme; - const auto transitionHint = qskSkinManager->transitionHint(); + QskAnimationHint transitionHint; + + if ( qskSkinManager->currentSkin() == this ) + transitionHint = qskSkinManager->transitionHint(); + if ( transitionHint.isValid() ) { QskSkinTransition transition; diff --git a/src/controls/QskSkinManager.cpp b/src/controls/QskSkinManager.cpp index cff2f4bc..cf9877c3 100644 --- a/src/controls/QskSkinManager.cpp +++ b/src/controls/QskSkinManager.cpp @@ -625,6 +625,11 @@ QskSkin* QskSkinManager::skin() return m_data->skin; } +const QskSkin* QskSkinManager::currentSkin() const +{ + return m_data->skin; +} + void QskSkinManager::setTransitionHint( const QskAnimationHint& hint ) { m_data->transitionHint = hint; diff --git a/src/controls/QskSkinManager.h b/src/controls/QskSkinManager.h index 188951cc..2ac58932 100644 --- a/src/controls/QskSkinManager.h +++ b/src/controls/QskSkinManager.h @@ -46,6 +46,8 @@ class QSK_EXPORT QskSkinManager : public QObject void setSkin( QskSkin* ); QskSkin* skin(); + const QskSkin* currentSkin() const ; + QskSkin* setSkin( const QString& ); QString skinName() const;