File indexing completed on 2024-05-12 05:47:30

0001 /*
0002  * SPDX-FileCopyrightText: 2011 Peter Penz <peter.penz19@gmail.com>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #ifndef KITEMLISTRUBBERBAND_H
0008 #define KITEMLISTRUBBERBAND_H
0009 
0010 #include "dolphin_export.h"
0011 
0012 #include <QObject>
0013 #include <QPointF>
0014 
0015 /**
0016  * @brief Manages the rubberband when selecting items.
0017  */
0018 class DOLPHIN_EXPORT KItemListRubberBand : public QObject
0019 {
0020     Q_OBJECT
0021     Q_PROPERTY(QPointF endPosition MEMBER m_endPos READ endPosition WRITE setEndPosition NOTIFY endPositionChanged)
0022 
0023 public:
0024     explicit KItemListRubberBand(QObject *parent = nullptr);
0025     ~KItemListRubberBand() override;
0026 
0027     void setStartPosition(const QPointF &pos);
0028     QPointF startPosition() const;
0029 
0030     void setEndPosition(const QPointF &pos);
0031     QPointF endPosition() const;
0032 
0033     void setActive(bool active);
0034     bool isActive() const;
0035 
0036 Q_SIGNALS:
0037     void activationChanged(bool active);
0038     void startPositionChanged(const QPointF &current, const QPointF &previous);
0039     void endPositionChanged(const QPointF &current, const QPointF &previous);
0040 
0041 private:
0042     bool m_active;
0043     QPointF m_startPos;
0044     QPointF m_endPos;
0045 };
0046 
0047 #endif