446 Commits

Author SHA1 Message Date
Nyall Dawson
db906273b5 Drop all composer classes from Python bindings 2018-01-08 13:35:15 +10:00
Matthias Kuhn
ed2f0563eb Document API break 2018-01-05 12:25:44 +01:00
Nyall Dawson
2d43dac0b5 Refine behavior of QgsGeometry equals tests
Before we had two checks - equals() and isGeosEqual() which
performed the exact same check (since equals() called the geos
equality test)

Since the geos equality test is a slow, topological test, which
considers two geometries equal if their component edges overlap,
but disregards ordering of vertices this is not always what we
want. There's also the issue that geos cannot consider m values
when testing the geometries, so two geometries with different
m values would be reported equal.

So, now calling QgsGeometry::equals performs a very fast, strict
equality test where geometries are only equal if the have exactly
the same vertices, type, and order.

And swap most code which was calling the slow geos test to instead
use the fast strict native test.
2018-01-05 09:59:22 +10:00
Nyall Dawson
b904731259 Respect transform context in point locator 2018-01-04 15:04:42 +11:00
Nyall Dawson
8f15cdf680 Respect transform contexts when tracing 2018-01-04 15:04:42 +11:00
Matthias Kuhn
156869379f Instructions for QgsCoordinateTransform::initialize API break 2017-12-24 11:17:28 +01:00
Nyall Dawson
4ff72de62e
Merge pull request #5858 from lbartoletti/segment_intersection
Segment intersection
2017-12-22 21:43:13 +11:00
Nyall Dawson
4643712a1e Fix missing transform contexts for QgsDistanceArea
QgsDistanceArea.setSourceCrs() now requires a QgsTransformContext
argument.
2017-12-20 17:37:46 +10:00
Nyall Dawson
f216b188d6 Move all datum transform related methods to QgsDatumTransform 2017-12-19 08:47:02 +10:00
lbartoletti
c5d9663191
Merge branch 'master' into segment_intersection 2017-12-15 20:42:00 +01:00
Denis Rouzaud
68aef9a426 ask for datum transform update on layer or project crs change
in the case of project crs change, if several transforms are available, pop up a message rather than showing multiple dialogs
2017-12-15 14:16:59 +10:00
Nyall Dawson
69c3debfc0 Nicer API for datum transforms
Instead of using QPairs of ints, use more descriptive structs, also
rename a lot of datum related methods for clarity and add docs
2017-12-15 14:16:59 +10:00
Nyall Dawson
cb693a72f9 Move caching to QgsCoordinateTransform
and remove no longer required QgsCoordinateTransformCache singleton
2017-12-15 14:14:08 +10:00
Nyall Dawson
018bfb49f9 Remove QgsDatumTransformStore
and port usage over to QgsCoordinateTransformContext instead
2017-12-15 14:13:52 +10:00
Nyall Dawson
86d9492372 Remove context-unaware QgsCoordinateTransform constructors from Python bindings
This forces Python code and plugins to become datum transform
aware, and given that upgrading python code is easy (just
add QgsProject.instance() as a new argument to the constructor)
it's relatively painless to force this on PyQGIS users.

Also fix upgrade the easy QgsCoordinateTransform c++ constructors
where the project is available, or where using QgsProject::instance()
is safe to do.

For others, just avoid the deprecated warnings until we can
get access to the correct project instance where the transform
is being constructed.
2017-12-15 14:13:22 +10:00
Nyall Dawson
2edb2d8ac7 Remove unused QgsCoordinateTransform::readXml/writeXml methods
These methods are not used in master and are of questionable
value. Better to serialise the source and dest crs separately
and create the transform when required
2017-12-15 14:11:49 +10:00
lbartoletti
03d8565e2a - Update api_break.dox
- rename isIntersect to isIntersection
- rename inter to intersectionPoint
2017-12-13 14:03:55 +01:00
Etienne Trimaille
5c28ecab8f update HTML data provider metadata (#5700)
* update HTML data provider metadata for grass, gdal and ams

* update HTML data provider metadata for WMS and WCS

* move HTML bullet list to QgsHtmlUtils
2017-12-13 13:29:41 +02:00
Nyall Dawson
ebe16f153f Update API breaks docs 2017-11-29 10:10:59 +10:00
Nathan Woodrow
01d1be9d70 Update API break docs 2017-11-27 14:52:36 +10:00
Alessandro Pasotti
58f559690e Add changed return values to api break 2017-11-24 13:41:25 +01:00
Etienne Trimaille
59cc5434b8 switch display between identification section and provider in the metadata tab 2017-11-21 17:16:36 +01:00
Etienne Trimaille
373471214f rename metadata() to htmlMetadata() in QgsRasterDataProvider 2017-11-21 11:38:50 +01:00
Nyall Dawson
75885d70d5 Rename various WKT/WKB/GeoJSON/GML methods for consistency
and consistent capitalisation
2017-11-15 20:51:05 +10:00
Nyall Dawson
95765a191a Remove coordinate formatting methods from QgsPointXY
Use QgsCoordinateFormatter instead
2017-11-15 20:49:45 +10:00
Nyall Dawson
de7b33a373 [needs-docs] Remove option to show raster preview icons in layer tree
This option is not safe - see #16803, and generally undesirable
due to how slow generating the preview icons are
2017-11-15 10:14:47 +11:00
Nyall Dawson
6f55e50a13 Remove QgsMapLayer::originalName()
Now QgsMapLayer::name() is guaranteed to return the same string
2017-11-14 21:53:31 +11:00
Nyall Dawson
1e4f6917de Cleanup fragile 'capitalize layer names' option
This option was being applied in the wrong place - within the
map layer classes themselves. This meant that depending on the
user's setting for this option, a plugin calling QgsMapLayer::setName
would not be guaranteed the same behaviour across installs.
(and the same with setDataSource)

Similarly, the option was re-applied on project load, so
moving projects between installs with different values for
this setting would affect the project layer names, breaking
expressions which relied on these...

Instead, move the formatting and capitalization of layer
names to the QgisApp add*Layer methods instead, so this option
only applies on adding new layers to a project.
2017-11-14 21:53:31 +11:00
Nyall Dawson
ba62ffce2c Make constructors for QgsVectorLayer and QgsRasterLayer more flexible
...by moving extra arguments to new LayerOptions structs. This allows
us to more easily add new layer constructor options without making
the API cumbersome to use.
2017-11-09 14:28:51 +11:00
Nyall Dawson
fe0566000e More QPair API removal 2017-11-06 07:34:01 +10:00
Nyall Dawson
a4ef7e42c7 Avoid use of QPair and instead use a struct 2017-11-06 07:22:04 +10:00
Alessandro Pasotti
da8a5f4532
Added QgsApplication::authManager() to API break docs 2017-11-03 11:26:56 +01:00
Nyall Dawson
8631472089 QgsTINInterpolator->QgsTinInterpolator 2017-11-03 10:49:33 +10:00
Nyall Dawson
e91ee5b71c More flexible API for interpolation
E.g. adds API support for interpolating by m value
2017-11-03 09:18:45 +10:00
Nyall Dawson
fd7ffad5fd Update api break docs 2017-11-03 07:42:32 +10:00
Nyall Dawson
48d43d37ed
Merge pull request #5497 from nyalldawson/svg_crash
Fix crashes and issues with SVG rendering
2017-11-01 05:21:37 +11:00
Nyall Dawson
05ad0bc04a Update API break dox 2017-10-31 16:01:33 +10:00
Nyall Dawson
b07f6757a5 Cleanup QgsSvgCache API
- Remove QgsSvgCacheEntry from public API (is an internal detail only)
- Modernize code
- Make protected QgsSvgCache members private, since this class is not
designed to be subclassed
2017-10-31 10:43:44 +10:00
Matthias Kuhn
82e6d1219f
Rename from[GeometryType] to from[GeometryType]XY
- QgsGeometry::fromPoint() was renamed to fromPointXY()
- QgsGeometry::fromMultiPoint() was renamed to fromMultiPointXY()
- QgsGeometry::fromMultiPolyline() was renamed to fromMultiPolylineXY()
- QgsGeometry::fromPolygon() was renamed to fromPolygonXY()
- QgsGeometry::fromMultiPolygon() was renamed to fromMultiPolygonXY()
2017-10-30 09:14:06 +01:00
Matthias Kuhn
ca74e391cd
Rename QgsGeometry.addPoints with XY / V2-less versions 2017-10-30 09:14:05 +01:00
Matthias Kuhn
b4e0ebe4a8
Document API breaks 2017-10-30 09:14:05 +01:00
Matthias Kuhn
28f2722650 QgsTransaction.create expects layers, not ids 2017-10-29 13:31:17 +01:00
Alessandro Pasotti
d64529f4ce [api][auth] Removed get prefix from all getters in auth manager 2017-10-27 14:27:29 +02:00
Nyall Dawson
c70a47e249 Update API break docs 2017-10-26 07:06:34 +10:00
Nyall Dawson
46a6f25d6f Merge pull request #5418 from nyalldawson/from_polyline
Rename QgsGeometry::fromPolyline as QgsGeometry::fromPolylineXY
2017-10-24 08:21:30 +11:00
Nyall Dawson
2e8e72d02d Optimise determination of adjacent vertices and move to QgsAbstractGeometry
Previously the method in QgsGeometryUtils was relying on
QgsAbstractGeometry::coordinateSequence, which is an absolute
performance killer.

Instead move to optimised methods in the various abstract
geometry subclasses which rely only on trivial calculations.
2017-10-23 08:03:22 +11:00
Nyall Dawson
c4f3832af2 Rename QgsGeometry::fromPolyline as QgsGeometry::fromPolylineXY
and add new QgsGeometry::fromPolyline which uses QgsPoint

We want to encourage people not to use the QgsPointXY method, as it drops
Z/M values. So it's moved across to a different name to make way
for a new QgsGeometry::fromPolyline which uses a QgsPoint list
instead of QgsPointXY, thus keeping Z/M values intact.

Similarly, QgsPolyline now is a list of QgsPoint (keeping z/m values)
and the old 2d QgsPolyline type was renamed to QgsPolylineXY.

Making the QgsPoint method the "preferred" method and making linestrings
just as easy to create from z/m dimensioned points as 2d points is
important to push people to write code which does not discard
these important dimensions.

As a bonus, the QgsPoint methods are more efficient anyway, since
they don't require creation of a temporary list.
2017-10-22 18:10:14 +10:00
Nyall Dawson
406425d68a Rename method, docs and api breaks documentation 2017-10-19 07:29:48 +10:00
Nyall Dawson
947b0cc49e Safer memory management in geos
Also speed up avoid intersections by removing unnecessary geometry
cloning
2017-10-13 19:55:57 +10:00
Nyall Dawson
c3fdaa950d Some safer memory management for geos 2017-10-13 19:54:00 +10:00