118 Commits

Author SHA1 Message Date
Denis Rouzaud
7b60d89d6c align pointer and reference in sip files batch 2 2017-05-01 20:00:51 +02:00
Etienne Trimaille
bb3a41883d sipify qgsoverlayanalyzer and qgsnewmemorylayer 2017-04-30 23:07:57 +02:00
Nyall Dawson
636e9c5ea3 [FEATURE] Add geometry snapper modes to only snap end points of lines
Allows snapping of end points only, or end point to end point only

Also update processing algorithm to match
2017-03-30 15:52:49 +10:00
Nyall Dawson
ece3991dbe [FEATURE] New class QgsInternalGeometrySnapper
Used for snapping geometries within a set of features to other
features from that same set.

Just like QgsGeometrySnapper, except that where QgsGeometrySnapper
requires a separate reference layer to snap to
QgsInternalGeometrySnapper snaps *within* a single layer. E.g.
allows you to close gaps within that layer.
2017-03-30 13:54:05 +10:00
Nyall Dawson
d47d31d13c Rename "Db"/"DB" in API to "Database"
Motivations:
- consistency - we generally use expanded names, and this also
matches Qt API which uses Database instead of Db
- avoids unpredictable capitalization throughout API (mix of "Db"
and "DB")
2017-02-07 09:32:05 +10:00
Alexander Bruy
278913b7ce use QgsRasterBlock instead of GDAL in zonal statistics (addresses #8736)
This should make zonal statistics usable rasters which come from
other providers, e.g. WCS.
2017-01-28 11:12:12 +02:00
Juergen E. Fischer
6a56cb0dd0 updates and fixes for windows qt5/py3 build 2017-01-24 01:25:59 +01:00
Denis Rouzaud
b119744773 replace cancelling, cancelled and cancellation by canceling, canceled and cancelation, respectively (#4000)
* replace cancelling and cancelled by canceling and canceled, respectively

see https://github.com/qgis/qgis3_UIX_discussion/issues/19

* replace cancellation by cancelation
2017-01-16 22:27:14 +01:00
Denis Rouzaud
0a63d1f2c2 [spellcheck] properly look into various cases and add more fixes" 2017-01-16 16:39:20 +01:00
Nyall Dawson
231f6af0e1 Don't return const references to implicitly shared Qt classes
Instead return the inexpensive copies. Should provide extra safety
against issues like #14822

(refs #14822)
2017-01-14 15:53:45 +10:00
Denis Rouzaud
6c74e4ea5d spelling fixes 2017-01-12 22:01:50 +01:00
Denis Rouzaud
4467487e1c respect CamelCase for enums and their values 2017-01-11 14:10:11 +01:00
Denis Rouzaud
748be8de71 [spelling] replace behaviour by behavior 2017-01-11 11:35:19 +01:00
Nyall Dawson
f2127464d3 Move heatmap generation code to analysis lib
And clean it up a lot
2016-12-07 08:26:55 +10:00
Alexander Bruy
fb5cdd83ee remove word "road" from doxygen comments 2016-11-21 16:47:24 +02:00
Alexander Bruy
b421a53675 rename QgsLineVectorLayerDirector to QgsVectorLayerDirector 2016-11-21 16:47:24 +02:00
Alexander Bruy
d657c77a8c rename enum and its values 2016-11-21 16:47:24 +02:00
Alexander Bruy
9dffe64dab replace hardcoded magic numbers with enum 2016-11-21 16:47:24 +02:00
Alexander Bruy
a61e8bbdec rename QgsStrategy to QgsNetworkStrategy to avoid possible future
confusion when we will have other stuff with strategies. Also
rename corresponding subclasses
2016-11-21 16:47:24 +02:00
Alexander Bruy
f9be17997f make cost() method pure virtual 2016-11-21 16:47:24 +02:00
Alexander Bruy
00eb2619c6 fix warnings 2016-11-21 16:47:24 +02:00
Alexander Bruy
5992f74e04 [API] rename QgsArcProperter to QgsStrategy
Also update subclasses names and do some more refactoring.
2016-11-21 16:47:24 +02:00
Alexander Bruy
5cbf9d5129 remove references to networkanalysis from scrips and packaging files 2016-11-21 16:47:24 +02:00
Alexander Bruy
14c930a5a8 [API][network analysis] move network analysis into analysis library to
be consistent with other analysis stuff
2016-11-21 16:47:24 +02:00
Alexander Bruy
3c3e17ac90 [network analysis] expose speed properter in C++ and Python API
This allows users to calculate shortest path using travel time
as optimization criteria in addition to travel distance.
2016-11-21 16:47:24 +02:00
Nyall Dawson
02ea2d7703 Fix typos 2016-11-08 09:05:47 +10:00
Nyall Dawson
8acc286b0f [FEATURE] Snap to layer algorithm accepts a mode parameter
With a new option to prefer to snap to closest point on geometry.
The old behaviour was to prefer to snap to nodes, even if a node
was further from the input geometry than a segment. The new option
allows you to snap geometries to the closest point, regardless
of whether it's a node or segment.
2016-11-07 12:20:59 +10:00
Nyall Dawson
c3a978b9da [FEATURE][processing] Snap geometries to layer algorithm
Port the Geometry Snapper plugin across to the analysis lib, and
expose to python bindings

Add a new algorithm which performs the snapping to layers
2016-11-07 12:20:59 +10:00
Nyall Dawson
44289084e9 Optimise passing of variables by ref/value 2016-10-24 10:36:23 +10:00
Hugo Mercier
67c05b51c2 Fix some /Transfer/ annotations 2016-09-23 15:35:37 +02:00
Denis Rouzaud
7fdade1a3a remove some deprecated methods, rename QgsAnnotation::mapPositionFixed() to hasFixedMapPosition() 2016-08-23 15:00:56 +02:00
Nyall Dawson
4b78b1c208 Make all QgsGeometry methods return values, not pointers
Reduces likelihood of crashes and leaks
2016-08-01 22:41:55 +10: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
Nyall Dawson
4cfacf14e3 Make API more consistent
- rename methods with XML to Xml, CRS to Crs, WMS to Wms, ID to Id
- rename methods with SRS to Crs
- rename methods with abbreviations like "dest" to "destination"
- rename methods with abbreviations like "src" to "source"
2016-07-21 08:40:50 +10:00
Nyall Dawson
7d2027faa9 Fix most remaining methods which return a reference to
QgsCoordinateReferenceSystem or which take a pointer to a
CRS
2016-07-15 06:01:39 +10:00
Juergen E. Fischer
03de74dc89 fix typo 2016-06-09 11:13:11 +02:00
Matthias Kuhn
abfd7740bd Fix qgis.PyQt compatibility imports 2016-04-29 14:10:41 +02:00
Nyall Dawson
6545746fc6 [FEATURE] Add extra resampling methods to align raster tool which are
available in GDAL >= 2.0 (max, min, median, q1 and q3)
2016-03-31 16:45:16 +11:00
Juergen E. Fischer
271750fd53 switch bindings to pyqt wrappers 2016-03-21 17:00:26 +01:00
Juergen E. Fischer
a90be95f7b sip sync 2016-02-14 03:50:49 +01:00
Nyall Dawson
c3a57434d9 Fix clazy 'pass small and trivially-copyable type by value' warnings 2016-02-02 19:47:21 +11:00
Nyall Dawson
a665b7d72e Don't crash when using raster calculator with huge raster (refs #13336)
Now we abort and advise the user if insufficient memory is available
to perform the calculation.

At some future stage it would be nice to perform the calculations
in blocks to allow this scenario, but for now it's better not to
crash.
2016-01-27 10:48:12 +11:00
Nyall Dawson
24d9c65494 Fix more classes which violate the rule-of-three
Also remove some empty destructors
2016-01-26 14:24:45 +11:00
Juergen E. Fischer
ae52aabd70 more spelling fixes 2016-01-24 20:16:28 +01:00
Nyall Dawson
752f6bd150 Fix classes which violate rule of three, by implementing required
copy/= operators or making them private

This revealed (and fixes) some issues, including a potential crash
using server access control (refs #13919), and a potential crash with
diagrams
2016-01-22 18:45:45 +11:00
Juergen E. Fischer
4e1cf3c081 add missing copyright headers 2016-01-08 21:32:11 +01:00
Nyall Dawson
881074b194 Boost coverage of SIP bindings
Now all classes and members are either exposed to bindings or marked
as "not available in Python bindings" in the docs.

Drop test thresholds to 0. Now it should be much easier to determine
what missing members have been added which are causing test
failures.
2016-01-05 11:16:15 +11:00
Juergen E. Fischer
71dc339106 more stl to qt ports and size_t => int fixups 2015-12-26 00:59:09 +01:00
Matthias Kuhn
313c34ce22 [py3] Updates to sip files 2015-11-16 07:42:48 +01:00