summaryrefslogtreecommitdiffstats
path: root/src/declarative/fx
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2009-09-02 01:37:35 (GMT)
committerMartin Jones <martin.jones@nokia.com>2009-09-02 01:37:35 (GMT)
commit8eed5aa528f668acfa1831432f97f7333c7d9e71 (patch)
treeba995952da3a2cf02057fffd1e401c40c350891e /src/declarative/fx
parent4e5086762521828e11c1e33f062b45c16cc109f8 (diff)
downloadQt-8eed5aa528f668acfa1831432f97f7333c7d9e71.zip
Qt-8eed5aa528f668acfa1831432f97f7333c7d9e71.tar.gz
Qt-8eed5aa528f668acfa1831432f97f7333c7d9e71.tar.bz2
Flickable locked property changed to interactive.
Note that the meaning of the property has been reversed.
Diffstat (limited to 'src/declarative/fx')
-rw-r--r--src/declarative/fx/qfxflickable.cpp24
-rw-r--r--src/declarative/fx/qfxflickable.h6
-rw-r--r--src/declarative/fx/qfxflickable_p.h2
-rw-r--r--src/declarative/fx/qfxgridview.cpp2
-rw-r--r--src/declarative/fx/qfxlistview.cpp2
5 files changed, 21 insertions, 15 deletions
diff --git a/src/declarative/fx/qfxflickable.cpp b/src/declarative/fx/qfxflickable.cpp
index d3e1a52..0690df1 100644
--- a/src/declarative/fx/qfxflickable.cpp
+++ b/src/declarative/fx/qfxflickable.cpp
@@ -95,7 +95,7 @@ void ElasticValue::updateCurrentTime(int)
QFxFlickablePrivate::QFxFlickablePrivate()
: _flick(new QFxItem), _moveX(_flick, &QFxItem::setX), _moveY(_flick, &QFxItem::setY)
, vWidth(-1), vHeight(-1), overShoot(true), flicked(false), moving(false), stealMouse(false)
- , pressed(false), maxVelocity(-1), locked(false), dragMode(QFxFlickable::Hard)
+ , pressed(false), maxVelocity(-1), interactive(true), dragMode(QFxFlickable::Hard)
, elasticY(_moveY), elasticX(_moveX), reportedVelocitySmoothing(100), horizontalVelocity(this), verticalVelocity(this)
, vTime(0), atXEnd(false), atXBeginning(true), pageXPosition(0.), pageWidth(0.)
, atYEnd(false), atYBeginning(true), pageYPosition(0.), pageHeight(0.)
@@ -411,24 +411,30 @@ void QFxFlickable::setViewportY(qreal pos)
}
/*!
- \qmlproperty bool Flickable::locked
+ \qmlproperty bool Flickable::interactive
- A user cannot drag or flick a Flickable that is locked.
+ A user cannot drag or flick a Flickable that is not interactive.
This property is useful for temporarily disabling flicking. This allows
special interaction with Flickable's children: for example, you might want to
freeze a flickable map while viewing detailed information on a location popup that is a child of the Flickable.
*/
-bool QFxFlickable::isLocked() const
+bool QFxFlickable::isInteractive() const
{
Q_D(const QFxFlickable);
- return d->locked;
+ return d->interactive;
}
-void QFxFlickable::setLocked(bool lock)
+void QFxFlickable::setInteractive(bool interactive)
{
Q_D(QFxFlickable);
- d->locked = lock;
+ d->interactive = interactive;
+ if (!interactive && d->flicked) {
+ d->_tl.clear();
+ d->flicked = false;
+ emit flickingChanged();
+ emit flickEnded();
+ }
}
/*!
@@ -577,7 +583,7 @@ qreal QFxFlickable::visibleY() const
void QFxFlickablePrivate::handleMousePressEvent(QGraphicsSceneMouseEvent *event)
{
- if (!locked && _tl.isActive() && (qAbs(velocityX) > 10 || qAbs(velocityY) > 10))
+ if (interactive && _tl.isActive() && (qAbs(velocityX) > 10 || qAbs(velocityY) > 10))
stealMouse = true; // If we've been flicked then steal the click.
else
stealMouse = false;
@@ -602,7 +608,7 @@ void QFxFlickablePrivate::handleMousePressEvent(QGraphicsSceneMouseEvent *event)
void QFxFlickablePrivate::handleMouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
Q_Q(QFxFlickable);
- if (locked || lastPosTime.isNull())
+ if (!interactive || lastPosTime.isNull())
return;
bool rejectY = false;
bool rejectX = false;
diff --git a/src/declarative/fx/qfxflickable.h b/src/declarative/fx/qfxflickable.h
index c27b29f..57a01d7 100644
--- a/src/declarative/fx/qfxflickable.h
+++ b/src/declarative/fx/qfxflickable.h
@@ -69,7 +69,7 @@ class Q_DECLARATIVE_EXPORT QFxFlickable : public QFxItem
Q_PROPERTY(bool moving READ isMoving NOTIFY movingChanged)
Q_PROPERTY(bool flicking READ isFlicking NOTIFY flickingChanged)
- Q_PROPERTY(bool locked READ isLocked WRITE setLocked) //### interactive, ensure flicking is stopped, etc.
+ Q_PROPERTY(bool interactive READ isInteractive WRITE setInteractive)
Q_PROPERTY(DragMode dragMode READ dragMode WRITE setDragMode) //### remove. Consider a better way to implement different drag behavior
Q_PROPERTY(bool atXEnd READ isAtXEnd NOTIFY isAtBoundaryChanged)
@@ -117,8 +117,8 @@ public:
qreal maximumFlickVelocity() const;
void setMaximumFlickVelocity(qreal);
- bool isLocked() const;
- void setLocked(bool);
+ bool isInteractive() const;
+ void setInteractive(bool);
Q_ENUMS(DragMode)
enum DragMode { Hard, Elastic };
diff --git a/src/declarative/fx/qfxflickable_p.h b/src/declarative/fx/qfxflickable_p.h
index a0ac011..ad9484f 100644
--- a/src/declarative/fx/qfxflickable_p.h
+++ b/src/declarative/fx/qfxflickable_p.h
@@ -121,7 +121,7 @@ public:
QmlTimeLineEvent fixupXEvent;
QmlTimeLineEvent fixupYEvent;
qreal maxVelocity;
- bool locked;
+ bool interactive;
QFxFlickable::DragMode dragMode;
ElasticValue elasticY;
ElasticValue elasticX;
diff --git a/src/declarative/fx/qfxgridview.cpp b/src/declarative/fx/qfxgridview.cpp
index 138a8ae..6fd080b 100644
--- a/src/declarative/fx/qfxgridview.cpp
+++ b/src/declarative/fx/qfxgridview.cpp
@@ -1069,7 +1069,7 @@ qreal QFxGridView::maxXExtent() const
void QFxGridView::keyPressEvent(QKeyEvent *event)
{
Q_D(QFxGridView);
- if (d->model && d->model->count() && !d->locked) {
+ if (d->model && d->model->count() && d->interactive) {
if ((d->flow == QFxGridView::LeftToRight && event->key() == Qt::Key_Up)
|| (d->flow == QFxGridView::TopToBottom && event->key() == Qt::Key_Left)) {
if (currentIndex() >= d->columns || d->wrap) {
diff --git a/src/declarative/fx/qfxlistview.cpp b/src/declarative/fx/qfxlistview.cpp
index 147c977..34fe827 100644
--- a/src/declarative/fx/qfxlistview.cpp
+++ b/src/declarative/fx/qfxlistview.cpp
@@ -1344,7 +1344,7 @@ qreal QFxListView::maxXExtent() const
void QFxListView::keyPressEvent(QKeyEvent *event)
{
Q_D(QFxListView);
- if (d->model && d->model->count() && !d->locked) {
+ if (d->model && d->model->count() && d->interactive) {
if ((d->orient == Qt::Horizontal && event->key() == Qt::Key_Left)
|| (d->orient == Qt::Vertical && event->key() == Qt::Key_Up)) {
if (currentIndex() > 0 || d->wrap) {