287 Commits

Author SHA1 Message Date
Matthias Kuhn
0659dd7236 Dox 2019-08-14 10:04:51 +02:00
Matthias Kuhn
f5638fe63d Check that QgsGeometryCheckContext::project is only used from main thread 2019-08-12 07:25:42 +02:00
Matthias Kuhn
43bbaf0c5d dox++ 2019-08-08 08:49:26 +02:00
Matthias Kuhn
c8b277ba6c Call prepare method on geometry checks 2019-08-08 08:24:22 +02:00
Matthias Kuhn
4505a4b03b For geometry validation GAP errors, allow zooming to gap or context
When a topological check returns a gap, it's sometimes better to zoom to the gap,
sometimes to show the gap in the context of the surrounding polygons. There is no
one-size-suits-all solution.
Therefore it's now possible to zoom to one by enabling the "zoom to feature(s)" button
also for topological errors.
2019-07-19 11:59:07 +02:00
Bas Couwenberg
2628c480c5 Don't include revision in sources.
Prevent changes to files that weren't changed between releases.
This eases review of the changes between releases significantly.
2019-05-17 16:47:47 +02:00
Alessandro Pasotti
400e1c76ee doxy 2019-04-17 10:06:41 +10:00
Alessandro Pasotti
ac04339434 Pass transform context to raster calculator 2019-04-17 10:06:41 +10:00
Matthias Kuhn
13a74ae962
Merge pull request #9320 from m-kuhn/geometry-validation-icons
Geometry validation icons
2019-03-20 11:58:28 +01:00
Matthias Kuhn
ee1e7385ce
Add dox 2019-03-13 07:56:55 +01:00
Matthias Kuhn
60512e92df
Clear and load in getFeatures() 2019-03-12 14:28:52 +01:00
Matthias Kuhn
9a839c97f3
Copy data for background threads
reduce requirements to run code on main thread which risks freezes
because of deadlocks
2019-03-12 14:28:52 +01:00
Matthias Kuhn
04cdf63818
Add icons to geometry validation checks 2019-03-02 16:58:08 +01:00
Matthias Kuhn
dcc92de5d0
Merge pull request #9316 from m-kuhn/fix-geometry-validation-crashes
[geometry validation] Stability and performance improvements
2019-03-02 09:54:35 +01:00
Matthias Kuhn
d313405851
Avoid working on reference to temporary objects
fixes a couple of crashes in geometry validation
2019-03-01 13:25:00 +01:00
Matthias Kuhn
d99c1f1f32
Fixes 2019-02-27 17:53:07 +01:00
Matthias Kuhn
149fcc040b
Only report topology errors in affected features
The geometry validation only works on the current edit session (added / edited geometries). To detect topology
errors it is required to also get more features within the context, therefore, the bounding box of the edited
geometries is taken to populate the list of features to check.

This commit filters the found problems so only the ones which actually affect one of the edited geometries
will be reported.
2019-02-27 16:57:37 +01:00
Nyall Dawson
107b48a430 Add NULLPTR macro for use in doxygen comments
For the c++ api dox this expands to "\c nullptr" (the
\c directive indicates a code literal value), and for sipify/Python
it expands to ``None`` (`` is sphinx annotation for literal values)

Makes for nicer dox for both c++ and Python!
2019-02-27 09:41:11 +10:00
Nyall Dawson
d60b5e2d53 Typo, remove unused .sip files 2019-02-27 09:41:11 +10:00
Nyall Dawson
b6d66becab Sipify 2019-02-27 09:41:11 +10:00
Bas Couwenberg
371176357b Fix spelling errors.
* cancelation -> cancellation
 * overal      -> overall
2019-02-24 22:39:40 +01:00
Matthias Kuhn
89ea819938
Make sure Python wrappers of quasi-singletons are kept alive
If they are deleted, any other python wrappers which have been parented to these singletons are deleted too.

One of the most common issues with this is, that subclasses of registry items are deleted and lost.
2019-02-06 12:18:41 +01:00
Nyall Dawson
384d310233 Minor improvements to PyQGIS returns for SIP_OUT params 2019-02-05 04:55:34 +11:00
Peter Petrik
cd9a84e11c [feature] [mesh] Mesh Calculator
Similarly to raster calculator, mesh calculator can take dataset groups from current mesh layer and
combine them with various aritmentic/logical operators to new dataset group.
2019-01-14 12:32:36 +01:00
Matthias Kuhn
6d38a0ed66
Improved API documentation for geometry checks 2019-01-07 15:38:18 +01:00
Matthias Kuhn
b87798cd8f
Make travis even happier 2018-12-22 16:40:27 +01:00
Matthias Kuhn
cb766d7f72
Make travis happy 2018-12-22 15:29:26 +01:00
Matthias Kuhn
929df96e20
Remaining docs 2018-12-22 12:17:13 +01:00
Matthias Kuhn
d3f64deb80
Further doc improvements 2018-12-22 11:54:43 +01:00
Matthias Kuhn
525a3da3ab
More doxygen 2018-12-22 10:57:53 +01:00
Matthias Kuhn
07ab092fb1
Some doc fixes 2018-12-22 10:35:30 +01:00
Matthias Kuhn
65f6e7ba5d
Doxymenation for gap checks 2018-12-22 10:03:22 +01:00
Denis Rouzaud
166e952c33 run sipify 2018-12-19 08:04:27 -04:00
Denis Rouzaud
edfb7e1465 run sipify 2018-12-18 17:17:25 -04:00
Alessandro Pasotti
50e5414232 Coding style and SIP_DEPRECATED 2018-11-30 09:03:28 +01:00
Alessandro Pasotti
49da1c3be9 Return a vector instead of a list and deprecate rasterEntries 2018-11-29 12:46:30 +01:00
Alessandro Pasotti
80c12b590a Extend documentation 2018-11-29 12:35:09 +01:00
Alessandro Pasotti
18854dc7b6 Do not add duplicates in raster calc layers list
Related to #20601
2018-11-29 12:26:57 +01:00
Alessandro Pasotti
e01cb7c46f Fix docstring for findNodes 2018-11-28 11:07:33 +01:00
Alessandro Pasotti
e329fb5b97 Scanline implementation 2018-11-28 10:11:33 +01:00
Nyall Dawson
8ae1880d38 Rename method for consistency, fix dox 2018-11-13 07:13:36 +10:00
Nyall Dawson
8703fb219b [FEATURE][API] New class QgsExifTools
Contains utilities for retrieving the geotag from images and
for setting an image's geotag.

Working with geotags (before this class!) is super-annoying
and fiddly and relies on either parsing command line tools
or depending on non-standard Python libraries which are
not available everywhere, and often very difficult for users
on certain platforms to get installed and working correctly.

With this class we have stable methods for geotag getting/setting
which are universally available and can be used safely
by plugins and scripts.
2018-11-13 07:13:36 +10:00
Matthias Kuhn
02ec785e1b
Fix deadlock in geometry validation
Fix a deadlock in geometry validation. This happens when the mainthread "waits for finished" of a checker thread.

What happened in this case was, that the main thread canceled the feedback and waited for any jobs to finish.
If a job was waiting for a feature source (or something else to be executed on the main thread) this resulted in a mighty deadlock.

What we do here is that we regularly check if we ought to cancel while waiting for our slot on the main thread and can bail out if we should cancel before the main thread gets around to take care of our function.
The difference is, we still execute the code on the background thread and make sure that the main thread is not doing anything during this time to avoid working on the same data structures in parallel.
2018-10-29 15:05:51 +01:00
Matthias Kuhn
3d31d72442
Fix python bindings 2018-10-15 16:05:59 +02:00
Matthias Kuhn
36e83f31c0
Tag geometry check classes as technology preview 2018-10-15 14:29:00 +02:00
Denis Rouzaud
d4ac9a7c00
do not zoom to feature if no extent 2018-10-15 14:28:04 +02:00
Matthias Kuhn
6df73d6d07
QgsVectorLayerFeaturePool needs to be aware of geometry changes 2018-10-15 14:28:03 +02:00
Matthias Kuhn
6a94033487
Make feedback a required parameter for geometry checks 2018-10-15 14:28:02 +02:00
Matthias Kuhn
4607930ece
Allow resolving errors 2018-10-15 14:27:59 +02:00
Denis Rouzaud
550de156c5
make context const 2018-10-15 14:27:58 +02:00