I am not entirely confident if it will work perfectly with older versions of GEOS (< 3.3)
because of the lack of unary union (that is emulated by series of unions of two geometries)
* add test for QgsGeometry::addPart()
* remove expectedFailure decoration from PyQgsGeometry.testSimplifyIssue4189
* modify move and translate tests by 1,1 to 1,2
* rework wkb parsing using Qgs(Const)WkbPtr
* replaces pointer dereferencing with memcpy
* should work on platform that don't allow unaligned accesses
* "fix" adjacentVertices() for invalid inputs
* improved support for MULTIPOINT
* fixes insertion of first vertex into linestrings
* fixes inserting into multipolygons
- QgsFeature owns QgsFields (otherwise the assigned QgsFields may get deleted)
- updated QgsRenderChecker to use map settings + map renderer job
- fixed DPI issue in map renderer to map settings conversion
- fixed vector layer cache (failing file operations)
There are still few tests that keep failing compared to master branch,
but the reason for failure are tiny pixel diffs and we should probably just
update the expected images.
As a bonus, spatial index is a bit faster (10%) as we do not use random eviction buffer
anymore (which makes sense only when using disk storage manager).
Added basic tests for spatial index
More changes:
- few improvements to map renderer job API
- added basic unit test for map renderer job
- map canvas uses P key to switch parallel/sequential rendering
This is an important change: new class (QgsMapLayerRenderer) is introduced
and it keeps all information from layer which is necessary for rendering.
Thanks to that, any changes to map layer will have no impact on rendering that
may be currently underway: if the user changes renderer, rendering will
not crash because it is using a different instance.
Work in progress: only vector layers, no labeling, no diagrams, iterator
still uses some bits from QgsVectorLayer.
Another change: QgsFeatureRendererV2, QgsSymbolV2 do not get access
to QgsVectorLayer - only to fields they need. Point displacement renderer
did more extensive use of QgsVectorLayer - currently it is not functional.
* With a selection model, the way the attribute table handles selections
can be customized. E.g. synchronized to layer selection or used to pick
features.
* With request filters, the visible features on an attribute table can be
limited. This will effectively reduce the subset of features the attribute
table works on. Additional filters by means of a proxy model can of course
further reduce the visible subset subsequently.
- Handle bundled app path on Mac
- Move test writes to temporary, instead of source, directory
- Add Mac code for options.ini parent directory
- Add Mac options.ini file for plugin path test
- Clean up imports