1 /*
2  * SPDX-FileCopyrightText: 2011 Peter Penz <peter.penz19@gmail.com>
3  *
4  * SPDX-License-Identifier: GPL-2.0-or-later
5  */
6 
7 #ifndef KITEMLISTRUBBERBAND_H
8 #define KITEMLISTRUBBERBAND_H
9 
10 #include "dolphin_export.h"
11 
12 #include <QObject>
13 #include <QPointF>
14 
15 /**
16  * @brief Manages the rubberband when selecting items.
17  */
18 class DOLPHIN_EXPORT KItemListRubberBand : public QObject
19 {
20     Q_OBJECT
21     Q_PROPERTY(QPointF endPosition MEMBER m_endPos READ endPosition WRITE setEndPosition)
22 
23 public:
24     explicit KItemListRubberBand(QObject* parent = nullptr);
25     ~KItemListRubberBand() override;
26 
27     void setStartPosition(const QPointF& pos);
28     QPointF startPosition() const;
29 
30     void setEndPosition(const QPointF& pos);
31     QPointF endPosition() const;
32 
33     void setActive(bool active);
34     bool isActive() const;
35 
36 Q_SIGNALS:
37     void activationChanged(bool active);
38     void startPositionChanged(const QPointF& current, const QPointF& previous);
39     void endPositionChanged(const QPointF& current, const QPointF& previous);
40 
41 private:
42     bool m_active;
43     QPointF m_startPos;
44     QPointF m_endPos;
45 };
46 
47 #endif
48 
49 
50