X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/67ebd66f94356b4e66005b1072919cb7b5e858bb..3d49996615a094df8fc2cb613955abb740a0463a:/src/kitemviews/kitemlistview.h diff --git a/src/kitemviews/kitemlistview.h b/src/kitemviews/kitemlistview.h index 26a33f144..760e0a415 100644 --- a/src/kitemviews/kitemlistview.h +++ b/src/kitemviews/kitemlistview.h @@ -31,6 +31,8 @@ class KItemListWidget; class KItemListWidgetInformant; class KItemListWidgetCreatorBase; class QTimer; +class QPropertyAnimation; +class QVariantAnimation; /** * @brief Represents the view of an item-list. @@ -268,7 +270,7 @@ public: void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget = nullptr) override; -signals: +Q_SIGNALS: void scrollOrientationChanged(Qt::Orientation current, Qt::Orientation previous); void scrollOffsetChanged(qreal current, qreal previous); void maximumScrollOffsetChanged(qreal current, qreal previous); @@ -305,6 +307,12 @@ signals: void roleEditingCanceled(int index, const QByteArray& role, const QVariant& value); void roleEditingFinished(int index, const QByteArray& role, const QVariant& value); + /** + * Emitted once scrolling has finished, or immediately if no scrolling was necessary + * to get item in view in scrollToItem. + */ + void scrollingStopped(); + protected: QVariant itemChange(GraphicsItemChange change, const QVariant &value) override; void setItemSize(const QSizeF& size); @@ -376,7 +384,7 @@ protected: virtual void updateFont(); virtual void updatePalette(); -protected slots: +protected Q_SLOTS: virtual void slotItemsInserted(const KItemRangeList& itemRanges); virtual void slotItemsRemoved(const KItemRangeList& itemRanges); virtual void slotItemsMoved(const KItemRange& itemRange, const QList& movedToIndexes); @@ -390,7 +398,7 @@ protected slots: virtual void slotCurrentChanged(int current, int previous); virtual void slotSelectionChanged(const KItemSet& current, const KItemSet& previous); -private slots: +private Q_SLOTS: void slotAnimationFinished(QGraphicsWidget* widget, KItemListViewAnimation::AnimationType type); void slotLayoutTimerFinished(); @@ -727,6 +735,7 @@ private: bool m_skipAutoScrollForRubberBand; KItemListRubberBand* m_rubberBand; + KItemListRubberBand* m_tapAndHoldIndicator; QPointF m_mousePos; int m_autoScrollIncrement; @@ -735,6 +744,8 @@ private: KItemListHeader* m_header; KItemListHeaderWidget* m_headerWidget; + QPropertyAnimation* m_indicatorAnimation; + // When dragging items into the view where the sort-role of the model // is empty, a visual indicator should be shown during dragging where // the dropping will happen. This indicator is specified by an index @@ -743,6 +754,8 @@ private: // by KItemListView::showDropIndicator() and KItemListView::hideDropIndicator(). QRectF m_dropIndicator; + QList m_rubberBandAnimations; + friend class KItemListContainer; // Accesses scrollBarRequired() friend class KItemListHeader; // Accesses m_headerWidget friend class KItemListController; @@ -838,6 +851,7 @@ KItemListWidget* KItemListWidgetCreator::create(KItemListView* view) widget = new T(m_informant, view); addCreatedWidget(widget); } + widget->setParentItem(view); return widget; }