159 Commits

Author SHA1 Message Date
Alexander Bruy
3d4a59bb8b [processing] cleanup files from unused code and remove some files 2017-11-28 12:27:45 +02:00
Alexander Bruy
0059b2b692 [processing] remove Python 2 compatibility layer 2017-11-28 12:27:45 +02:00
Nyall Dawson
80a1d71131 Return a referenced rectangle from ExtentSelectionPanel 2017-09-15 08:34:47 +10:00
Nyall Dawson
74565e22de Nicer display of rectangle parameter values 2017-09-15 08:34:13 +10:00
Nyall Dawson
ba6e2dc940 Fix showing gdal command in algorithm dialog 2017-08-14 05:19:29 +10:00
Nyall Dawson
7f5b4dbc18 Followup 6ed389c8, fix push direct to master ;) 2017-08-06 16:34:49 +10:00
Juergen E. Fischer
6ed389c8e8 fix translation string again and improve translation scripts (followup 79a095cb) 2017-08-05 23:01:42 +02:00
Nyall Dawson
a64d199e6f [processing] If an error occurs while running an algorith, always
keep the algorithm dialog open after execution

Otherwise it's hard to see the error - you have to know to check
the python log. Keeping the dialog open at the log makes the
error immediately visible to the user
2017-08-05 17:51:38 +10:00
Nyall Dawson
79a095cb69 Revert "translation string fix"
Causes 'AlgorithmDialog' object has no attribute 'trUtf8' error when
trying to launch processing algorithms
2017-08-05 06:50:52 +10:00
Juergen E. Fischer
cfaa8f0c8c translation string fix 2017-08-04 18:11:52 +02:00
Nyall Dawson
a95cbe9d2f Move 'Run as batch' button to bottom of algorithm dialog
Inserting it into the tab widget doesn't work well cross
platform/between hidpi/lowdpi displays. So instead add
it as a normal button in the button box.

Also fix capitalization of button text

Fixes #16767
2017-07-26 09:45:27 +10:00
Nyall Dawson
9d04f87249 Rename "output" style parameters for clarity
The previous naming was too easily confused with processing outputs.
Rename them to QgsProcessingParameterFileDestination, etc... to
make it clearer what they are used for.
2017-07-08 20:49:17 +10:00
Nyall Dawson
e9e335a7bd Don't set thinking cursors when running processing algorithms
Since now they're run in a background thread, it's not appropriate
anymore
2017-07-07 09:28:19 +10:00
Nyall Dawson
1b2086e8a6 Make algorithm dialog use background tasks to execute algorithms 2017-07-07 09:27:35 +10:00
Nyall Dawson
14347a431e Also add results to results dock when running through algorithm dialog 2017-06-27 13:18:22 +10:00
Nyall Dawson
1e5d773e57 Fix use of temporary files for outputs 2017-06-27 13:18:22 +10:00
Nyall Dawson
0b4bb9e998 Remove manually set tab bar height in algorithm dialog
Breaks dialog layout on hidpi screens
2017-06-27 10:49:31 +10:00
Nyall Dawson
4ea85362f4 Transform errors encountered while iterating features in
processing are non-fatal. We report them to users, and treat the
feature as having no geometry, but don't stop execution.
2017-06-23 12:08:54 +10:00
Nyall Dawson
98617c90bd Report errors when executing algs within dialogs 2017-06-23 12:08:54 +10:00
Nyall Dawson
9d8118c995 Fix dest selection panel when used in folder mode
Also fix some UX issues with the panel in folder, such as
correctly remembering/restoring last used folders, defaulting
to home dir, don't clear value when canceling while browsing
2017-06-22 18:21:51 +10:00
Nyall Dawson
df73a0f4fc Remove outdated TODO 2017-06-13 10:26:35 +10: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
b9e0b46f9f Fix running algorithms in iterating mode 2017-06-12 13:35:31 +10:00
Nyall Dawson
b40f409de2 Nicer formatting for log in algorithm dialog 2017-06-12 08:31:37 +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
6b55300fbc If a feature sink parameter is optional and not set, don't create the sink
This adds a lot of flexibility to algorithms, as it makes output
sinks truely optional. For instance, the various "Extract by..."
algorithms could add a new optional sink for features which
'fail' the extraction criteria. This effectively allows these
algorithms to become feature 'routers', directing features onto
other parts of a model depending on whether they pass or fail
the test.

But in this situation we don't always care about these failing
features, and we don't want to force them to always be fetched
from the provider. By making the outputs truely optional,
the algorithm can tweak its logic to either fetch all features
and send them to the correct output, or only fetch
matching features from the provider in the first place (a big
speed boost).
2017-06-09 14:22:29 +10:00
Alexander Bruy
77fa17781e [processing] save and restore geometry of the algorithm dialog 2017-06-06 10:51:22 +03:00
Nyall Dawson
c1d35a043b Port getHTMLOutputsCount to c++ API 2017-06-06 15:39:54 +10:00
Nyall Dawson
a27c22d9b1 Add raster layer output parameters 2017-06-06 14:38:24 +10:00
Nyall Dawson
b75a174780 Rename QgsProcessingFeatureSinkDefinition to QgsProcessingOutputLayerDefinition
Since it also applies to raster layer outputs, we need a more generic name
2017-06-06 13:43:55 +10:00
Nyall Dawson
ab64428891 Add a cancel button for algorithms which support cancelation 2017-06-06 11:40:33 +10:00
Nyall Dawson
5e92c0dbf4 Fix saving processing outputs with correct encoding 2017-06-06 09:51:49 +10:00
Nyall Dawson
77072b15ac Rename QgsProcessingFeatureSink to QgsProcessingFeatureSinkDefinition
For consistency with QgsProcessingFeatureSourceDefinition
2017-06-06 08:42:48 +10:00
Nyall Dawson
81da209bf5 Use a QgsProject pointer instead of bool loadIntoProject
Allows potential future use case of loading results into
a different open project
2017-06-06 08:40:23 +10:00
Nyall Dawson
ea2e477d91 Fix failing tests, temporarily disable some processing tests during
refactoring
2017-06-06 07:41:20 +10:00
Nyall Dawson
5b9d925c70 Fix loading of results after running algorithms 2017-06-06 07:41:20 +10:00
Nyall Dawson
5b8affcb56 Rename QgsProcessingParameterOutputVectorLayer to QgsProcessingParameterFeatureSink 2017-06-06 07:41:20 +10:00
Nyall Dawson
189f804714 Adapt more code to c++ API 2017-06-06 07:41:19 +10:00
Nyall Dawson
ef59d0c454 Port parameter checking to c++ 2017-06-06 07:41:19 +10:00
Nyall Dawson
c1d9d57dd2 First working pure c++ algorithms 2017-06-06 07:41:19 +10:00
Nyall Dawson
4cb7d18b1c Push parameters into processAlgorithm and related functions 2017-06-06 07:41:19 +10:00
Nyall Dawson
f1c53c3aa4 Refactor Algorithm setParamValues -> getParamValues
Now returns a dict of parameter inputs for the algorithm
2017-06-06 07:41:19 +10:00
Nyall Dawson
134c04b8bb Move getParametersPanel out of algorithm class
It's a gui related method, so shouldn't be in core class
2017-06-06 07:41:19 +10:00
arnaud.morvan@camptocamp.com
e232a0809c [processing] Handle context in processing.run
Fix #15985 (Concave hull)
2017-05-02 17:04:57 +02: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
fd2c18ee16 Refactor processing writer to use QgsFeatureSink, and to store
temporary output layers in the provided processing context

Should fix loss of intermediate memory layers when running
a multi-step model
2017-04-26 17:38:40 +10:00