┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kfileitemlistwidget.cpp
diff options
context:
space:
mode:
authorDavid Lerch <[email protected]>2021-01-30 12:11:22 +0100
committerElvis Angelaccio <[email protected]>2021-07-04 10:24:07 +0000
commitaba4462e0238d6075e8822d56a78372eacfa7d2e (patch)
tree1b735f8959036ff66568ad209416d3b1362bff7f /src/kitemviews/kfileitemlistwidget.cpp
parent8048e6ed1bee096fb82fa2335d533779c89c809a (diff)
Add support for hover sequence thumbnails (via ThumbSequenceCreator)
This shows a slideshow of thumbs when the user hovers a file item.
Diffstat (limited to 'src/kitemviews/kfileitemlistwidget.cpp')
-rw-r--r--src/kitemviews/kfileitemlistwidget.cpp49
1 files changed, 49 insertions, 0 deletions
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 <KFormat>
#include <KLocalizedString>
+#include <QGraphicsScene>
+#include <QGraphicsView>
#include <QMimeDatabase>
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<KFileItemListView*>(parentItem());
+}
+