m_animation(nullptr)
{
m_animation = new QPropertyAnimation(this);
-#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);
if (newState == QAbstractAnimation::Stopped && m_smoothScrolling && !m_scrollBarPressed) {
m_smoothScrolling = false;
}
+ if (newState == QAbstractAnimation::Stopped) {
+ Q_EMIT scrollingStopped();
+ }
}
void KItemListSmoothScroller::handleWheelEvent(QWheelEvent* event)
m_smoothScrolling = true;
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ QWheelEvent *copy = event->clone();
+ QApplication::sendEvent(m_scrollBar, copy);
+ event->setAccepted(copy->isAccepted());
+#else
QWheelEvent copy = *event;
QApplication::sendEvent(m_scrollBar, ©);
event->setAccepted(copy.isAccepted());
+#endif
m_smoothScrolling = previous;
}