From 7caef6d251a1611842f73a9942f1bfc1dd2ec13b Mon Sep 17 00:00:00 2001 From: Elvis Angelaccio Date: Sun, 21 Jan 2018 10:50:11 +0100 Subject: [PATCH] Port away from deprecated QStyle::SH_Widget_Animate Summary: Use the new QStyle::SH_Widget_Animation_Duration instead, which allows us to not manually hardcode the duration. We still use 1 if animations are disabled, otherwise the scroll would not work at all. See also D5883 for some background. Test Plan: Played with different values in the Animation tab of the Breeze config dialog. Reviewers: #dolphin, broulik Reviewed By: broulik Subscribers: broulik Differential Revision: https://phabricator.kde.org/D10005 --- src/kitemviews/private/kitemlistsmoothscroller.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/kitemviews/private/kitemlistsmoothscroller.cpp b/src/kitemviews/private/kitemlistsmoothscroller.cpp index 17eac3b39a..77a842838f 100644 --- a/src/kitemviews/private/kitemlistsmoothscroller.cpp +++ b/src/kitemviews/private/kitemlistsmoothscroller.cpp @@ -35,8 +35,14 @@ KItemListSmoothScroller::KItemListSmoothScroller(QScrollBar* scrollBar, m_animation(nullptr) { m_animation = new QPropertyAnimation(this); - const int duration = m_scrollBar->style()->styleHint(QStyle::SH_Widget_Animate, nullptr, m_scrollBar) ? 100 : 1; - m_animation->setDuration(duration); +#if QT_VERSION >= QT_VERSION_CHECK(5, 10, 0) + const int animationDuration = m_scrollBar->style()->styleHint(QStyle::SH_Widget_Animation_Duration, nullptr, m_scrollBar); + const bool animationEnabled = (animationDuration > 0); + #else + const int animationDuration = 100; + const bool animationEnabled = m_scrollBar->style()->styleHint(QStyle::SH_Widget_Animate, nullptr, m_scrollBar); +#endif + m_animation->setDuration(animationEnabled ? animationDuration : 1); connect(m_animation, &QPropertyAnimation::stateChanged, this, &KItemListSmoothScroller::slotAnimationStateChanged);