summaryrefslogtreecommitdiff
path: root/src/imports
Commit message (Collapse)AuthorAgeFilesLines
...
| | * | Fix for Map polygon not working on zoomPaolo Angelelli2016-09-191-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes a bug in the calculation of the geoleftbound of map polylines/polygons Task-number: QTBUG-55535 Change-Id: I11c2d2cecfdb183944d2f2766180938efa3deef6 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: Michal Klocek <michal.klocek@qt.io>
| | * | Fix for polylines and polygon rendering wrong at the edge of the mapPaolo Angelelli2016-09-192-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes a bug in rendering (re)created polylines/polygons right at the edge of a map, due to not setting preserve geometry to true on geometry modifying methods (addCoordinate/setPath/etc) Task-number: QTBUG-55964 Change-Id: I94bc86e8c908bc0ab4a949d96094988ed7ea26a7 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
| * | | Fix compilationMaurice Kalinowski2016-10-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6df6c10e1af827d06a387e7422176dd310cf83be in qtdeclarative changed enum values. Change-Id: I55ffa6a2e55a63aec455db533e9d7b08a44978bb Reviewed-by: Michal Klocek <michal.klocek@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | | | Fix for occasional gray bands appearing upon window resizingPaolo Angelelli2016-10-191-2/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QDeclarativeGeoMap::geometryChanged missed recomputing the latitudinal bounds for the map center upon resize. This may have resulted in center values too far north or far south for certain window sizes. Change-Id: Id306cdaf1c943655da5e40c18379f0b4f1c7b256 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* | | | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-10-074-35/+17
|\ \ \ \ | |/ / / | | | | | | | | Change-Id: I611a0246be70787c541a24a136e332314c3ff3a7
| * | | Fix panActive state when last touch point is releasedFrederik Gladhorn2016-10-051-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a touch interaction ends, the map would only consider the number of points, not their state. Thus when pan was active, it would always stay active, because in the release event, the number of points is still at least one. This also requires a reset of the synthetic mouse point, since otherwise the mouse point will be copied into the list of touch points, preventing the number of points to ever go down to zero. Change-Id: I9821d09d75f883d01eb38b741e2b5658036be334 Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
| * | | QDeclarativeGeoMapItemBase::childMouseEventFilter: Do not eat release eventsFrederik Gladhorn2016-10-051-11/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The filter can lead to events outside of the item being "dismissed" or rather sent the the map item. When testing with MapRects, when dragging a map rect fast, I would sometimes get release events outside of the map rect, which would then end up being deliverd to the QDeclarativeGeopMapItemBase subclass. This effectively prevents MouseAreas inside of the GeoMapItem from receiving their release event. That in turn breaks follow up events to said items. While I still consider this extremely evil and bad behavior, at least this doesn't completely break event delivery any more. Change-Id: I228d64e04140e2434779d07d8f03a8e9f2d11f83 Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
| * | | Remove a bunch of ungrabTouch/Mouse callsFrederik Gladhorn2016-10-041-15/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ungrabbing means actively not wanting to receive any future events. With slight changes in the event delivery in Qt 5.8, this leads to release events not being delivered to the items, which in turn means that the map thinks it's pressed after the last touch is gone. There is no reason to call ungrab at all, when an event ends in a regular way (release/cancel). The only reason to ungrab is when for some reason future move/release events are unwanted, in which case the item needs to make sure it's in the right state (as in not expecting release events to follow). Task-number: QTBUG-56213 Change-Id: Ieb8dbf4d8ab312cff461c4fe8a3621af67a132b9 Reviewed-by: Paolo Angelelli <paolo.angelelli@theqtcompany.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * | | Fix typoFrederik Gladhorn2016-10-031-1/+1
| | | | | | | | | | | | | | | | | | | | Change-Id: I914aa8463395f3473fa0c9f060b5216a9e0bab56 Reviewed-by: Paolo Angelelli <paolo.angelelli@theqtcompany.com>
| * | | Remove dead codeFrederik Gladhorn2016-10-031-5/+0
| | | | | | | | | | | | | | | | | | | | Change-Id: I5aa31198e0d5a65ccc45bb57cef266a167a1cd48 Reviewed-by: Paolo Angelelli <paolo.angelelli@theqtcompany.com>
| * | | Add missing panActiveChanged after flickingFrederik Gladhorn2016-10-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While flicking, the map is in motion, so reporting pan as active is OK, but when the flick is done, emit the state change signal. Change-Id: I7978471ada11e0b69ca57d6d73faf7b2e3335232 Reviewed-by: Paolo Angelelli <paolo.angelelli@theqtcompany.com>
| * | | Fix struct/class mis-matchFrederik Gladhorn2016-09-291-1/+1
| | | | | | | | | | | | | | | | | | | | Change-Id: Ia979525691781a08503ba91df42db12db6408e89 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* | | | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-09-214-5/+6
|\ \ \ \ | |/ / / | | | | | | | | Change-Id: Icd4fc726e755bd4ec8ca0bf7631cd481fc3148a8
| * | | Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-09-182-3/+4
| |\ \ \ | | |/ / | | | | | | | | Change-Id: I5bcca8956007506362c5a96ff345e28718da584c
| | * | Fix for wrong map center at startup in mapviewer examplePaolo Angelelli2016-09-052-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patches fixes an incorrect behavior (that is also a regression) introduced as a side effect of the no gray bands patch in the map viewer example Task-number: QTBUG-55085 Change-Id: I2078ba72e1d1588357bb2002d0c8e38b2f59253c Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| * | | Improve robustness of QML plugin loadingSimon Hausmann2016-08-262-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use a variable that expands to the latest plugin version instead of hard-coding the string. Change-Id: I8f7864e4ead85487943ed2c4dc2ae2584005c1c9 Reviewed-by: Paolo Angelelli <paolo.angelelli@theqtcompany.com> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* | | | Fix class vs struct mismatch warningJake Petroules2016-08-231-1/+3
|/ / / | | | | | | | | | | | | Change-Id: Id9951513cd9c0eb5d71ddf897c96fe7b900fc316 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-08-162-2/+8
|\ \ \ | |/ / | | | | | | Change-Id: I21723590f0085ecdeaf445336084e35a7f00d3f1
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-08-162-2/+8
| |\ \ | | |/ | | | | | | Change-Id: I1903c3a181663c424f0ff13abcc9fb7a5bdb784e
| | * Fix for invisible copyright notice with Holo theme on androidPaolo Angelelli2016-08-051-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The copyright notice is currently rendered using the default application palette. This patch forces the text and link colors to black and blue, since the notice is always shown on top of the map and other colors may not work. Task-number: QTBUG-54964 Change-Id: Icc8832124cd64d5326e0aa7540e3287c4325d31d Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> Reviewed-by: Johan Helsing <johan.helsing@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
| | * Fix accessing a MapPolyline delegate before it is handed over to MapPaolo Angelelli2016-08-041-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QDeclarativePolylineMapItem::path() currently retrieves a QQmlContext with contextForObject(parent). This can return a null context if the parent is null. This patch changes the parameter to the this pointer, returning the context for the object itself. Task-number: QTBUG-55081 Change-Id: I48d6abd8be1b3d9505e37338da2b64812375374c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | QDeclarativeGeoMap::sendTouchEvent: fix compilationSimon Hausmann2016-08-121-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit eb238e2cf9013f9a6cd20af0a59180896abdc377 got rid of QQuickWindowPrivate::itemForTouchPointId by keeping track of the grabbers in the event points. Task-number: QTBUG-55229 Change-Id: Icc4bcc987937ee299a47d8aa43147adc53369f47 Reviewed-by: Paolo Angelelli <paolo.angelelli@theqtcompany.com> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-08-022-0/+39
|\ \ \ | |/ / | | | | | | Change-Id: I9bfe99e7e619cbf03cda73c3df4f2f51851474ae
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-08-012-0/+39
| |\ \ | | |/ | | | | | | Change-Id: I4f29307985225a723304783e00a6844a1b9ee825
| | * Enable dynamic addition/removal of map types by the mapping managerPaolo Angelelli2016-07-292-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Map types are currently fixed in the constructor, regardless of whether they were available, or, now, whether they are enabled or not. This patch makes the geomappingmanager notify (e.g., emit a signal) when the available map types change at runtime. This is used in the OSM mappingmanagerengine, which can now disable map types if provider records turn out to be invalid or disabled after they have been fetched. Change-Id: I8e0e75504c882609f91c6d1ceb88424eee656f26 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* | | Merge remote-tracking branch 'gerrit/5.7' into devAlex Blasche2016-07-2915-226/+557
|\ \ \ | |/ / | | | | | | Change-Id: I6a1a72547077c628429ee9a0781070ad3ae787f1
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Michal Klocek2016-07-289-139/+349
| |\ \ | | |/ | | | | | | Change-Id: I37542960aa091ab2074914a2cebb8c5114237a26
| | * Add minimal map qml exampleMichal Klocek2016-07-281-23/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QtLocation was missnig basic example to show maps, the one you can simply jump in and start hacking. Change-Id: I0aec90ae25aa703d84f7e52e4dd523931819e79c Reviewed-by: Paolo Angelelli <paolo.angelelli@theqtcompany.com> Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
| | * Fix the fitViewportToGeoShape calculationMichal Klocek2016-07-281-32/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current implementation is calculating the bounding box of a geocircle based on moving along a circle of latitude by the distance of a circle's radius. Unfortunately the distances on a small circle of a sphere are greater than great circle distances. Reimplement the calculation using tangential points between a geocircle and meridians. Do not center the viewport in the center of the geoshape, use the center of the bounding box instead. Simplify zoom level adjustment calculations, use the reference world plane to get rid of longitude wrapping and rounding erros. Finally update a viewport unit test, adjust the minimum map size to 256x256, so fitToViewport calls have chance to succeed. Fix out of order test execution. Task-number: QTBUG-54337 Change-Id: I61726a4eb7183470c493ceb03d101f3a75305121 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| | * Fix for qgeocirclemapitem generation with invalid radiusPaolo Angelelli2016-07-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | this patch adds a validity check on radius_ before proceeding to updatePolish() Task-number: QTBUG-19929 Change-Id: I4a1d79761b77ed27846be249c685ad94dc47a028 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
| | * A fix for not working setVisibleRegionMichal Klocek2016-06-242-3/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Setting the visibleRegion, than changing the map center or zoom and than setting it again does not work. Fix the issue by invalidating the region on the zoom or center change. Task-number: QTBUG-54141 Change-Id: I4e680f146312e3a3aa90e27fae213042cc2b2a42 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
| | * Delay removal/readd of map items until incubation completion on resetPaolo Angelelli2016-06-246-81/+257
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the model is reset, QDeclarativeGeoMapItemView currently removes all map items and then begins recreating new delegates for model items. This causes flickering since the mapitems are removed at once, but the repopulation is asynchronous and allows the scene graph to repaint in the meanwhile. This patch delays the removal of current map items until all the new items have been all incubated, so that removal and readd happen at the same point. The patch also adds additional checks to methods like itemModelRowsRemoved, to verify if an item is still incubating. Task-number: QTBUG-52301 Task-number: QTBUG-54188 Change-Id: I2f27114c3898bd61b1282b1f27b5f062bed1fe35 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
| * | Fix for wandering QGeoMapPolylineGeometryPaolo Angelelli2016-06-287-65/+176
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QGeoMapPolylineGeometry is currently erratic due to the semi-randomly varying geoLeftBound, that basically defines how the line will be drawn. This patch uses a consistent way to calculate this value in all the QDeclarativeGeo-items, at coordinate-definition time. The new approach implies that each pair of points in a polyline are connected in the longitudinal direction of the shortest path. The patch attempts to optimize the common addCoordinate path by incrementally searching for the left bound. The patch also makes the other geoshapes (GeoPolygon, GeoCircle) behave in the same way. Task-number: QTBUG-43107 Task-number: QTBUG-52610 Change-Id: I7a0f6c4370fd6c50999fd2e5b1a7aa5954c8a8fc Reviewed-by: Michal Klocek <michal.klocek@theqtcompany.com>
| * | Fix for crash on tessellation of self-intersectiong GeoPolygonsPaolo Angelelli2016-06-152-22/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QtLocation makes use of a 3rd party library for polygon tessellation, poly2tri. This library is known to be weak in handling complex input, like, for example, polygons with self intersecting edges. Sanitizing the input data through clipper solves the problem, and it has already been implemented in the clip2tri library, which this patch includes and uses. Task-number: QTBUG-52076 Change-Id: I071a58e202345bc71da583995f7245361f00e8c4 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
* | | Remove updateMutex from qml mapMichal Klocek2016-07-152-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove mutex guarding adding and removing map items, it looks like relict from old offline implementations. Change-Id: I321e019e2c73d01e81595766c590a500a63f099e Reviewed-by: Paolo Angelelli <paolo.angelelli@theqtcompany.com> Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
* | | Refactor: rename improperly named methodsPaolo Angelelli2016-06-301-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After consultation, it seems that Qt favors using "At" rather than "For" in naming a method such as "maximumLatitudeForZoom". Moreover, this methods returns the maximum latitude that map center can have at a specific zoom level, so it is important to make that clear not only in the comments but also in the method's name. Change-Id: I26f0d18f8ca94b1bdd085cd49dd603d51a68689b Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
* | | Enable building with QT_NO_OPENGL defined by using QSGGeometry EnumsAndy Nichols2016-06-243-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rather than use OpenGL Enums directly in the code, now it is possible to use graphics system agnostic defines for building geometry for when the OpenGL headers are not available. QtLocation has been ported to use these new Enums. Change-Id: Ica6793e33cb7df1c9568681e478974aa9fefe156 Reviewed-by: Paolo Angelelli <paolo.angelelli@theqtcompany.com> Reviewed-by: Michal Klocek <michal.klocek@theqtcompany.com> Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
* | | Migrate to cross-API helper scenegraph nodesLaszlo Agocs2016-06-231-7/+6
|/ / | | | | | | | | | | | | | | Maps are now functional with the Direct3D 12 as well. Change-Id: Ia03c6c5b10d74895140ad10835df0ae1ea9724b2 Reviewed-by: Michal Klocek <michal.klocek@theqtcompany.com> Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-06-103-4/+6
|\ \ | |/ | | | | Change-Id: I36abd2a91a470360c87f23a6d8084f908d93e7e0
| * fix for losing map item focus while dragging themPaolo Angelelli2016-06-021-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | QDeclarativeGeoMapItemBase::childMouseEventFilter currently does a contain() check on the clicks but also on the mouse move events. by not doing it on mouse move events the problem seems fixed, but the autotests get broken because it seems that the map doesn't get panned anymore but the element gets dragged instead. Task-number: QTBUG-52075 Change-Id: I5ce340ca591ec924eebed1fe7acda18d31301fc5 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
| * Polish and update map elements on window resizePaolo Angelelli2016-05-312-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | When the a map element gets resized, the center stays the same, meaning that map estate gets added (or removed) on each side of the element in equal amount. This means that the old screen coordinates of a map element change, and therefore it must be repolished and updated. Task-number: QTBUG-53128 Change-Id: Id26b111e8e33075082fa599e6eac92cb8089f5e4 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
| * Include childItems among the elements to check in populateMap()Paolo Angelelli2016-05-311-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | QDeclarativeGeoMap::populateMap() currently considers only the children() of the map when populating the map. QQuickItems like the Repeater do not add the generated objects among the QObject children, but only to the QQuickItem childItems. Therefore populateMap() should consider both lists together. Task-number: QTBUG-52514 Change-Id: Ic919bc91c70242d6f5c4e67a63ff01482abed0ca Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
* | Fix setZoomLevel and setCenter when called before initializationPaolo Angelelli2016-05-311-2/+2
| | | | | | | | | | | | | | | | | | | | setZoomLevel and setCenter must not do value clamping before the map has been fully initialized. Initialize() will take care of adjusting these values when called. Task-number: QTBUG-52030 Change-Id: I1b2004668c8482a4a0f54b00cbd8efb2dce1feca Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
* | Fix buildMaurice Kalinowski2016-05-101-2/+2
| | | | | | | | | | | | | | | | c6c0d730b7a88fa22f40d597183e91b73d9d165d in qtdeclarative changed private API. Hence adapt to those changes. Change-Id: I6acd948b0a1257e8836d5e5f6ebfd3b4b6d8e07b Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | Update QML version to 5.7 for QtPositioning and QtLocationAlex Blasche2016-04-294-9/+17
| | | | | | | | | | Change-Id: Ibbd06c3bc6c2c745a8e2fc6ee12a974bb40bf80a Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Map.copyrightsVisible is a new property since 5.7Alex Blasche2016-04-291-0/+2
| | | | | | | | | | | | | | | | Mark it accordingly in the documentation Change-Id: Ia5a57fe0bdf290deb39ef914d4e23cf646a06848 Reviewed-by: Sami Makkonen <sami.makkonen@theqtcompany.com> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* | Remove inconsistent qreal/double co-mingling/comparisonv5.7.0-beta1Donald Carr2016-04-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | Fixes build breakage on machines where qreal = float (many ARM devices). Avoid needless float to double conversion before assignment back to a float. Change-Id: Ia11c9dc912361f5aa05c4e01dec45c0d7b477609 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net> Reviewed-by: Paolo Angelelli <paolo.angelelli@theqtcompany.com> Reviewed-by: Michal Klocek <michal.klocek@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-04-081-0/+3
|\ \ | |/ | | | | Change-Id: I9e85d2002151f7c53d2edbb4d8a078816aff693e
| * Fix crash when no items available and DataChanged is called.Marko Kangas2016-04-061-0/+3
| | | | | | | | | | | | | | | | Added check to do nothing if no items available to avoid crash. Task-number: QTBUG-52174 Change-Id: Ibe870480b24129733b051c4b2b172b554a3c9602 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
* | Reduce setCameraData calls to minimumMichal Klocek2016-03-171-9/+3
| | | | | | | | | | | | | | | | | | | | | | Remove checks for cameraCapabilities during each setCameraData call. This checks are already performed on plugin initialization. Refactor QGeoMapPrivate to reduce resize calls. Rename updateRequired to sgNodeChanged to reflect real useage. Add setter setSize for QGeoMap. Change-Id: If4e3501fa99a8a97cbc471990837b08c43b8e723 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>