Removes hover fade animations for the file item.
Hovering is more effective when it provides instant feedback. Over the
years, we have moved in the direction of removing animations entirely
from our hover-based list and grid views to alleviate a perceived
sluggishness.
, m_siblingsInfo()
, m_hoverOpacity(0)
, m_hoverCache(nullptr)
, m_siblingsInfo()
, m_hoverOpacity(0)
, m_hoverCache(nullptr)
- , m_hoverAnimation(nullptr)
, m_hoverSequenceIndex(0)
, m_selectionToggle(nullptr)
, m_editedRole()
, m_hoverSequenceIndex(0)
, m_selectionToggle(nullptr)
, m_editedRole()
delete m_selectionToggle;
m_selectionToggle = nullptr;
delete m_selectionToggle;
m_selectionToggle = nullptr;
- if (m_hoverAnimation) {
- m_hoverAnimation->stop();
- m_hoverOpacity = 0;
- }
clearHoverCache();
m_index = index;
clearHoverCache();
m_index = index;
backgroundColor = backgroundColor.darker(101);
}
}
backgroundColor = backgroundColor.darker(101);
}
}
const QRectF backgroundRect(0, 0, size().width(), size().height());
painter->fillRect(backgroundRect, backgroundColor);
}
const QRectF backgroundRect(0, 0, size().width(), size().height());
painter->fillRect(backgroundRect, backgroundColor);
}
- 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) {
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();
}
if (m_enabledSelectionToggle && !(QApplication::mouseButtons() & Qt::LeftButton)) {
initializeSelectionToggle();
}
m_hoverSequenceTimer.start(interval);
} else {
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();
}
hoverSequenceEnded();
m_hoverSequenceTimer.stop();
}
- m_hoverAnimation->start();
-
hoveredChanged(hovered);
update();
}
hoveredChanged(hovered);
update();
}
return m_hoverSequenceIndex;
}
return m_hoverSequenceIndex;
}
-void KItemListWidget::slotHoverAnimationFinished()
-{
- if (!m_hovered && m_selectionToggle) {
- m_selectionToggle->deleteLater();
- m_selectionToggle = nullptr;
- }
-}
-
void KItemListWidget::slotHoverSequenceTimerTimeout()
{
m_hoverSequenceIndex++;
void KItemListWidget::slotHoverSequenceTimerTimeout()
{
m_hoverSequenceIndex++;
const KItemListWidgetInformant *informant() const;
private Q_SLOTS:
const KItemListWidgetInformant *informant() const;
private Q_SLOTS:
- void slotHoverAnimationFinished();
void slotHoverSequenceTimerTimeout();
private:
void slotHoverSequenceTimerTimeout();
private:
qreal m_hoverOpacity;
mutable QPixmap *m_hoverCache;
qreal m_hoverOpacity;
mutable QPixmap *m_hoverCache;
- QPropertyAnimation *m_hoverAnimation;
int m_hoverSequenceIndex;
QTimer m_hoverSequenceTimer;
int m_hoverSequenceIndex;
QTimer m_hoverSequenceTimer;