9501 Commits

Author SHA1 Message Date
Nyall Dawson
2640626e17 Rename addFeature member in QgsVectorFileWriter to avoid clash 2017-06-15 17:04:27 +10:00
Nyall Dawson
fc339f9ac5 Add a flag argument to QgsFeatureSink::addFeatures
Flags can be used to control how features are added to the sink.

For now, there's only a single flag available - FastInsert.
When FastInsert is set, faster inserts will be use at the cost
of updating the passed features to reflect changes made at the
provider.

This includes skipping the update of the passed feature IDs
to match the resulting feature IDs for the feature within
the data provider.

Individual sink subclasses may or may not choose to respect
this flag, depending on whether or not skipping this update
represents a significant speed boost for the operation.

QgsVectorLayer always ignores the flag - feature ids are
required for the featureAdded signal to be correctly emitted,
and it's expected that performance critical applications will
add features directly to a data provider instead of
via QgsVectorLayer's edit buffer.
2017-06-15 17:04:27 +10:00
Denis Rouzaud
7aec4d1a5f follow up 8333b71034a5018642ccfac0d9ddc7bffda508d4 QgsSnappingUtils sipify 2017-06-15 07:45:21 +02:00
Juergen E. Fischer
8333b71034 Remove unused SnapToMapMode in QgsSnappingUtils 2017-06-14 13:15:47 +02:00
Matthias Kuhn
501081f863 Remove unrequired SIP_SKIP 2017-06-14 07:37:31 +02:00
Matthias Kuhn
37a306e3f2 Fix tests 2017-06-14 07:37:31 +02:00
Matthias Kuhn
96cf4b7026 Projecting a 2D point with inclination assumes 0 for Z 2017-06-14 07:37:31 +02:00
Matthias Kuhn
1808dc9c95 More intuitive QgsPoint python constructors
In python, the wkb type of a QgsPoint will by default be determined from
the provided parameters, where Z and M will be added as required if the
wkbType is Undefined.

    QgsPoint(x, y, z=nan, m=nan, wkbType=QgsWkbTypes.Undefined)

Thanks to the python API support of named parameters, it's also
straightforward to specify z, m and wkbType in any desired combination.

On the other hand, on C++ side it's often preferable to use

    QgsPoint(QgsWkbTypes::WkbType wkbType, double x, double y, double z, double m);

due to the lack of named parameters which make it harder to specify a
specific type and the advantage of typesafety that makes it possible to
verload the first constructor with this one.
2017-06-14 07:37:31 +02:00
Matthias Kuhn
4db671e83b Fix sip bindings for QgsPoint 2017-06-14 07:37:31 +02:00
Matthias Kuhn
7e487190e8 Add an easy to use Z/M default value constructor to QgsPoint 2017-06-14 07:37:31 +02:00
Matthias Kuhn
4eae0872ab Fix QgsPoint(XY) sip bindings 2017-06-14 07:37:31 +02:00
Denis Rouzaud
e957224c14 fix class declaration 2017-06-13 18:31:00 +02:00
Denis Rouzaud
5a8ed1d4d9 sipify QgsRange as template 2017-06-13 18:31:00 +02:00
Juergen E. Fischer
8d35a42b47 fix windows build 2017-06-13 15:03:33 +02:00
Nyall Dawson
54124bd0aa Restore batch algorithm mode following new processing API 2017-06-13 12:32:30 +10:00
Nyall Dawson
020537ac7e Add string output type 2017-06-13 12:32:17 +10:00
Nyall Dawson
b45e572500 Add QgsProcessingParameterFolderOuput 2017-06-13 10:58:53 +10:00
Nyall Dawson
be45c2fdbb Catch errors while running algs 2017-06-13 10:26:35 +10:00
Nyall Dawson
df73a0f4fc Remove outdated TODO 2017-06-13 10:26:35 +10:00
Martin Dobias
a8999639c7 API cleanup for legend support in renderers 2017-06-13 00:07:00 +02:00
Denis Rouzaud
82cfc31870 avoid python signature overloads to handle NaN default values 2017-06-12 11:35:16 +02:00
Denis Rouzaud
2eb3e64803 [sipify] properly handle python signatures 2017-06-12 11:35:16 +02:00
Nyall Dawson
63611b1d8f Port script code functions to c++ classes
Restore logging executed algorithms
2017-06-12 15:59:56 +10:00
Nyall Dawson
5177c7d181 Add a more descriptive tooltip for iterate mode button 2017-06-12 13:39:42 +10:00
Nyall Dawson
4b81630aa6 More responsive feedback when using iterate mode 2017-06-12 13:39:33 +10:00
Nyall Dawson
b9e0b46f9f Fix running algorithms in iterating mode 2017-06-12 13:35:31 +10:00
Nyall Dawson
60ea095d01 Port calculation of iterating destination to c++ 2017-06-12 13:35:17 +10:00
Nyall Dawson
15b30124c1 Hide qgis scripts for now (non-functional) 2017-06-12 10:39:57 +10:00
Nyall Dawson
d8302a26f2 Fix feature source widget returns source even when not set 2017-06-12 10:38:40 +10:00
Nyall Dawson
c52e6a72ba Fix raster layers showing as input choices for vector algs 2017-06-12 10:35:22 +10:00
Nyall Dawson
b40f409de2 Nicer formatting for log in algorithm dialog 2017-06-12 08:31:37 +10:00
Nyall Dawson
29f50b72ee [processing] Catch transform errors in when iterating features 2017-06-12 08:05:32 +10:00
Nyall Dawson
bc9b1b64f9 Astyle 2017-06-12 07:28:36 +10:00
Nyall Dawson
92397537fe Check validity outputs counts of valid/invalid features 2017-06-12 07:26:02 +10:00
Nyall Dawson
e49cc78674 Make html output in basic stats algorithm optional 2017-06-12 07:26:02 +10:00
Nyall Dawson
cb41ef1adc Output useful logging when running algorithms from toolbox
Now outputs the input parameters, execution time, and results
2017-06-12 07:26:02 +10:00
Nyall Dawson
1d6d4be556 Correctly reject algorithm dialog
Algorithm dialog was not being rejected when close button was
called (only hidden), leading to old dialogs and widgets
hanging around forever...
2017-06-12 07:26:02 +10:00
Nyall Dawson
aa544a14c0 Only use a temporary feedback object when running algorithms
Otherwise canceling a run causes all future runs to be canceled
2017-06-12 07:26:02 +10:00
Nyall Dawson
2d2c229332 Port checkInputCRS to c++, and allow algorithms to flag when they
require all input layers to be in the same CRS

The default behaviour is to assume that algorithms are well behaved
and can handle multi-CRS inputs, but algs have the option to
flag that they do not allow this and require the input CRS check.

Those algs should document that they require all inputs to have
matching CRS - processing 3.0 behaviour is to assume that algs
can handle this.
2017-06-12 07:26:02 +10:00
Nyall Dawson
386c4246b2 Merge algorithm reprojects layers so that all features are
in CRS of first input layer
2017-06-12 07:26:02 +10:00
Nyall Dawson
5ba0b5cd83 Port merge alg to new API 2017-06-12 07:26:02 +10:00
Nyall Dawson
ea18e8e9db Resurrect grid polygon algorithm 2017-06-12 07:26:02 +10:00
Nyall Dawson
d8260b8c47 [FEATURE] Port Extract by Expression to new API, allow saving
non matching features to separate output
2017-06-12 07:26:02 +10:00
Nyall Dawson
a6a3027ea6 [processing] Clip alg allows mask in different CRS to clipped layer 2017-06-12 07:26:02 +10:00
Nyall Dawson
74ce5550ad Remove duplicate QgsRectangle::unionRect method
QgsRectangle::combineExtentWith does the exact same thing
2017-06-12 07:03:08 +10:00
Nyall Dawson
be2ec2f1a7 Fix running processing algs through locator 2017-06-11 20:54:03 +10:00
Matthias Kuhn
cc877c39eb No more QgsGeometry pointers in the public API
Geometries are passed as const reference and returned by value.
This make using the API easier and reduces the risk of ownership
problems.

The overhead is minimal due to implicit sharing.

Fix https://github.com/qgis/qgis3.0_api/issues/68
2017-06-11 09:13:16 +02:00
Alexander Bruy
6896548521 Merge pull request #4705 from PedroVenancio/master
[processing] fixes GRASS 7 v.net.alloc (fix #16672)
2017-06-10 20:40:58 +03:00
Nyall Dawson
326e442548 Fix crash when saving vector layer in background task 2017-06-10 18:53:01 +10:00
PedroVenancio
aedb95b1aa Fixes GRASS 7 v.net.alloc #16672 2017-06-10 09:41:05 +01:00