From aba4462e0238d6075e8822d56a78372eacfa7d2e Mon Sep 17 00:00:00 2001 From: David Lerch Date: Sat, 30 Jan 2021 12:11:22 +0100 Subject: Add support for hover sequence thumbnails (via ThumbSequenceCreator) This shows a slideshow of thumbs when the user hovers a file item. --- src/kitemviews/kfileitemlistwidget.cpp | 49 ++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) (limited to 'src/kitemviews/kfileitemlistwidget.cpp') diff --git a/src/kitemviews/kfileitemlistwidget.cpp b/src/kitemviews/kfileitemlistwidget.cpp index 1b38176cc..587603ab3 100644 --- a/src/kitemviews/kfileitemlistwidget.cpp +++ b/src/kitemviews/kfileitemlistwidget.cpp @@ -5,6 +5,7 @@ */ #include "kfileitemlistwidget.h" +#include "kfileitemlistview.h" #include "kfileitemmodel.h" #include "kitemlistview.h" @@ -13,6 +14,8 @@ #include #include +#include +#include #include KFileItemListWidgetInformant::KFileItemListWidgetInformant() : @@ -170,3 +173,49 @@ int KFileItemListWidget::selectionLength(const QString& text) const return selectionLength; } +void KFileItemListWidget::hoverSequenceStarted() +{ + KFileItemListView* view = listView(); + + if (!view) { + return; + } + + const QUrl itemUrl = data().value("url").toUrl(); + + view->setHoverSequenceState(itemUrl, 0); +} + +void KFileItemListWidget::hoverSequenceIndexChanged(int sequenceIndex) +{ + KFileItemListView* view = listView(); + + if (!view) { + return; + } + + const QUrl itemUrl = data().value("url").toUrl(); + + view->setHoverSequenceState(itemUrl, sequenceIndex); + + // Force-update the displayed icon + invalidateIconCache(); + update(); +} + +void KFileItemListWidget::hoverSequenceEnded() +{ + KFileItemListView* view = listView(); + + if (!view) { + return; + } + + view->setHoverSequenceState(QUrl(), 0); +} + +KFileItemListView* KFileItemListWidget::listView() +{ + return dynamic_cast(parentItem()); +} + -- cgit v1.3