1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
|
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/
**
** This file is part of the QtLocation module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** GNU Lesser General Public License Usage
** This file may be used under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation and
** appearing in the file LICENSE.LGPL included in the packaging of this
** file. Please review the following information to ensure the GNU Lesser
** General Public License version 2.1 requirements will be met:
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU General
** Public License version 3.0 as published by the Free Software Foundation
** and appearing in the file LICENSE.GPL included in the packaging of this
** file. Please review the following information to ensure the GNU General
** Public License version 3.0 requirements will be met:
** http://www.gnu.org/copyleft/gpl.html.
**
** Other Usage
** Alternatively, this file may be used in accordance with the terms and
** conditions contained in a signed written agreement between you and Nokia.
**
**
**
**
**
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include <QtGui/QGuiApplication>
#include "qdeclarativegeomapflickable_p.h"
#include "qdeclarativegeomapgesturearea_p.h"
QT_BEGIN_NAMESPACE
/*!
\qmlclass MapFlickable QDeclarativeGeoMapFlickable
\inqmlmodule QtLocation 5
\brief The MapFlickable element provides basic flicking of the Map.
MapFlickable elements are used as part of a Map, to provide for the common
flick gesture that pans the map in an intuitive fashion. This is comparable
to the activity of the \l Flickable element.
A MapFlickable is automatically created with a new Map and available with
the \l{QtLocation5::Map::flick}{flick} property. This is the only way
to create a MapFlickable, and once created this way cannot be destroyed
without its parent Map.
The two most commonly used properties of the MapFlickable are \l enabled and
\l deceleration. The former must be set in order for the MapFlickable to
have any effect upon its parent Map. The latter property customizes the
response of the MapFlickable to input from the user, by adjusting how much
"friction" slows down the flick after the user has raised their finger
or released the mouse button.
\section2 Performance
The MapFlickable, when enabled, must process all incoming touch or cursor
movement events in order to build up the "flick" gesture, and then complete
an animation for the "deceleration" phase. The MapFlickable builds up a
buffer of samples during the motion capture phase: currently a maximum of
3 past samples are processed at each new event. As a result, the overhead
on movement events can be considered constant time, as there are many more
than 3 events in a typical gesture. The cost of animation is identical to
two parallel double float \l{QPropertyAnimation}{QPropertyAnimations} with
OutQuad easing curves.
\section2 Example Usage
The following example enables the flick gesture on a map, and sets the
deceleration/friction value to be double its standard level.
\code
Map {
flick.enabled: true
flick.deceleration: 5000
}
\endcode
\ingroup qml-QtLocation5-maps
\since Qt Location 5.0
*/
/*!
\qmlproperty bool QtLocation5::MapFlickable::enabled
This property holds whether the flicking is enabled.
By default flicking is enabled. Disabling flicking will terminate
any potentially active flicks (movement or actual flick).
*/
/*!
\qmlproperty real QtLocation5::MapFlickable::deceleration
This property holds the rate at which a flick will decelerate. The
larger the value, the faster the flick decelerates.
Default value is 2500, minimum value is 500 and maximum value is 10000.
*/
/*!
\qmlsignal QtLocation5::MapFlickable::onMovementStarted()
This handler is called when the view begins moving due to user
interaction. Typically this means that the user is dragging a finger -
or a mouse with one of more mouse buttons pressed - on the map.
*/
/*!
\qmlsignal QtLocation5::MapFlickable::onMovementEnded()
This handler is called when the view stops moving due to user
interaction. If a flick was generated, this handler will
be triggered once the flick stops. If a flick was not
generated, the handler will be triggered when the
user stops dragging - that is a mouse or touch release.
*/
/*!
\qmlsignal QtLocation5::MapFlickable::onFlickStarted()
This handler is called when the view is flicked. A flick
starts from the point that the mouse or touch is released,
while still in motion.
*/
/*!
\qmlsignal QtLocation5::MapFlickable::onFlickEnded()
This handler is called when the view stops moving due to a flick.
The order of onMovementEnded() and onFlickEnded() is not specified.
*/
QDeclarativeGeoMapFlickable::QDeclarativeGeoMapFlickable(QObject *parent,
QDeclarativeGeoMapGestureArea *gestureArea)
: QObject(parent),
gestureArea_(gestureArea)
{
gestureArea_->registerFlickDeprecated(this);
}
QDeclarativeGeoMapFlickable::~QDeclarativeGeoMapFlickable()
{
}
#include "moc_qdeclarativegeomapflickable_p.cpp"
QT_END_NAMESPACE
|