]> cloud.milkyroute.net Git - dolphin.git/blob - src/kitemviews/private/kitemlistrubberband.cpp
70287312638f4a7bf4c4fce807e43644f281a785
[dolphin.git] / src / kitemviews / private / kitemlistrubberband.cpp
1 /***************************************************************************
2 * Copyright (C) 2011 by Peter Penz <peter.penz19@gmail.com> *
3 * *
4 * This program is free software; you can redistribute it and/or modify *
5 * it under the terms of the GNU General Public License as published by *
6 * the Free Software Foundation; either version 2 of the License, or *
7 * (at your option) any later version. *
8 * *
9 * This program is distributed in the hope that it will be useful, *
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
12 * GNU General Public License for more details. *
13 * *
14 * You should have received a copy of the GNU General Public License *
15 * along with this program; if not, write to the *
16 * Free Software Foundation, Inc., *
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
18 ***************************************************************************/
19
20 #include "kitemlistrubberband.h"
21
22 KItemListRubberBand::KItemListRubberBand(QObject* parent) :
23 QObject(parent),
24 m_active(false),
25 m_startPos(),
26 m_endPos()
27 {
28 }
29
30 KItemListRubberBand::~KItemListRubberBand()
31 {
32 }
33
34 void KItemListRubberBand::setStartPosition(const QPointF& pos)
35 {
36 if (m_startPos != pos) {
37 const QPointF previous = m_startPos;
38 m_startPos = pos;
39 emit startPositionChanged(m_startPos, previous);
40 }
41 }
42
43 QPointF KItemListRubberBand::startPosition() const
44 {
45 return m_startPos;
46 }
47
48 void KItemListRubberBand::setEndPosition(const QPointF& pos)
49 {
50 if (m_endPos != pos) {
51 const QPointF previous = m_endPos;
52 m_endPos = pos;
53
54 if (m_startPos.x() == m_endPos.x()) {
55 if (previous.x() < m_startPos.x()) {
56 m_endPos.rx() = m_startPos.x() - 1.0;
57 } else {
58 m_endPos.rx() = m_startPos.x() + 1.0;
59 }
60 }
61 if (m_startPos.y() == m_endPos.y()) {
62 if (previous.y() < m_startPos.y()) {
63 m_endPos.ry() = m_startPos.y() - 1.0;
64 } else {
65 m_endPos.ry() = m_startPos.y() + 1.0;
66 }
67 }
68
69 emit endPositionChanged(m_endPos, previous);
70 }
71 }
72
73 QPointF KItemListRubberBand::endPosition() const
74 {
75 return m_endPos;
76 }
77
78 void KItemListRubberBand::setActive(bool active)
79 {
80 if (m_active != active) {
81 m_active = active;
82 emit activationChanged(active);
83 }
84 }
85
86 bool KItemListRubberBand::isActive() const
87 {
88 return m_active;
89 }
90