X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/91a4d5da94a6b0b60ad7989a402f654710103e99..e9b056dcf080a12a09fa1c1a55eab79edb2164b5:/src/kitemviews/kitemlistwidget.cpp diff --git a/src/kitemviews/kitemlistwidget.cpp b/src/kitemviews/kitemlistwidget.cpp index 901b2ac15..4c9f25986 100644 --- a/src/kitemviews/kitemlistwidget.cpp +++ b/src/kitemviews/kitemlistwidget.cpp @@ -45,7 +45,6 @@ KItemListWidget::KItemListWidget(KItemListWidgetInformant *informant, QGraphicsI , m_siblingsInfo() , m_hoverOpacity(0) , m_hoverCache(nullptr) - , m_hoverAnimation(nullptr) , m_hoverSequenceIndex(0) , m_selectionToggle(nullptr) , m_editedRole() @@ -65,10 +64,8 @@ void KItemListWidget::setIndex(int index) delete m_selectionToggle; m_selectionToggle = nullptr; - if (m_hoverAnimation) { - m_hoverAnimation->stop(); - m_hoverOpacity = 0; - } + m_hoverOpacity = 0; + clearHoverCache(); m_index = index; @@ -116,6 +113,7 @@ void KItemListWidget::paint(QPainter *painter, const QStyleOptionGraphicsItem *o backgroundColor = backgroundColor.darker(101); } } + const QRectF backgroundRect(0, 0, size().width(), size().height()); painter->fillRect(backgroundRect, backgroundColor); } @@ -256,20 +254,11 @@ void KItemListWidget::setHovered(bool hovered) 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(); } @@ -281,15 +270,17 @@ void KItemListWidget::setHovered(bool hovered) 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(); } @@ -447,6 +438,11 @@ QPixmap KItemListWidget::createDragPixmap(const QStyleOptionGraphicsItem *option return pixmap; } +void KItemListWidget::startActivateSoonAnimation(int timeUntilActivation) +{ + Q_UNUSED(timeUntilActivation) +} + void KItemListWidget::dataChanged(const QHash ¤t, const QSet &roles) { Q_UNUSED(current) @@ -554,14 +550,6 @@ int KItemListWidget::hoverSequenceIndex() const return m_hoverSequenceIndex; } -void KItemListWidget::slotHoverAnimationFinished() -{ - if (!m_hovered && m_selectionToggle) { - m_selectionToggle->deleteLater(); - m_selectionToggle = nullptr; - } -} - void KItemListWidget::slotHoverSequenceTimerTimeout() { m_hoverSequenceIndex++;