53 Commits

Author SHA1 Message Date
Nyall Dawson
d10db05b5a [processing] Nicer strings, default values for select/extract by attribute 2019-06-12 07:03:30 +10:00
Nyall Dawson
43904df6c4 [processing] Fix exception in select by expression using not equal to operator
Fixes #30135
2019-06-12 07:03:30 +10: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
Harrissou Sant-anna
4e1d29ee24 [Processing][Needs-docs] Allow optional "value" in "select by attribute" algorithm
because it's not needed to run null checks (fixes #19469 which is actually reported in the wrong way)
2018-08-30 05:10:21 +10:00
Nyall Dawson
4acef1efbf [processing] Fix crash in extract by attribute when field name does not exist
Fixes #19531
2018-08-04 05:57:46 +10:00
Harrissou Sant-anna
8a1964fb85 Display same symbol for "not equal" operator in "Select by attribute" algorithm
as in "Extract by attribute" algorithm and "select features by value" function
2018-07-24 03:51:54 +10:00
Alexander Bruy
580509fd5e [processing][needs-docs] add selection methods to Select by attribute
algorithm (fix #18682)
2018-05-16 11:20:09 +03:00
Nyall Dawson
c07f37a5cb [processing] Select by expression/attribute can run on geometryless layers 2018-02-20 10:03:27 +11:00
Nyall Dawson
a05d941e4e [processing] Default to allowing background execution of algorithms
Since the underlying issues with the Python bindings are now fixed,
in most cases we can safely default to allowing an algorithm to
run in a background thread!!

So now we make this the default, and require individual algorithms
which are NOT thread safe to declare this. This includes algorithms
which directly manipulate the current project or layers (such as
setting layer styles), alter the selections in layers, or which
rely on 3rd party libraries (for now, SAGA and GRASS algorithms
are marked as not thread safe... TODO - someone more familiar with
these libraries can investigate and remove the flag if appropriate).

Also models are marked as non-thread safe. TODO: only flag an
individual model as thread-unsafe if any of its child algorithms
report this flag.
2018-01-29 17:37:05 +11:00
Alexander Bruy
dca37abd0e [processing] add group id to QGIS algorithms 2017-12-14 18:04:12 +02:00
Nyall Dawson
2a442c7886 Rationalise algorithm groups a bit 2017-08-22 23:36:42 +10:00
Alexander Bruy
97a5a3dcbd [processing] use QgsProcessingException in algorithms 2017-07-13 09:02:10 +03:00
Nyall Dawson
7bb1b7ade0 Cleanup some imports, remove use of dataobjects 2017-07-12 07:44:39 +10:00
Nyall Dawson
1e13d733c2 Move declaration of algorithm parameters/outputs to a new virtual
initAlgorithm() method

This allows 2 benefits:
- algorithms can be subclassed and have subclasses add additional
parameters/outputs to the algorithm. With the previous approach
of declaring parameters/outputs in the constructor, it's not
possible to call virtual methods to add additional parameters/
outputs (since you can't call virtual methods from a constructor).

- initAlgorithm takes a variant map argument, allowing the algorithm
to dynamically adjust its declared parameters and outputs according
to this configuration map. This potentially allows model algorithms which
can be configured to have variable numbers of parameters and
outputs at run time. E.g. a "router" algorithm which directs
features to one of any number of output sinks depending on some
user configured criteria.
2017-07-10 16:31:14 +10:00
Nyall Dawson
3a9a0efc33 Resurrect select by attribute algorithm 2017-06-27 11:42:58 +10:00
Nyall Dawson
b1cadb1822 Use generic algorithm icon for qgis algorithms which do not
have specific icons, instead of generic qgis icon

We consider these 'top level' algorithms, and using the
standard algorithm icon should help reflect this and
differentiate them from 3rd party algorithms.
2017-06-24 12:01:20 +10:00
Nyall Dawson
f64f74fb63 Fix incorrect import 2017-06-06 13:41:42 +10:00
Nyall Dawson
4cb7d18b1c Push parameters into processAlgorithm and related functions 2017-06-06 07:41:19 +10:00
Nyall Dawson
77ab933788 Move alg character definitions to __init__ 2017-06-06 07:41:19 +10:00
Nyall Dawson
168f16276c Remove help related methods from GeoAlgorithm 2017-06-06 07:41:19 +10:00
Nyall Dawson
877775d2c0 Remove a bunch of unneeded imports 2017-05-02 14:47:58 +10:00
Nyall Dawson
4ed18b112a Add a bunch of missing QgsProcessingUtils imports 2017-05-02 14:36:23 +10:00
Nyall Dawson
49c688bbe4 Fix use of QgsProcessingUtils.mapLayerFromString 2017-05-02 13:40:49 +10:00
Nyall Dawson
f84d703234 Add method QgsProcessingUtils::mapLayerFromString
Algorithms and other processing code should use this method
(instead of dataobjects.getLayerFromString) to
retrieve layers from a string, as it considers the processing
context and allows resolving strings to temporarily stored layers.

This permits processing models to function correctly when
intermediate results are stored as memory layers. Subsequent
model algorithms can then access these temporary layers as inputs.
All temporary layers will be removed when the context object
is destroyed after the model algorithm is run.
2017-05-02 12:33:04 +10:00
Nyall Dawson
dd4f530cfb [processing] Pass context argument to processAlgorithm 2017-04-26 12:53:35 +10:00
Nyall Dawson
377b181c4e Port more processing dataobjects methods to c++
Also
- simplify and add tests
- remove large memory leak (persistant store of all non-project layers)
- remove broken support for direct loading postgres/virtual layers
by string (Python version was very broken and would never match
a postgres/virtual layer)
2017-04-05 19:50:46 +10:00
Nyall Dawson
a0bd464232 Use formatted name for algorithm names
Avoids conversion of names later and gives clearer separation
between visible names and internal names
2017-04-03 21:17:45 +10:00
Nyall Dawson
6987d7b37c Port handling of algorithm names to QgsProcessingAlgorithm 2017-04-03 21:17:45 +10:00
Nyall Dawson
dc729c1b5a Move algorithm group handling to QgsProcessingAlgorithm 2017-04-03 21:17:45 +10:00
Nyall Dawson
faa8a653b2 Move algorithm icon handling to QgsProcessingAlgorithm 2017-04-03 21:17:45 +10:00
Nyall Dawson
28e75731e1 Move tag handling to QgsProcessingAlgorithm 2017-04-03 21:17:45 +10:00
Nyall Dawson
2a80d287ac [processing] Sync features in Select by Expression with Select by Attribute
Adds new stuff like "is null"/"is not null"/"does not contain"
to the Select By Attribute algorithm.
2017-03-21 09:09:26 +10:00
Juergen E. Fischer
f00a87cb8a update translation strings 2017-03-05 10:21:24 +01:00
Nyall Dawson
ede452be85 [processing] Port feedback object to c++
Algorithms are now passed a QgsProcessingFeedback object
instead of the loosely defined progress parameter.
2017-01-11 11:11:10 +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
Matthias Kuhn
4a7a8ff263 Update python code 2016-10-01 15:39:03 +02:00
Alexander Bruy
65db336eaf [processing] move some constants to the dataobjects module 2016-09-02 09:28:45 +03:00
Juergen E. Fischer
39c4409c6a remove deprecated stuff from QgsVectorLayer and editor widgets 2016-08-10 12:12:28 +02:00
Nyall Dawson
c1649ebef4 [processing] pendingFields() -> fields()
Does the same thing, but pendingFields() is ugly
2016-08-05 06:31:07 +10:00
Alexander Bruy
1b60b088a2 [processing] support more field types 2016-06-27 14:18:31 +03:00
Denis Rouzaud
8071acd064 move PyQt compat folder to python/qgis 2016-04-29 14:10:26 +02:00
Juergen E. Fischer
2526d3e3c8 processing: switch to pyqt wrappers, flake8 fixes 2016-03-21 17:00:25 +01:00
Matthias Kuhn
eb8167d920 [processing] Remove various unused imports and variables 2016-03-15 11:55:05 +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
Nyall Dawson
7c8177e01a Use expression filter request for SelectByAttribute
Makes SelectByAttribute orders of magnitude faster for providers which
support compiled expressions (eg Postgres), also allows algorithm
to take advantage of database indexes created on attribute.

For a 4 million point PostGIS layer (with an index on attribute)
BEFORE: cancelled after 20 mins
AFTER: ~2 seconds
2015-11-13 13:23:18 +11:00
arnaud.morvan@camptocamp.com
ea0dc6e2d4 Include parameterselection dropdown contents in processing translations 2015-09-17 09:43:23 +02: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
Alexander Bruy
9b41e7bb9a [processing] fix Select by Attribute algorithm (fix #12289) 2015-05-20 11:38:56 +03:00