, m_siblingsInfo()
, m_hoverOpacity(0)
, m_hoverCache(nullptr)
- , m_hoverAnimation(nullptr)
, m_hoverSequenceIndex(0)
, m_selectionToggle(nullptr)
, m_editedRole()
delete m_selectionToggle;
m_selectionToggle = nullptr;
- if (m_hoverAnimation) {
- m_hoverAnimation->stop();
- m_hoverOpacity = 0;
- }
+ m_hoverOpacity = 0;
+
clearHoverCache();
m_index = index;
backgroundColor = backgroundColor.darker(101);
}
}
+
const QRectF backgroundRect(0, 0, size().width(), size().height());
painter->fillRect(backgroundRect, backgroundColor);
}
m_hovered = hovered;
- if (!m_hoverAnimation) {
- m_hoverAnimation = new QPropertyAnimation(this, "hoverOpacity", this);
- const int duration = style()->styleHint(QStyle::SH_Widget_Animate) ? 200 : 1;
- m_hoverAnimation->setDuration(duration);
- connect(m_hoverAnimation, &QPropertyAnimation::finished, this, &KItemListWidget::slotHoverAnimationFinished);
- }
- m_hoverAnimation->stop();
-
m_hoverSequenceIndex = 0;
if (hovered) {
- const qreal startValue = qMax(hoverOpacity(), qreal(0.1));
- m_hoverAnimation->setStartValue(startValue);
- m_hoverAnimation->setEndValue(1.0);
+ setHoverOpacity(1.0);
+
if (m_enabledSelectionToggle && !(QApplication::mouseButtons() & Qt::LeftButton)) {
initializeSelectionToggle();
}
m_hoverSequenceTimer.start(interval);
} else {
- m_hoverAnimation->setStartValue(hoverOpacity());
- m_hoverAnimation->setEndValue(0.0);
+ setHoverOpacity(0.0);
+
+ if (m_selectionToggle) {
+ m_selectionToggle->deleteLater();
+ m_selectionToggle = nullptr;
+ }
hoverSequenceEnded();
m_hoverSequenceTimer.stop();
}
- m_hoverAnimation->start();
-
hoveredChanged(hovered);
update();
}
return m_hoverSequenceIndex;
}
-void KItemListWidget::slotHoverAnimationFinished()
-{
- if (!m_hovered && m_selectionToggle) {
- m_selectionToggle->deleteLater();
- m_selectionToggle = nullptr;
- }
-}
-
void KItemListWidget::slotHoverSequenceTimerTimeout()
{
m_hoverSequenceIndex++;