| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change introduces a metric-based implementation of the
Ramer-Douglas-Peucker line simplification algorithm to generate a
LOD pyramid for the polyline geometries.
This comes with a related property (in MapItemBase), lodThreshold,
that can be used to change the threshold after which no simplification
will be used.
By default the value of this property is 0, meaning that the
behavior will be unchanged and no LOD will be used.
This change also introduces LOD on map polyine objects QSG, for which
no property is introduced, and there's a default threshold set to
zoom level 12 (which appear to produce acceptable results).
Finally, this patch makes use of a threadpool with 1 thread
to enqueue geometry simplification tasks, which would otherwise
freeze the UI when computing for the first time.
Support for geometry simplification is currently added only to polylines.
It might be of interest extending it to polygons as well, once
a proper strategy for handling the simplification of inner holes has
been identified.
Finally, extending it to circles could be of interest, while potentially
bringing only minor benefits, as circle geometries are currently fixed
to 128 vertices.
Also adds a MapObject-based delegate to the geojson viewer example.
Task-number: QTBUG-46652
Task-number: QTBUG-38459
Task-number: QTBUG-49303
Change-Id: I64b5db4577962db17e5388812909285c9356ef0d
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch changes the implementation of the scenegraph-based
mapobjects (those created by QGeoTiledMap) to be the recently
introduced one sporting shader-based map projection.
This is much faster than the previous, but may introduce small glitches
at this time (mostly on minified polylines).
Adding polyline LOD simplification will solve this problem.
Compared to equivalent Map Items (that is, Map Items backed by the
same underlying implementation), map objects now are approximately
1.5x faster.
This measure has been gathered using medium-size polygons (contained
in the file 10_countries.json from the geojson_viewer example).
The difference is caused by the additional QtQuick geometry related
operations (essentially projecting the bounding box for each item)
present in MapItems.
Smaller polygons may therefore yield larger improvements, larger polygons
the opposite.
Change-Id: I3fc92b02b74a3a4d001e69755949a98f80d8a3d3
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this change, all the geo-to-screen conversion,
and the triangulation operations for geo polylines
and geo polygon are performed either at set time
or in the shader.
A separate bounding box geometry is processed
in the old way to provide a correct QtQuick Item
geometry, that can be used for nesting mouse areas,
performing translations, input event delivery, etc.
With this approach, performance are improved by more
than one order of magnitude in average, but complex
geometries will of course benefit more.
It also adds correct rendering support for polygons
with holes, previously only rendered correctly
by the MapboxGL plugin.
The polyline shader has basic miter joins. The miter is
skipped if the angle is too sharp to avoid complicating
the implementation.
This shader introduces some glitches when the polyline
is minified, for which the real fix is to
have LOD for the geometry, and render simplified
geometries at low zoom levels (added in a subsequent patch).
Note: this approach, at least in its current implementation,
does not support enabling layers on individual items, only
on the Map element.
Task-number: QTBUG-49303
Task-number: QTBUG-38459
Change-Id: I0c2dc0bf364d32f74ca7c4014f6d66e6219c8ae4
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Set parent for incubated objects in MapObjectView to the view.
Also properly set component completed when removing the view from
a map and then readding it.
Finally silence the useless warning about MapObjectView
being unsupported, as the default MOV is basically what's wanted.
Change-Id: Iecbc345ced99754d0d09112b4b30eaca2bb078e5
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Also emitting signals when the parent is changed internally
(e.g., in a MapObjectView).
Not revisioning it since it is used both in QtLocation
and in Qt.labs.location, and setting it to 15 would break
the property in map objects.
Change-Id: Ib11b18b7fcc507b5a11481f84f2bf0bd8c9f558e
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|\
| |
| |
| | |
Change-Id: I95c7e221498d875eb407a3165c2b9e1be2a8b347
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fix missing/incorrect parameter documentation, linking warnings, and
\instantiates references to undocumented/internal classes.
Remove mention of Navigator::currentRoute, as such a property no longer
exists.
Fixes: QTBUG-79811
Change-Id: I048a13109aa19f3db75e76611473d60a2396f028
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|\ \
| |/
| |
| | |
Change-Id: Ifa572a6e1c0835e0ca6d5bf85cde1db854604cf6
|
| |
| |
| |
| |
| |
| |
| | |
Emit on mapReady changed, and do not emit before then.
Change-Id: I1d5c657119cb63989cfa35f58ce57d24833f6438
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|\ \
| |/
| |
| | |
Change-Id: Ia876d943c684fbefddd693f00a16b2f2cec18223
|
| |\
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
.qmake.conf
Change-Id: I21ae20734645fc34b302409163f7400015d8302c
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Change-Id: I2900e1ccc5291148fdc7801c1b6af43ea611db28
Fixes: QTBUG-78712
(cherry picked from commit 9ac4e00e21f5fd7a1a53343d1cf9f4fcaeff01a5)
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This removes connections in map items to react on map changes.
A further improvement could be replacing item lists with QSets.
This might however have implications with plugins which
might expect ordered items.
Change-Id: I52dbd64ed22762b1e2d51d1bc38f496346e7a664
Fixes: QTBUG-76950
(cherry picked from commit 2bb07804f32e0c9cc7948a5cff0bcef81ae9d8c9)
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |\ \
| | |/
| | |
| | | |
Change-Id: I1af75bedd02626b9fd121a04acfbb4418ce37d47
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Idc7cd6ad9f87e2fc511344bc4fc4b409da3b7f02
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|\ \ \
| |/ /
| | |
| | | |
Change-Id: I219a1353a21d29177e0cd7f21d64c06a8f28fced
|
| | |
| | |
| | |
| | |
| | |
| | | |
Change-Id: I54bf3791d3d5e40fb9405c2f1527758fcfba8120
Fixes: QTBUG-78690
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |\ \
| | |/
| | |
| | | |
Change-Id: Id543d32c49c8efd1d7798d41bbee0e28c1742e12
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I786ab35a0e9c8dfa2c8124692289d98e8eee4a8d
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
So that a user-specified list of items can be fitted without requiring
complex computations in JS to deduct the enclosing geo rectangle.
Change-Id: I4a36fe72a49d5fc3566ba0b9fe1db930c4008885
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I0aa13b6c472664ad2c6175fa800687598207ab8e
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This property allows a user to disable the until now built-in behavior
that makes map items fade in or fade out between zoom levels
1.5 and 2.5.
By default the old behavior is kept.
[ChangeLog][Location][MapItems] Added property to disable the automatic
fade-in/fade-out behavior on low zoom levels
Change-Id: Id764f12d34db528f533f14fd561604507681f216
Fixes: QTBUG-76867
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The code here is a bit tricky, as it relies on dynamic property
inspection, and therefore can't use the statically-typed Qt5
connection syntax to simply connect to a lambda to captures 'i' by
value.
But QSignalMapper is not just deprecated, its use here is also
overkill. Unlike your normal signal mapper, the code doesn't map
many source objects to different ints, there is actually one
QSignalMapper object _per sender_. But this use-case doesn't need
all the sender() inspection that QSignalMapper does under the hood.
It just needs a QObject with a map() slot that emits mapped(i),
where 'i' is a member variable.
Implement that.
Change-Id: Ib363144c8ab7997cb0a34c8c9c1a0c348fd38d57
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some types of the private declarative API became visible through implicit
header file inclusion from qqmlengine_p.h. This was changed in declarative
and requires fixing here, but it's backwards build compatible to before
the changes in declarative.
Change-Id: I3553fada4363e88191c127f9cabae2169916ae46
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With this patch the QDeclarativeGeoServiceProviderParameter in the
location-private module becomes QDeclarativePluginParameter in the
positioningquick-private module.
This renamed class is then registered, under the same QML typename
"PluginParameter" both in QtPositioning and QtLocation qml plugins.
In this way it will become possible to use the same type both inside
QtLocation "Plugin" and inside QtPositioning "PositionSource",
and regardless of which is the QML plugin that provides
"PluginParameter", this will translate into the same cpp type.
[ChangeLog][QtPositioning] Exposed PluginParameter also from
QtPositioning qml plugin, to be used in PositionSource as replacement
of environment variables.
Task-number: QTBUG-66304
Change-Id: I1d982ff689130ae896c616480567aa12d9b49c3a
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|\ \
| |/
| |
| | |
Change-Id: I46ebc392ac3f5da89bc9957113247dd18d682fc1
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fix various documentation-related issues, including
missing parameter documentation, broken links, and
typos.
Do some minor language editing.
Change-Id: I0a8f8457e0d1ab56b4fc4670376509adf1fd26a3
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fix warnings:
maps/qgeotilefetcher.cpp:78:36: warning: 'QList<T> QSet<T>::toList() const [with T = QGeoTileSpec]' is deprecated: Use values() instead. [-Wdeprecated-declarations]
declarativeplaces/qdeclarativeplace.cpp:1088:101: warning: 'QVariant qVariantFromValue(const T&) [with T = QDeclarativePlaceAttribute*]' is deprecated: Use QVariant::fromValue() instead. [-Wdeprecated-declarations]
maps/qgeotiledmapscene.cpp:498:62: warning: 'static QSet<T> QSet<T>::fromList(const QList<T>&) [with T = QGeoTileSpec]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations]
maps/qgeotiledmapscene.cpp:498:89: warning: 'static QSet<T> QSet<T>::fromList(const QList<T>&) [with T = QGeoTileSpec]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations]
maps/qgeotiledmapscene.cpp:643:61: warning: 'static QSet<T> QSet<T>::fromList(const QList<T>&) [with T = QGeoTileSpec]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations]
maps/qgeotiledmapscene.cpp:643:94: warning: 'static QSet<T> QSet<T>::fromList(const QList<T>&) [with T = QGeoTileSpec]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations]
/data1/frkleint/qt-dev/qtbase/include/QtCore/../../src/corelib/tools/qset.h:400:23: warning: 'QSet<T> QList<T>::toSet() const [with T = QGeoTileSpec]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations]
declarativemaps/qdeclarativegeomap.cpp:453:45: warning: 'QSet<T> QList<T>::toSet() const [with T = QObject*]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations]
qplacemanagerengine_test.h:477:72: warning: 'QSet<T> QList<T>::toSet() const [with T = QPlaceCategory]' is deprecated: Use QSet<T>(list.begin(), list.end()) instead. [-Wdeprecated-declarations]
../utils/qlocationtestutils.cpp:50:31: warning: 'QString& QString::sprintf(const char*, ...)' is deprecated: Use asprintf(), arg() or QTextStream instead [-Wdeprecated-declarations]
Change-Id: Ice04fd0f158ee95a42f53b33dcb7b9204a33c90e
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is needed after 2b91e2bca3 in qtdeclarative.
Need to be adjusted to QtQmlModels/private/qqmldelegatemodel_p.h
later.
Task-number: QTBUG-75607
Change-Id: Ic6db50798edc47f6bca307be3acd1611282d2e83
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|\ \
| |/
| |
| | |
Change-Id: I46962833cb56c4004df9410fe59dbd34fee5c2b0
|
| |\
| | |
| | |
| | | |
Change-Id: I3f63ff19e947a440286f57bf4734780e8d05a5cd
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Add space, fixing:
declarativemaps\qdeclarativegeomapitemview.cpp(143): warning C4138: '*/' found outside of comment
declarativemaps\qdeclarativegeomapitemview.cpp(148): warning C4138: '*/' found outside of comment
declarativemaps\qdeclarativegeomapitemview.cpp(153): warning C4138: '*/' found outside of comment
Change-Id: Ia63ebb4553661bac1af4dce1adf00befbaa34a87
Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
|
|\ \ \
| | | |
| | | |
| | | | |
refs/staging/dev
|
| |\ \ \
| | |/ /
| | | |
| | | | |
Change-Id: I9c0d23b3db225c7e85337f9f99482d1eea034b21
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
QtLocation and QtPositioning don't depend on it and QtXmlPatterns
is about to be deprecated in Qt 5.13. The only existing dependency
is the geoflickr example. The most likely resolution is to remove
the example once QtXmlPatterns is removed for good.
This change makes QtXmlPatterns an optional build dependency.
Change-Id: Ibcd9e48604cff4d5e52a63164b30616b0eb100f2
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
| | |\ \
| | | |/
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
.qmake.conf
Change-Id: I5700c90ee86873599b5e7c9ccb6cef7ca48153e7
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Currently the views are explicitly destroyed, leading to
issues, in particular for views declared inside the Map.
Change it to simply remove these views from the map.
Child views will be destroyed in ~QObject.
[ChangeLog] Fixed crash when destroying Maps containing
MapItemViews.
Change-Id: Iff9b1afd6b17b55671b1f999b1bf69f172a05483
Fixes: QTBUG-69195
Fixes: QTBUG-74337
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | | |
[ChangeLog] Added notification signal to Map.visibleRegion property.
Change-Id: I77d5e1f086a94a677d452644bb82ada1b765c617
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This was previously missing, making it impossible to require specific
navigation features.
[ChangeLog] Added QDeclarativeGeoServiceProviderRequirements
navigation property.
Change-Id: I75f8f3208aa387aea9d1652bb674fdb747877747
Fixes: QTBUG-72505
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This singleton is meant to offer tech-preview map-related API.
It starts with a mapObjectsAt invokable, that can be used to probe
MapObjects at a specific coordinate of a map.
Reference implementation for Q*ObjectQSG, based on QGeoShape::contains,
included.
Change-Id: Ief692eb5a43115ca02d4642c82023d1b2e217400
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Revision invokable fitViewportToGeoShape method.
Q_REVISION was missing in the change that introduced this invokable
method.
Fix revision of Route.extendedAttribute.
The revision for this property must be 13 as it has been introduced
in 5.13.
Register QDeclarativeGeoLocation with revision 13.
So that the newly added extendedAttributes property, in 5.13, works.
Fixes: QTBUG-74247
Change-Id: Idcddef92966308af118e96a3549ce9e2cf972d72
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
So that it can be used to improve the route calculation based on
traffic information or other time-based information (ferries etc.)
Change-Id: I8bdc81046484cc4f0ebfaffbdf6f034c555d7781
Fixes: QTBUG-70503
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In this way MapObjects become a little closer to MapItems,
and this property can be used to, for example, center the map
on one specific object or object group.
Fixes: QTBUG-69640
Change-Id: I4dbead9e670bf5d1eeaccb2bd09d956b8de7da87
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Triggered by usage of a virtual method in superclass destructor.
Change-Id: If99e523e42fd13686ae43c0083a74e1b68221fc7
Fixes: QTBUG-67638
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I36dd6881b6f6f028869d63b6311cba7f52a99cc4
Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
|
|\ \
| |/
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
Change-Id: I8d0881209c8b0a0dce4ed949ef89ee2679448420
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This workaround is currently needed until QTBUG-72930 gets fixed in
qtdeclarative.
Change-Id: Id75fa2048dd6e012c99f61cdc07cfedbe8c6bf83
Fixes: QTBUG-61509
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
So that there's no risk to mix failures when creating multiple
managers.
Task-number: QTBUG-72180
Change-Id: I5c3b18ba17094e1480b2376e37b58d47029ca8f4
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|\ \
| |/
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
Change-Id: I0724ca9ffbb8099f698b090a4fdd993fad2c2302
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This case was not a problem when the only incubation mode was
Asynchronous, because the test for m_map was done in createdItem.
Now that Synchronous is supported too, this check has to be done earlier
or else instantiated items will never be added to the map.
Change-Id: Ifaa033fb0b64cabe74df395fcb387d162cd02b80
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
|