X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/97415005de040885cb63ea01fdb879e20226a2f2..cebcf8db:/src/kitemviews/private/kitemlistsmoothscroller.h diff --git a/src/kitemviews/private/kitemlistsmoothscroller.h b/src/kitemviews/private/kitemlistsmoothscroller.h index 7d01a6b62..32effa3d6 100644 --- a/src/kitemviews/private/kitemlistsmoothscroller.h +++ b/src/kitemviews/private/kitemlistsmoothscroller.h @@ -1,21 +1,8 @@ -/*************************************************************************** - * Copyright (C) 2011 by Peter Penz * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * - ***************************************************************************/ +/* + * SPDX-FileCopyrightText: 2011 Peter Penz + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ #ifndef KITEMLISTSMOOTHSCROLLER_H #define KITEMLISTSMOOTHSCROLLER_H @@ -38,17 +25,16 @@ class DOLPHIN_EXPORT KItemListSmoothScroller : public QObject Q_OBJECT public: - explicit KItemListSmoothScroller(QScrollBar* scrollBar, - QObject* parent = 0); - virtual ~KItemListSmoothScroller(); + explicit KItemListSmoothScroller(QScrollBar *scrollBar, QObject *parent = nullptr); + ~KItemListSmoothScroller() override; - void setScrollBar(QScrollBar* scrollBar); - QScrollBar* scrollBar() const; + void setScrollBar(QScrollBar *scrollBar); + QScrollBar *scrollBar() const; - void setTargetObject(QObject* target); - QObject* targetObject() const; + void setTargetObject(QObject *target); + QObject *targetObject() const; - void setPropertyName(const QByteArray& propertyName); + void setPropertyName(const QByteArray &propertyName); QByteArray propertyName() const; /** @@ -80,22 +66,32 @@ public: /** * Forwards wheel events to the scrollbar, ensuring smooth and proper scrolling */ - void handleWheelEvent(QWheelEvent* event); + void handleWheelEvent(QWheelEvent *event); + +Q_SIGNALS: + /** + * Emitted when the scrolling animation has finished + */ + void scrollingStopped(); protected: - bool eventFilter(QObject* obj, QEvent* event) Q_DECL_OVERRIDE; + bool eventFilter(QObject *obj, QEvent *event) override; -private slots: - void slotAnimationStateChanged(QAbstractAnimation::State newState, - QAbstractAnimation::State oldState); +private Q_SLOTS: + void slotAnimationStateChanged(QAbstractAnimation::State newState, QAbstractAnimation::State oldState); + /** + * Calculates the duration of the smooth scrolling animation. + * If \p isSmoothScrollingEnabled is true, the duration will be calculated + * using the widget animation duration from the current style. Otherwise, + * the animation will be instantaneous. + */ + void updateAnimationDuration(bool isSmoothScrollingEnabled); private: bool m_scrollBarPressed; bool m_smoothScrolling; - QScrollBar* m_scrollBar; - QPropertyAnimation* m_animation; + QScrollBar *m_scrollBar; + QPropertyAnimation *m_animation; }; #endif - -