| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Change-Id: Iabf0bfaf29a25a7f005b365af08c068a7960b95b
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
| |
Testing rendering of QDeclarativeMapItems.
Change-Id: I9767314945a022006fdf02341744018c04206099
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit 51a895b3d280ce5103785e016e82b77676c26c5f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
| |
Change-Id: I42ec79a55eb16d768a3268212272cd06436d24b9
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit 854758eaa75fa2b1caf443b9e89c85e362555a06)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Various MapItems were not rendered correctly, especially in corner cases.
This change ensures that MapItems are rendered correctly in the vast
majority of cases.
All MapItems are shown correctly if they wrap around the globe and
appear twice on the map.
Circles that span around the globe or are located near poles are shown
correclty and filled all the way to the border of the map.
Polygons are shown correctly including their holes.
The code was simplified and some artefacts of previous implementations
were removed.
Fixes: QTBUG-110701
Fixes: QTBUG-110511
Change-Id: I1110659989436cd5a93f6ec26f75caa06d5f2b71
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit 8b9ecad4bed0150adcbdf91db3f5f9507a156fd6)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
| |
Change-Id: I8408c37a2692e93dd420c558147071d07d85523f
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit b842a6cdcce0ee43a48ec084180d9dc065b599a1)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
As we are now processing the arguments with
cmake_parse_arguments(PARSE_ARGV, we don't need to pass the escape
characters anymore.
Task-number: QTBUG-99238
Change-Id: I618d4cd0105988bffb1d496fa2b3149d0e609710
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
(cherry picked from commit dcc3724eed2499b0737f460f358846a8434a3100)
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
| |
Change-Id: I86748b338930182d0ce540e9e8357a7451806767
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
| |
Change-Id: I59311a3b9d32ca9df3a5b66a6352b45448a52cdc
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit 351bb54f544f1f6d63c469caa8e999473714b2ce)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With a master switch in qdeclarativegeomapitembase_p.h, this is
enabled by default. For now the old method is still available by
just commenting out the define. The old path can be removed in
follow-up patches; for now keeping both so one can compare and
debug if further issues arise.
Change-Id: I01c44ee8a07d7d5f7eb018be33ac5d161ba90e2a
Reviewed-by: Matthias Rauter <matthias.rauter@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit 34fccf47ecf8ab2db53b23013f4f402c175ce9de)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
| |
Task-number: QTBUG-67283
Change-Id: I4b8f877cc355c7c6cd410b3b1683defa58486381
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit cd4db512ae08836f5fa1d746000052215cf70a9c)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I42cd9d75a6c7cac272e11a974265f52610d36bfd
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I10d8c1ef1febd834f4d439cac40daf4900ef72f7
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
| |
Change the search radius in example places_map to get a reasonable amount of results.
Replace search term pizza with food to get a reasonable amount of results within 1km radius.
Cleaned up some code and replaced static values with bindings.
Change-Id: I51aedadaf46a1576d033178ec8c0b94222dffca7
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit bc834c4b40adf8263f60d422681d9c0b7bae21d8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
Chang the search radius in example places_list to match the comment.
Replace search term pizza with food to get a reasonable amount of results within 5km radius.
Change-Id: Ibf8a97afb85c80e8cd9b646f2c82d41a836359d2
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit 5ef3e454c7903e4b8e0db41aea87cfaf21c641e8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This has nearly complete functionality now.
A couple of approaches were possible: one way is to have the Map larger
than the MapView, so that the MapView defines a viewport. This allows
the handlers to function more "normally": DragHandler already knows how
to move the Map in the viewport, etc. But then you can pan off the edge
of the Map; so we needed a recenter() function to calculate and set the
map.center property, and call that at the right times. This needs to be
done when the MapView is resized too, and that turned out to be tricky
to get right. Another advantage though would be that we could ensure Map
doesn't re-generate geometry any more often than necessary: small
changes to the center and scale of the map would often merely change one
QSGTransformNode. We could still try this approach again later on, but
perhaps Map should be doing more of the work to make it possible; and
the new ItemObservesViewport flag ought to be useful.
But for now, we do it the existing way: Map does its own viewporting.
Thus, we assume that Map is optimized to limit geometry re-generation
internally. In practice, redrawing while executing a pinch gesture feels
fast enough.
One of the main reasons we needed the recent changes in handlers is to
get deltas. We cannot use bindings directly from handler properties to
Map properties, because there are multiple ways to modify each property
(you can zoom by pinch or wheel in MapView, and probably via a keyboard
shortcut in the application), so we need to increment the zoomLevel and
bearing properties rather than binding them. When it comes to panning:
instead of a property, Map has a pan(dx, dy) invokable function; so we
call that in response to the DragHandler.translationChanged signal,
which now carries a delta-vector argument. The alignCoordinateToPoint()
function turned out to be ideal to make the pinch gesture zoom into and
rotate the map around the centroid (the point between the touchpoints).
Since we call that function when either the rotation or scale changes,
we do not need an onTranslationChanged(), because you can't do a pinch
gesture that only pans without also changing scale and rotation
slightly. All three signals are firing constantly, so handling two of
them is enough. The Vector3dAnimation turned out to be a good fit to get
flicking momentum (let the panning continue a little while after the
finger is released); needing to use the pan() function here is a little
clumsy, but we can live with it. Handlers and Animations would both
prefer to set properties directly. But if there were a property, it
would tend to have type QVector2D or QPointF, and the Vector3dAnimation
wouldn't know how to set it anyway (but that could be hacked in, or we
could write a Vector2dAnimation).
Calculating the limits for zooming seems to be tricky:
Map.minimumZoomLevel is zero, but in practice the minimum zoom depends
on the size (because we cannot zoom out so far that the map no longer
fills the viewport, but if the viewport is smaller, then you can zoom
out further). So PinchHandler currently limits the max zoom fairly well,
but when you try to zoom out too far, it is Map rather than PinchHandler
that applies its own runtime limit. That makes
PinchHandler.persistentScale useless; but now PinchHandler applies only
incremental zoom deltas, so it doesn't matter. But WheelHandler cannot
apply limits on its own, so currently it lets you zoom in too far. Map
stops you from zooming past level 30, which is strange, since it already
knows that OSM maps are limited to level 18. So either we need to figure
out how to calculate both the min and max accurately so that we can
apply BoundaryRule (which will also replace the use of PinchHandler's
own limits, and will depend on a fix for PinchHandler to work with
BoundaryRule), or we can get Map to enforce the lower limit: 18 instead
of 30. A little bit of zooming beyond 18 is ok (for example to 20), but
if you go even further, the rendering suddenly disappears. This could
be done in a followup patch, and a couple of autotests need fixing then.
The incremental zooming is treated as base-2-logarithmmic, although
that's an approximation: https://wiki.openstreetmap.org/wiki/Zoom_levels
tells us that sometimes one zoom level corresponds exactly to
zooming 2X, but going from zoom level 16 to 15 is an 8:15 ratio. It's
close enough to feel smooth anyway; and it turns out that Map is
rendering fractional zoom levels well enough already. If that were not
the case, we'd need to bring the Item.scale property into play.
Now that the Map is the same size as the MapView, we have a choice
whether the root of MapView should be a wrapper Item or not.
The root could be Map itself, with handlers inside; the upside would be
that all Map properties are left exposed. The downsides would be losing
the opportunity to go back to the other architecture later on (with the
root defining a viewport, and rendering a larger map inside, but
re-rendering less often), and losing the opportunity to make the view's
minimumZoomLevel and maximumZoomLevel different than those in Map
itself. As explained above, minimumZoomLevel should depend on viewport
size. So perhaps it's better to keep it like this: we have control over
which Map properties to expose directly, and for the rest, the user can
bind to things like mapview.map.center instead of mapview.center.
The geojson example is updated to use MapView, whereas minimal_map
applies its own handlers to the Map. Other examples still need updating.
[ChangeLog][MapView] MapView is the interactive replacement for the Map
item in earlier releases. It wraps a Map instance with pointer handlers
to make it interactive.
Fixes: QTBUG-68108
Change-Id: Ibf6bcf71fa7588fcf8cf117e213f35cebd105639
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit eaab46307c04004649eaa481ff9ba35972d9b967)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The QML Map type is now non-interactive. The plan is to replace
QQuickGeoMapGestureArea with a set of pointer handlers on top of Map,
probably in a new QML type called MapView.
[ChangeLog][Map] Map is now non-interactive, concerned only with rendering.
Task-number: QTBUG-68108
Change-Id: Ie64ffd13abc2b3e00d8e90043f3bb672299f4f15
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit 4b81f1a34c6936b7b5a752ed4555f65847b13337)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
| |
The gesture area will eventually be eliminated; but PinchHandler needs to
have minimum/maximumScale set, so it's not useful to ever have those
values being NaN.
Change-Id: Ib69de2370038711a0704f870e005be3b83f9655c
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit 12004dfa1d5040a38f26e4170eb43347e06c2ac8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I45eb51019be234d36a5ac39556f198f9d999abd2
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: Ib6d1aaff9ebc930f355d55b3c69d05810d85f062
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
| |
The position of MapQuickItems was not updated after a height change.
The function setCameraData(...) did not update the position.
Fixes: QTBUG-100333
Change-Id: I86310000d04b00bfd3de0e7ef3cdc854f2b08a46
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit c26af08e42d535fe3ed81c1506ee6e5d3fc35d1c)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
No plugin implements or uses it, and we could use dynamic properties to
pass more data through to backend implementations, if needed.
Change-Id: Ie7cbc1e24fadf51e5f39e0ced53860e6a2c6609b
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
(cherry picked from commit 6ea8dcf6b9dda083f46c0cb67ca493bd8b6363cd)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I55894092aa3efe1cd668913f48e07f1bf39c852c
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I649040c97fa48058684235c18791e64d0954c136
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
| |
Change-Id: I94e6c673b8aa3ccdc6adf4b3ce5a87b13415475b
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit b6176fa8a3d806ad2c83e8dbff4709ae315e7b5b)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: Ibe52673be18505b6053512c5ee7f892209327108
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
| |
Option has not effect anymore.
Change-Id: I3620588769bfa98b8219ed44a37dd2d5adec1b29
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
(cherry picked from commit d46d4763f04485d6389dfe80e3d8690ab2770617)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I5cade64f93e6900eeebe5bdd8221c9cf3ee8b446
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: Id6dcb9a605cd7cae0093001016ac37bfa81f14e9
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: Ib07b8f38800e00d1eb62c3f7270498ef01aefa33
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I6cc020de899d1acecdadd24ffc51a53d921b829c
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: Iaa3c841fe6282c335982c75527536aea99d45dd3
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: Id0b7e0a3ffdb0f85e0ed1fc8df63e1ca33f9830f
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: Ib80db45c0bec892742f828cb118862643ba5270d
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I4ce169b076bf0a06913bbfab1e643cb303b0f899
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I2a07292dd0feb7a8b43d7ac4cefda22fae682d66
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I0aa5d4aae52e21663b6c5ef918e48b14a9f46e62
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I21b380c92eb6cb3e833a9f38ed2de8e0e4b4fa0f
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: Ie67ec9b4f1f808b3b70ca7beb98f90c9cd1f2a9f
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
| |
Change-Id: Ib19155a2def4fa7c5fbc619ec5e9d3cb2e01e679
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The aim is to have a single solution. And due to certain cases
falling back to the default ("CPU") path, this "OpenGL" path is
not complete on its own. In addition, some rendering features
are not implemented (caps and joins), meaning additional work
is needed still to be on par with the default item rendering
path.
Change-Id: Ie67c8b5ac002c6660f3808c10d9fd9276a16e47e
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
| |
It's only used there. Need to privately export QGeoRouteParserPrivate
for this.
Change-Id: I0342dc31836a9db731f495434b9d4c7dd5973af2
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
|
|
|
|
|
| |
Change-Id: Ic1ed064269ac73e68d0358b373ea1e8048a1c241
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
| |
Change-Id: I7e85f2ed97d32cdbff0fcc4b0d5294bc1227e338
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The type was introduced as a QML-wrapper around QGeoCoordinate, which is
now a registered value type for QML. QGeoCoordindate doesn't have a
bearing property, but as waypoints could be initialized with a list of
QGeoCoordinate anyway, 'bearing' was only inconsistently supported. If
we want to bring that back, then it might be best to add an optional
bearing to QGeoCoordinate in Qt Positioning.
Change-Id: I3d8cb64f3552dc5580945b17c3a9092a7205b9b8
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Correct spelling of and links to QML value types and to properties of
value types. Remove some documentation and snippets that are mostly
outdated, and links to specific plugin providers.
Silence some warnings.
Task-number: QTBUG-96795
Change-Id: Ifba3ae8144e0d949f1c72a4ea230e7f84fa28bd4
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
| |
Change-Id: I101428b5fbee76b3044314932b766d7732865dca
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: Ia8b19f0d84e91fe9e9870344b3e7e05710501142
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: Ib5b7466cfd3ae20ebfb8615b7f9b10323b2fc1b7
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using wrappers for these macros is problematic when for example passing the
-frewrite-includes flag to preprocess sources before shipping off to distcc
or Icecream. It will also start producing warnings when compilers implement
http://eel.is/c++draft/cpp.cond#7.sentence-2. See for example
https://reviews.llvm.org/D49091
See qtbase change c3bd5ffdc8a3b459f18ba6e35fca93e29f3b0ab0.
Change-Id: Ib3b39c2f47816b8a92ffcc0432322cb0d1ea7dbf
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
| |
Change-Id: I28a1ad9cf1eb28a8432ef223d8b83b981ef64494
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|