]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Port away from deprecated QStyle::SH_Widget_Animate
authorElvis Angelaccio <elvis.angelaccio@kde.org>
Sun, 21 Jan 2018 09:50:11 +0000 (10:50 +0100)
committerElvis Angelaccio <elvis.angelaccio@kde.org>
Sat, 27 Jan 2018 16:40:59 +0000 (17:40 +0100)
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

index 17eac3b39ac63abf33e79bfe1f151f0850a95438..77a842838f3350f3d79e98b636b8d11eb7001f43 100644 (file)
@@ -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);