equal
deleted
inserted
replaced
31 SlidingWidget::SlidingWidget(QGraphicsItem* parent) |
31 SlidingWidget::SlidingWidget(QGraphicsItem* parent) |
32 : QGraphicsWidget(parent), |
32 : QGraphicsWidget(parent), |
33 m_top(0), |
33 m_top(0), |
34 m_window(0), |
34 m_window(0), |
35 m_bottom(0), |
35 m_bottom(0), |
|
36 m_slidePos(0), |
36 m_slideMax(0), |
37 m_slideMax(0), |
37 m_slidePos(0), |
|
38 m_shrinked(0), |
38 m_shrinked(0), |
39 m_shrinkMax(0), |
39 m_shrinkMax(0), |
40 m_windowSize(QSizeF()) |
40 m_windowSize(QSizeF()) |
41 { |
41 { |
42 //Clip child item so that it can "slide" out of view |
42 //Clip child item so that it can "slide" out of view |
83 |
83 |
84 } |
84 } |
85 |
85 |
86 qreal SlidingWidget::slide(qreal delta) |
86 qreal SlidingWidget::slide(qreal delta) |
87 { |
87 { |
|
88 return setSlide(m_slideMax - m_slidePos - delta); |
|
89 } |
88 |
90 |
89 qreal newPos = m_slidePos + delta; |
91 qreal SlidingWidget::setSlide(qreal scrollPos) |
|
92 { |
90 |
93 |
91 //qDebug() << "SlidingWidget::slide: delta: " << delta << " m_slidePos: " << m_slidePos << " newPos: " << newPos; |
94 qreal pos = m_slideMax - scrollPos; |
92 |
95 |
93 if (newPos < 0) { |
96 if(pos < 0) { |
94 if (m_slidePos == 0) |
97 pos = 0; |
95 return 0; |
98 } else if (pos > m_slideMax){ |
96 delta = -m_slidePos; |
99 pos = m_slideMax; |
97 m_slidePos = 0; |
|
98 } |
100 } |
99 |
101 |
100 else if (newPos > m_slideMax){ |
102 if(pos == m_slidePos) |
101 if (m_slidePos == m_slideMax) |
|
102 return 0; |
103 return 0; |
103 delta = m_slideMax - m_slidePos; |
|
104 m_slidePos = m_slideMax; |
|
105 } |
|
106 |
104 |
107 else m_slidePos = newPos; |
105 qreal delta = pos - m_slidePos; |
|
106 m_slidePos = pos; |
108 |
107 |
109 //qDebug() << "calculated delta: " << delta << " new m_slidePos: " << m_slidePos; |
108 //qDebug() << "calculated delta: " << delta << " new m_slidePos: " << m_slidePos; |
110 |
109 |
111 QTransform transform; |
110 QTransform transform; |
112 transform.translate(0,delta); |
111 transform.translate(0,delta); |
159 m_top = 0; |
158 m_top = 0; |
160 if (m_window) |
159 if (m_window) |
161 m_window->setPos(0,0); |
160 m_window->setPos(0,0); |
162 } |
161 } |
163 |
162 |
|
163 QSize SlidingWidget::viewPortSize(bool withoutTop ) { |
|
164 |
|
165 QSize sz = m_windowSize.toSize(); |
|
166 if (m_top && withoutTop) { |
|
167 sz.setHeight(m_windowSize.height() - m_top->geometry().height()); |
|
168 } |
|
169 return sz; |
|
170 } |
164 |
171 |
165 } // end of namespace GVA |
172 } // end of namespace GVA |
166 |
173 |
167 |
174 |