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 #include "kitemlistrubberband.h" 0008 0009 KItemListRubberBand::KItemListRubberBand(QObject *parent) 0010 : QObject(parent) 0011 , m_active(false) 0012 , m_startPos() 0013 , m_endPos() 0014 { 0015 } 0016 0017 KItemListRubberBand::~KItemListRubberBand() 0018 { 0019 } 0020 0021 void KItemListRubberBand::setStartPosition(const QPointF &pos) 0022 { 0023 if (m_startPos != pos) { 0024 const QPointF previous = m_startPos; 0025 m_startPos = pos; 0026 Q_EMIT startPositionChanged(m_startPos, previous); 0027 } 0028 } 0029 0030 QPointF KItemListRubberBand::startPosition() const 0031 { 0032 return m_startPos; 0033 } 0034 0035 void KItemListRubberBand::setEndPosition(const QPointF &pos) 0036 { 0037 if (m_endPos != pos) { 0038 const QPointF previous = m_endPos; 0039 m_endPos = pos; 0040 0041 if (m_startPos.x() == m_endPos.x()) { 0042 if (previous.x() < m_startPos.x()) { 0043 m_endPos.rx() = m_startPos.x() - 1.0; 0044 } else { 0045 m_endPos.rx() = m_startPos.x() + 1.0; 0046 } 0047 } 0048 if (m_startPos.y() == m_endPos.y()) { 0049 if (previous.y() < m_startPos.y()) { 0050 m_endPos.ry() = m_startPos.y() - 1.0; 0051 } else { 0052 m_endPos.ry() = m_startPos.y() + 1.0; 0053 } 0054 } 0055 0056 Q_EMIT endPositionChanged(m_endPos, previous); 0057 } 0058 } 0059 0060 QPointF KItemListRubberBand::endPosition() const 0061 { 0062 return m_endPos; 0063 } 0064 0065 void KItemListRubberBand::setActive(bool active) 0066 { 0067 if (m_active != active) { 0068 m_active = active; 0069 Q_EMIT activationChanged(active); 0070 } 0071 } 0072 0073 bool KItemListRubberBand::isActive() const 0074 { 0075 return m_active; 0076 } 0077 0078 #include "moc_kitemlistrubberband.cpp"