]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/kitemlistwidget.h
Add support for hover sequence thumbnails (via ThumbSequenceCreator)
[dolphin.git] / src / kitemviews / kitemlistwidget.h
index 86bbcaf14ec7969f26ef59016ecb2122c9aa93ff..2de82c6fb4c27c09da3e0af55623b6444eb1e0ad 100644 (file)
@@ -15,6 +15,7 @@
 #include <QBitArray>
 #include <QGraphicsWidget>
 #include <QStyle>
+#include <QTimer>
 
 class KItemListSelectionToggle;
 class KItemListView;
@@ -190,16 +191,36 @@ protected:
     virtual void editedRoleChanged(const QByteArray& current, const QByteArray& previous);
     void resizeEvent(QGraphicsSceneResizeEvent* event) override;
 
+    /**
+     * Called when the user starts hovering this item.
+     */
+    virtual void hoverSequenceStarted();
+
+    /**
+     * Called in regular intervals while the user is hovering this item.
+     *
+     * @param sequenceIndex An index that increases over time while the user hovers.
+     */
+    virtual void hoverSequenceIndexChanged(int sequenceIndex);
+
+    /**
+     * Called when the user stops hovering this item.
+     */
+    virtual void hoverSequenceEnded();
+
     /**
      * @return The current opacity of the hover-animation. When implementing a custom painting-code for a hover-state
      *         this opacity value should be respected.
      */
     qreal hoverOpacity() const;
 
+    int hoverSequenceIndex() const;
+
     const KItemListWidgetInformant* informant() const;
 
 private Q_SLOTS:
     void slotHoverAnimationFinished();
+    void slotHoverSequenceTimerTimeout();
 
 private:
     void initializeSelectionToggle();
@@ -227,6 +248,9 @@ private:
     mutable QPixmap* m_hoverCache;
     QPropertyAnimation* m_hoverAnimation;
 
+    int m_hoverSequenceIndex;
+    QTimer m_hoverSequenceTimer;
+
     KItemListSelectionToggle* m_selectionToggle;
 
     QByteArray m_editedRole;