| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Change-Id: I18fc1788f7af0efe76f97257ffe739eb1a96e6cc
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
| |
Change-Id: I7385348d7b6ec22fa92ed1be65f89e262c38b5c0
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change moves QGeoTiledMappingManagerEngine::CacheAreas to the more
appropriate container that is QAbstractGeoTileCache, which already
uses this enum in its interface.
Together with making the virtual init() method of QAbstractGeoTileCache
public, instead of protected, this patch effectively disentangle
QAbstractGeoTileCache/QGeoFileTileCache from the
QGeoTiledMappingManagerEngine, and makes it usable potentially also
by other (tile) renderers.
Change-Id: Ic635b81660f81d86884cc6b00e3a2ab9420daa9f
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch changes the base cache directory to a new scheme containing
the qt version. At the time of commit, this would be
"QtLocation/5.8/tiles/"
This versioning does not have to change at every release, but when there
are changes in the caching scheme.
The reason for this is that, otherwise, it becomes difficult to clean
up old cache data.
QGeoFileTileCache::init already clean up old tile cache from 5.4 or
older, where the cache data wasn't organized under a directory for
each plugin.
In 5.8 different naming scheme are introduced for mapbox tiles
(with @1x,@2x) , here maps (with ppi), and soon for OSM too (with an
identifier for the actual provider, not only the mapId).
With this patch it will become easier and cleaner to upgrade the
cache data without leaving residues.
Change-Id: I89aeac0aaf1408d119cde5792fc69a64d5d89c3a
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|\
| |
| |
| | |
Change-Id: I6a1a72547077c628429ee9a0781070ad3ae787f1
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently setTileFetcher and setTileCache behave in two different
ways, while the former relies on having the parent set properly
for the destruction, the latter is deleted on destruction
With this patch handles both pointers are handled in the same
way: they are parented in the setter, and the destruction is
left to the qobject destructor.
Change-Id: Iaf11a12cd95088fd2268817b39fb9d58311b1812
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
|/
|
|
|
|
|
|
|
|
| |
Currently the qgeofiletilecache/qgeofiletilecachemapbox contains a bug
in that it makes use of virtual functions in the constructor.
This patch fixes it by moving those calls into a virtual init()
method that is called by QGeoTiledMappingManagerEngine::setTileCache()
Change-Id: Icf7932dfbae7d99eef22c67e034246a834212a03
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
|
|
|
|
|
|
|
|
| |
Recent change adds setter for TileCache, use new setter
in here plugin, remove obsolate create function.
Change-Id: I8f5ee726f6c14ea6fa2adf82a4713d5b37c6a78b
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This update adds a new method "setTileCache" to the
QGeoTiledMappingManagerEngine class. The method allows custom
map implementations to set their own cache.
The update also fixes a compiler warning (ctor variable order) and
adds Q_DECL_OVERRIDE checks.
Change-Id: I22cfdb218ae5c9af145d688f11aab655f4ed3e4b
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The QGeoTileCache is split into two classes:
The abstract class QAbstractGeoTileCache offers interfaces for inserting
and getting tiles, as well as getting cache status information such as
used texture memory.
The new class QGeoFileTileCache implements QAbstractGeoTileCache and offers
a file based caching implementation (the implementation is the same
as before splitting the class).
Change-Id: I2eab7491d489ac5b251c1296b67688901f5cc7d7
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of having it in several random places, have a central function
that contains all the cache directory selection logic.
As per QtCore docs GenericCacheLocation can be empty so introduce a fallback
to CacheLocation (the app-specific, non-shared location) in case some
future platform does not support the former.
Task-number: QTBUG-41187
Change-Id: Icfe5e8926e917483ac11844f625244318ff815c7
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
| |
Here maps plugin checks server for tile version.
When tile version is updated, update not only
the current camera tiles, but also scene tiles.
Task-number: QTBUG-44809
Change-Id: Iedb3add5308a2e61cc18e169e33ea4510e1a4fee
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
|
|
|
|
|
|
| |
Removes not required engine registration.
Change-Id: I5d30043a33785e0dcd798517754e846a7f420220
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since mapping engine is going to be destroyed
on geoseriveprovider change/plugin unload use
QPointer to track engine existence before
making calls.
This commit refactors a bit QGeoTileRequestManager
to handle all the calls to the enigne. Check for
null pointer before calling the engine. Move
registerMap method to base class.
Update QGeoTiledMapNokia class accordingly.
Change-Id: I886e85e660b2c515e4a617e98e9cc0c3c13781b6
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit:
* renames class members to use m_ naming convention
* removes not required includes
* removes not required forward declarations
* adds Q_DECL_OVERRIDE
* removes prefetchTiles() call
Change-Id: I3f41cce7fcb0050adb8a5ad90304419b81476955
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
|
|
|
|
|
|
|
| |
Rename all references and files with 'MapData'
to use shorter name 'Map'.
Change-Id: I8ab790146ee28e540e6866ba0218eea61bae6e64
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
|
|
|
|
|
| |
Change-Id: I3007aa04d3dbc0e00cb0a43987d64d01ddf91edd
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
|
|
|
|
|
| |
Change-Id: Ia1e333be7fec8898de609d9b9303b1ad7687632e
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This has the advantage that concurrent use of multiple plugins
doesn't force one plugin to load the tiles and queues of another plugin
into its tile cache.
QGeoTileCache could potentially separate the non-relevant tiles as well
but that's even more effort and requires the QGeoTileCache instance
to know to which QGeoMappingManagerEngine it belongs.
Task-number: QTBUG-40780
Change-Id: I342168c30a424b9f66d9c4e07694c1e3a9f2a412
Reviewed-by: Michal Klocek <michal.klocek@theqtcompany.com>
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
|
|
|
|
|
|
|
|
| |
- Renamed LICENSE.LGPL to LICENSE.LGPLv21
- Added LICENSE.LGPLv3 & LICENSE.GPLv2
- Removed LICENSE.GPL
Change-Id: Iedee2507ab1bd46788409a98505d7be510253110
Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QPointer holds a guarded pointer to a QObject. It must always be tested
prior to use.
Changed the parameter type to remove the need for the static_cast when
setting the QPointer member.
The root cause was that the tile fetcher object was not being destroyed
when the mapping manager engine was. Which was because the two objects
were in different threads. Some of the service specific tile fetchers
were directly calling into the engine objects across thread. Gah.
Since Qt 5 QNAM uses an application global thread for processing
requests, there is no need to use threads in the tile fetcher.
Change-Id: Id9df35ddfa78df2cbf334006fe5fc9726a75f92d
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
|
|
|
|
|
|
|
|
| |
It was possible for another thread to attempt to stop the timer used by
the tile fetcher.
Change-Id: Ic44cf416bc7e6c987c4b5c9914a1c7d911dbbea5
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
|
|
|
|
|
| |
Change-Id: I5b0cb7d56997ad7b91c073b3e02b31d0368fdcfa
Reviewed-by: Alex <alexander.blasche@digia.com>
|
|
|
|
|
|
|
|
|
| |
qgeocameratiles.cpp:584:31: warning: typedef ‘iter’ locally defined but not used [-Wunused-local-typedefs]
qgeotiledmappingmanagerengine.cpp:237:51: warning: typedef ‘cache_iter’ locally defined but not used [-Wunused-local-typedefs]
locationvaluetypeprovider.h:73:10: warning: unused parameter ‘dataSize’ [-Wunused-parameter]
Change-Id: I7200cc6094ce55c807b3e6dbbd37b6b94f5e6a57
Reviewed-by: Aaron McCarthy <mccarthy.aaron@gmail.com>
|
|
|
|
|
|
|
|
| |
Change copyrights and license headers from Nokia to Digia
Change-Id: Ic1390da64a219642fa1e1482a7677a4c2db15cbc
Reviewed-by: Janne Anttila <janne.anttila@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The preliminary C++ Maps API was exposed to provide an interface
between the QML plugin and the geo services plugins. Mark it as
private API for now as it is likely to change when the full C++ API is
developed.
Mapping functionality is currently only available through QML.
Change-Id: Id16e0f1a2165c70192047dffa40e69ab1f29ba69
Reviewed-by: Alex Wilson <alex.wilson@nokia.com>
|
|
|
|
|
|
|
|
| |
Fix crashes during debug session.
Change-Id: Ia351a6423efddbf45ce3a78d0b800c405e33a986
Reviewed-by: Thomas Lowe <thomas.lowe@nokia.com>
Reviewed-by: Alex Wilson <alex.wilson@nokia.com>
|
|
|
|
|
|
|
|
| |
- The library does not seem to depend on network.
- Remove unneeded dependencies on QtWidgets.
Change-Id: Icdbe8a00c746a1ec0d7512f74e0f2566148fdb6e
Reviewed-by: Jean Gressmann <jean.gressmann@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Use of weakPointer to prevent accessing deleted memory. Plus thread exiting to
cause the fetcher and thread to destroy themselves.
Additional use of weak pointers to deal with the complexity of the mapping manager
destructing before the declarative objects.
Task-number: QTBUG-25797
Change-Id: I6a27568580c1a00f7588565ff7e35d63eb5dd785
Reviewed-by: Aaron McCarthy <aaron.mccarthy@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prefetches larger set of tiles when camera is stopped
QTBUG-25136
Prefetch implementation including zoom-level prefetching
Two prefetching options- pan buffer, or pan buffer for two nearest zoom levels
Code simplified by removing all three visibleTiles lists, so they can't go out of sync
Textures not promoted up the cache if they aren't visible when retrieved from server
Also: Prefetch on map initialize + optimisation
This ensures that the prefetch is called at the end of initialisation
Useful if the location is not already in disk cache. And makes no
difference if it is already in disk cache.
QTBUG-25786
Change-Id: Ife7c1d103f83695659f4534880268fa5afd8f7c7
Reviewed-by: Alex Wilson <alex.wilson@nokia.com>
|
|
|
|
|
|
|
|
|
| |
In C++ it is perfectly valid to delete a null pointer.
http://www.parashift.com/c++-faq-lite/freestore-mgmt.html#faq-16.8
Change-Id: I60dc123b01e1ef015751143274579024e4c0becf
Reviewed-by: Alex Wilson <alex.wilson@nokia.com>
|
|
|
|
|
|
| |
Change-Id: Ie527591e2d9a1578137136fb6664e86c43eed1bf
Reviewed-by: Thomas Lowe <thomas.lowe@nokia.com>
Reviewed-by: Alex Wilson <alex.wilson@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
* Single spaces after keywords and before a bracket/brace
* Binary operator spacing
* Curlies at open of class/function body
* Spacing around some type specifiers/declarations
Change-Id: Ie516283e7a39c7ce83071ea8125774c76db611f5
Reviewed-by: Aaron McCarthy <aaron.mccarthy@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This isn't completely what was requested on the ticket, but it makes the cache more separate,
so easier to pull in/out.
Mainly this is a slight reworking of the caching to make it a bit simpler for future prefetching.
In particular:
mapGeometry renamed to mapScene
mapImages renames to tileRequestManager
and mapImages::setVisible is now tileRequestManager::requestTiles
The data flow has been simplified so the requestManager speaks directly to the tiledMappingManagerEngine and this engine takes care of inspecting the single cache.
Task-number: QTBUG-25560
Change-Id: I31b2e26c45f7a7ac56fe138cf1a8906a228a93d3
Reviewed-by: Alex Wilson <alex.wilson@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This allows us to fetch tiles over unreliable network links a bit
better -- burst errors of only a few seconds will no longer drop
tiles.
Change-Id: I00c33424b58e032b1fb74c89052ea7f5cbd97d30
Reviewed-by: Thomas Lowe <thomas.lowe@nokia.com>
Reviewed-by: Ian Chen <ian.1.chen@nokia.com>
Reviewed-by: Alex Wilson <alex.wilson@nokia.com>
|
|
|
|
|
|
|
|
| |
Also separates handling of the minimum texture cache size (based on
viewport dimensions) from the maximum allowed value.
Change-Id: I3b4ff5f9e1d017d7137ff8d01d4977ae59de7181
Reviewed-by: Alex Wilson <alex.wilson@nokia.com>
|
|
|
|
|
| |
Change-Id: I58a7191dae9cd441025cad658d82422561f216f6
Reviewed-by: Aaron McCarthy <aaron.mccarthy@nokia.com>
|
|
|
|
|
|
|
|
|
| |
This was fixed previously but partly removed by the non-tiled maps
API refactoring.
Change-Id: I038adf2d8b561c5d71700a3cd839de6956246239
Reviewed-by: Alex Wilson <alex.wilson@nokia.com>
Reviewed-by: Cristian Adam <cristian.adam@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Replaces the old use of QCache in QGeoTileCache with a new QCache3Q,
which is more optimal for many tile workloads. Resource management
for textures and tile data is now enforced and managed correctly
across threads. Textures are passed around as QSharedPointers to
guarantee that cache eviction policy will not interfere with the
correctness of rendering.
Change-Id: I93eb49ea3ad009d85f394f92c59a4b22962b88a7
Reviewed-by: Alex Wilson <alex.wilson@nokia.com>
|
|
Refactoring QGeoMap, QGeoMappingManager, QGeoMappingManagerEngine
Introducing QGeoMapData, QGeoTiledMap, QGeoTiledMappingManagerEngine, QGeoTileFetcher
QGeoMap: Container for QGeoMapData
QGeoMapData: No tiles data/functionality
QGeoTiledMapData: Implements tiles data/functionality.
QGeoMappingManager: Looses tiles-related data/functionality.
QGeoMappingManagerEngine => QGeoMappingManagerEngine (no tiles
data/functionality) QGeoTiledMappingManagerEngine (implements
tiles-related data/functionality).
QGeoTileFetcher: Implements tile fetching functionality from tiles
provider.
This commit compiles and runs through mapviewer example. Tests also were adjusted to
fit refactored architecture.
Change-Id: Id2b62d62d5cd4aaca8295c67e44c009cde636462
Reviewed-by: Alex <alex.blasche@nokia.com>
|