Nyall Dawson
17199c8ffd
Reimplement getAvailableValuesOfType in QgsProcessingModelAlgorithm
2017-07-07 11:35:31 +10:00
Nyall Dawson
3243a1a34c
Allow model child parameters to take values from an expression
...
The expression is evaluated just before the child algorithm is
executed, so can utilise results already calculated by other
children in the model through the use of expression context
functions
2017-07-07 11:34:17 +10:00
Nyall Dawson
8a84e134cc
Algorithms don't have to be split to prepare/process/postProcess
...
Since it's safe to evaluate parameters in background threads
now, it's usually going to be ok to evaluate everything in
the processAlgorithm step.
This keeps the algorithm code as simple as possible, and will
make porting faster.
Note that the prepare/postProcess virtual methods still exist
and can be used when an algorithm MUST do setup/cleanup work
in the main thread.
2017-07-07 09:28:19 +10:00
Nyall Dawson
e0c7daa2d8
Rename QgsProcessingAlgorithm::clone to ::create
...
Since it better describes what the function does. It returns a new
pristine copy of the algorithm, not a clone of its current state
2017-07-07 09:27:35 +10:00
Nyall Dawson
c2621b1275
Split algorithm execution into separate prepare/process/postProcess steps
...
The prepare and postProcess steps are designed to be run in main
thread only, while the process step can safely be run in a background
thread.
2017-07-07 09:26:17 +10:00
Nyall Dawson
9156933c9e
Add a pure virtual clone method for algorithms
...
This is required for safely executing the algorithm in a background
thread.
2017-07-07 09:26:17 +10:00
Nyall Dawson
921939e4ec
Add method to determine whether dependencies exist between model parameters
2017-07-03 10:50:35 +10:00
Nyall Dawson
77588b9b61
Convert model child algorithm parameter sources to a list
...
So that multiple input type parameters are correctly handled,
allowing models with child algorithms like merge to correctly
use any combination of static layers/model inputs/child outputs
as their input parameter
2017-06-30 12:50:38 +10:00
Nyall Dawson
60f80f9355
Mark QgsProcessingModelAlgorithm as non-stable API
...
We want to be able to extend this in future without any
stable API contract.
2017-06-27 08:33:13 +10:00
Nyall Dawson
0a32add69e
Port exporting model as python code to c++
2017-06-27 08:33:13 +10:00
Nyall Dawson
a8b364e2e2
Port another member to c++
2017-06-24 07:36:46 +10:00
Nyall Dawson
10aeba2e72
Move more modelling code to c++
2017-06-24 07:36:13 +10:00
Nyall Dawson
e7f13f5bd8
Port model help code to c++
2017-06-24 07:36:07 +10:00
Nyall Dawson
24eb6fd780
Fix loss of output names in graphical modeler
2017-06-23 13:32:31 +10:00
Nyall Dawson
86f33c682d
Expand model unit test coverage
2017-06-22 06:49:09 +10:00
Nyall Dawson
1df9f6b6f0
Start on executing models
2017-06-22 06:47:11 +10:00
Nyall Dawson
fe0f2498d4
Fix generation of destination parameters for models
2017-06-22 06:45:21 +10:00
Nyall Dawson
d3a2f7cd65
Models can now be saved and restored
2017-06-20 19:23:21 +10:00
Nyall Dawson
9a2f14b931
First steps to model/save restore in c++
...
Models now save to QVariantMap, using QgsXmlUtils to save to
an xml based format (with extension .model3)
2017-06-20 17:26:57 +10:00
Nyall Dawson
179a377da0
Port more model to c++
2017-06-20 15:31:53 +10:00
Nyall Dawson
1a4a654f8b
Port more model API across to c++
2017-06-20 14:45:13 +10:00
Nyall Dawson
f6358b2118
Begin port of modeler algorithm to c++
2017-06-20 14:45:13 +10:00