@@ -0,0 +1,66 @@
1+#include "spreadflickable.h"
2+
3+SpreadFlickable::SpreadFlickable(QQuickItem *parent):
4+ QQuickItem(parent),
5+ m_mousePressed(false),
6+ m_touchPressed(false)
7+{
8+ m_flickable = new QQuickFlickable(this);
9+ m_flickable->installEventFilter(this);
10+ connect(m_flickable, &QQuickFlickable::contentWidthChanged, this, &SpreadFlickable::contentWidthChanged);
11+ connect(m_flickable, &QQuickFlickable::contentXChanged, this, &SpreadFlickable::contentXChanged);
12+
13+ connect(this, &QQuickItem::heightChanged, this, &SpreadFlickable::slotHeightChanged);
14+ connect(this, &QQuickItem::widthChanged, this, &SpreadFlickable::slotWidthChanged);
15+}
16+
17+qreal SpreadFlickable::contentWidth() const
18+{
19+ return m_flickable->contentWidth();
20+}
21+
22+void SpreadFlickable::setContentWidth(qreal contentWidth)
23+{
24+ m_flickable->setContentWidth(contentWidth);
25+}
26+
27+qreal SpreadFlickable::contentX() const
28+{
29+ return m_flickable->contentX();
30+}
31+
32+void SpreadFlickable::setContentX(qreal contentX)
33+{
34+ m_flickable->setContentX(contentX);
35+}
36+
37+void SpreadFlickable::slotHeightChanged()
38+{
39+ m_flickable->setHeight(height());
40+}
41+
42+void SpreadFlickable::slotWidthChanged()
43+{
44+ m_flickable->setWidth(width());
45+}
46+
47+bool SpreadFlickable::eventFilter(QObject* /*watched*/, QEvent *event)
48+{
49+ //m_flickable->eventFilter(watched, event);
50+ switch (event->type()) {
51+ case QEvent::TouchBegin:
52+ break;
53+ case QEvent::TouchEnd:
54+ break;
55+ case QEvent::MouseButtonPress:
56+ break;
57+ case QEvent::MouseButtonRelease:
58+ break;
59+ default:
60+ // Not interested
61+ break;
62+ }
63+
64+ // We never filter them out. We are just watching.
65+ return false;
66+}