27 Commits

Author SHA1 Message Date
Nyall Dawson
a05b610a8b [processing] Use prepared geometries for intersects tests
Wherever possible use prepared geometry engines for intersects
type tests, as it's much faster
2016-10-17 11:18:46 +10:00
Nyall Dawson
86368f39c3 [processing] Optimise feature requests within qgis algs
- don't use setFilterFid() within loops to fetch features one
at time (as it's extremely slow), instead use setFilterFids()
outside the loop
- don't fetch unused attributes/geometry when it can be
avoided
2016-10-17 10:30:55 +10:00
arnaud.morvan@camptocamp.com
4184934b9a [processing] Apply 2to3 on changes 2016-10-05 12:39:01 +02:00
Juergen E. Fischer
31df84aa6b run 2to3 on source 2016-09-21 23:30:04 +02:00
Alexander Bruy
65db336eaf [processing] move some constants to the dataobjects module 2016-09-02 09:28:45 +03:00
Alexander Bruy
80653c7aff [processing] adopt native algs to use output geomerty 2016-09-02 09:28:32 +03:00
Nyall Dawson
c1649ebef4 [processing] pendingFields() -> fields()
Does the same thing, but pendingFields() is ugly
2016-08-05 06:31:07 +10:00
Nyall Dawson
06c4b07222 [processing] Use layer crs/fields instead of provider crs/fields
Since the layer has more complete knowledge of the crs (ie, when
provider could not determine crs and user has selected it from
the list), and also better knowledge of layer fields (virtual
fields, joined fields) we should use these rather than the
provider methods.
2016-08-05 06:28:49 +10:00
Matthias Kuhn
bb79d13e82 Remove deprecated Qgis::WKBType and API cleanup (#3325)
* Remove deprecated Qgis::WKBType and API cleanup

Renames QgsWKBTypes to QgsWkbTypes

Replaces usage of the enums:

* Qgis::WKBType with QgsWkbTypes::Type
* Qgis::GeometryType with QgsWkbTypes::GeometryType

Their values should be forward compatible (a fact that was already
explited up to now by casting between the types)

Renames some SSLxxx to SslXxx and URIxxx to UriXxx

* Fix build warnings and simplify type handling

* Add a fixer to rewrite imports

* The forgotten rebase conflictThe forgotten rebase conflicts

* QgsDataSourcURI > QgsDataSourceUri

* QgsWKBTypes > QgsWkbTypes

* Qgis.WKBGeom > QgsWkbTypes.Geom

* Further python fixes

* Guess what... Qgis::wkbDimensions != QgsWkbTypes::wkbDimensions

* Fix tests

* Python 3 updates

* [travis] pull request caching cannot be disabled

so at least use it in r/w mode

* Fix python3 print in plugins
2016-08-04 09:10:08 +02:00
Nyall Dawson
bd7d913379 Refine QgsFeature geometry getters/setters
All pointer based methods have been removed.

Now we have only:

  void setGeometry( const QgsGeometry& geom )

and

  QgsGeometry geometry() const

Benefits include avoiding a whole lot of tricky pointer lifetime
issues, potential memory leaks, and finally closing #777, which
has survived for over 9 years!...

Impacts on PyQGIS code:
- no more need for the messy
  g = QgsGeometry( feature.geometry() )
  workaround, just use g = feature.geometry() instead
- IMPORTANT: you can no longer test whether a feature has geometry
 using `if f.geometry():`, since QgsFeature::geometry() will
 *always* return an object. Instead, use
 `if not f.geometry().isEmpty():`, or preferably the new method
 `if not f.hasGeometry():`

Fix #777
2016-08-01 16:25:46 +10:00
Nyall Dawson
1a2231f10c Rename QGis class to Qgis, for capitalisation consistency 2016-07-21 22:01:38 +10:00
Matthias Kuhn
d6fca7e2e3 Indentation update 2016-03-14 10:56:24 +01:00
Bernhard Ströbl
e02d36f830 [BUG] make sure that result line consists of two nodes 2016-03-14 09:57:04 +01:00
Bernhard Ströbl
cfc0eb680e Try to fix indentation error 2016-03-14 09:57:04 +01:00
Bernhard Ströbl
0c719d6c0e [BUG] Do not output lines with two identical points 2016-03-14 09:57:04 +01:00
Bernhard Ströbl
e3a2a1e5db [BUG] access geometry the right way 2016-03-14 09:57:04 +01:00
Bernhard Ströbl
ffae112ece [BUG] Do not output lines shorter than 0.00001 2016-03-14 09:57:04 +01:00
Bernhard Ströbl
bbcacfbfbd [BUG] Avoid trying to split a line with itself 2016-03-14 09:57:03 +01:00
Alexander Bruy
e7fe61e6b9 [processing] load algorithms only when requred 3rd party modules are
available or compatible QGIS version is used

Some housekeeping in QGIS algorithms provider
2016-02-17 14:46:02 +02:00
Juergen E. Fischer
ae52aabd70 more spelling fixes 2016-01-24 20:16:28 +01:00
Juergen E. Fischer
b39055b39c indentation update (now including autopep8) 2015-08-22 14:29:41 +02:00
Juergen E. Fischer
66a3d02240 integrate processing into update_ts.sh (also includes all translations
in the repository and none outside of it).
2015-07-26 04:28:37 +02:00
pcav
00f64971f7 Uniform and informative output names for Processing (QGIS, Take #2) 2015-05-22 16:09:55 +02:00
Juergen E. Fischer
956c155e8f fix python pep8 warnings and fix some revealed errors
pep8 --ignore=E111,E128,E201,E202,E203,E211,E221,E222,E225,E226,E227,E231,E241,E261,E265,E272,E302,E303,E501,E701 \
     --exclude="ui_*.py,debian/*,python/ext-libs/*" \
     .
2015-02-01 20:46:47 +01:00
Alexander Bruy
ad758aa8db [processing] i18n for qgis provider 2015-01-17 11:24:54 +02:00
Bernhard Ströbl
da17656fe0 Log error to ProcessingLog 2014-12-08 09:31:41 +01:00
Bernhard Ströbl
a2c656e6f6 [processing] [feature] split lines with lines 2014-12-04 16:20:43 +01:00