586 Commits

Author SHA1 Message Date
Nyall Dawson
d20a3bddc0 [FEATURE][processing] Port output parameter wrappers to new c++ API for modeler
This allows a range of new possibilities, including:
- models with static outputs for child algorithms, e.g. always saving
a child algorithm's output to a geopackage or postgres layer
- models with expression based output values for child algorithms, e.g.
generating an automatic file name based on today's date and saving
outputs to that file
2020-04-02 02:29:54 +10:00
Nyall Dawson
3976e14ae8 Refine arrow API to allow control over whether arrows join to incoming or outgoing sides 2020-04-02 02:29:54 +10:00
Nyall Dawson
c98cd8d1a8 Partial port of destination wrappers to c++ API 2020-04-02 02:29:54 +10:00
Nyall Dawson
90a0a2d6a6 Fix exception when hiding comments 2020-04-01 18:20:09 +10:00
Nyall Dawson
e788be93fa [processing][FEATURE] Add api for setting model component colors, and expose
the option to set manual colors for individual model comments
2020-04-01 18:20:09 +10:00
Nyall Dawson
87f50c3633 Fix some ugly appearance of data defined buttons 2020-04-01 08:42:14 +10:00
Nyall Dawson
fb7f85efb6 Fix dialog name 2020-04-01 05:27:55 +10:00
Nyall Dawson
bc659fe1fa Adapt OTB widget use of non-stable API
(this is a prime example of why the sooner we can drop all this python, the better...)
2020-04-01 05:27:55 +10:00
Nyall Dawson
ed51791068 Fix spell check error 2020-04-01 05:27:55 +10:00
Nyall Dawson
fbe36f8849 Messy messy refactoring to open model parameter options using inline panels
The "stable" old python api is really biting us here, and causes a heap of mess
Bring on QGIS 4.0!
2020-04-01 05:27:55 +10:00
Nyall Dawson
f268b09d1b Also show child input values 2020-03-31 19:35:51 +10:00
Nyall Dawson
cb990c69c2 Setup framework for receiving model child results after running through model designer 2020-03-31 19:35:51 +10:00
Nyall Dawson
ef4344b674 Default to current layer when appropriate 2020-03-29 05:56:23 +10:00
Alexander Bruy
72404a9038 [processing] use native matrix parameter definition widget 2020-03-27 07:08:42 +10:00
Alexander Bruy
87eefa325e [processing] use native enum parameter definition widget 2020-03-27 07:08:42 +10:00
Nyall Dawson
1915a16bf3 Port extent parameter to new c++ API widget wrapper 2020-03-25 19:25:40 +10:00
Alexander Bruy
16b4ef8e32 [processing] port expression parameter definition widget to C++ 2020-03-19 11:49:13 +02:00
Alexander Bruy
972223b55e [processing] port point parameter definition widget to C++ 2020-03-19 11:49:13 +02:00
Alexander Bruy
f4e4adbef8 [processing] port CRS parameter defintion widget to C++ 2020-03-19 11:49:13 +02:00
Nyall Dawson
517aa9667b [processing] Port DestinationSelectionPanel to c++
This is basically a 1:1 port (+some fixes relating to incorrect signal
emissions and many more tests)
2020-03-17 07:24:40 +10:00
Alexander Bruy
70c5018b74 map layer data type support in modeler 2020-03-14 08:51:02 +02:00
Nyall Dawson
5149f0b6c7 Rebase fixes 2020-03-12 13:14:33 +10:00
Nyall Dawson
e3f1c576a9 Snapping api work 2020-03-12 13:14:33 +10:00
Nyall Dawson
4dd598fbb5 Also warn for unsaved changes when opening a model through the model designer 2020-03-11 08:39:54 +10:00
Nyall Dawson
e9c594d388 Make Model Designer window title follow app conventions
Show unsaved changes via * prefix, show model name in title

Also less Python, more c++
2020-03-11 08:39:54 +10:00
Nyall Dawson
e7b5c26696 [FEATURE][processing] Add undo/redo support to model designer
Makes QGIS more forgiving for users!

Sponsored by NRCan
2020-03-11 08:39:54 +10:00
Nyall Dawson
56610002e3 Identation 2020-03-06 18:22:49 +10:00
Nyall Dawson
0b3f7a58c1 Hookup toggle to hide comments from model designer 2020-03-06 18:22:49 +10:00
Nyall Dawson
08b47a496b Fix missing icon, less Python 2020-03-06 18:22:49 +10:00
Nyall Dawson
b84bf68dab Bit less Python 2020-03-06 18:22:49 +10:00
Nyall Dawson
8845b535c5 More c++ ports 2020-03-06 18:22:49 +10:00
Nyall Dawson
df7dd5ba90 More model dialog Python -> c++ ports 2020-03-06 18:22:49 +10:00
Nyall Dawson
a0e6a374eb Port some more model designer Python code to c++ 2020-03-06 18:22:49 +10:00
Nyall Dawson
eefd04cbc1 Start creation of a c++ base class for modeler dialog 2020-03-06 18:22:49 +10:00
Nyall Dawson
93355082a2 Add a menu bar to model designer 2020-03-06 18:22:49 +10:00
Nyall Dawson
2a1bf56493 [FEATURE][processing] Remember parameter values between model designer runs
When designing a model, users typically will need to run the model
many times as they tweak its structure.

This change causes the parameters used when running the model from
the designer to be remembered and saved into the model, so that
each time you run the model from the designer you don't have to
re-set all the input parameter values to the desired test ones.

Makes iterative model design SO much easier!

Sponsored by Alta Ehf
2020-03-06 18:22:49 +10:00
Nyall Dawson
23aa83c23e Add unit tests, minor fixes 2020-03-06 03:49:16 +10:00
Nyall Dawson
64868ce8f2 Bit more Python to c++ porting 2020-03-06 03:49:16 +10:00
Nyall Dawson
0af98f9f5b Nicer comment text appearance 2020-03-06 03:49:16 +10:00
Nyall Dawson
961557dacd UX improvements for comment editing 2020-03-06 03:49:16 +10:00
Nyall Dawson
03fc03355d Don't lose properties of existing outputs when editing algorithm 2020-03-06 03:49:16 +10:00
Nyall Dawson
13fc85d740 [FEATURE][processsing] Add support for comments attached to components
This allows users to create comments attached to model components (inputs,
algorithms or outputs). Comments are shown linked to the associated component,
and can be freely moved around the model.
2020-03-06 03:49:16 +10:00
Nyall Dawson
d79fed41ce Indentation 2020-03-05 18:55:20 +10:00
Nyall Dawson
70731d82d5 Port most of the remaining ModelerScene code to c++
ModelerScene is now a shell class, implementing the bare minimum
required for older Python API compatibility
2020-03-05 18:55:20 +10:00
Nyall Dawson
ef8f26e3a7 Much simpler code for determining linked parameters in modeler 2020-03-05 18:55:20 +10:00
Nyall Dawson
0fff9338bb Remove exception which is never raised 2020-03-05 18:55:20 +10:00
Nyall Dawson
d8eb0efc06 Add missing changed signal emissions 2020-03-05 18:55:20 +10:00
Nyall Dawson
5c44441cd3 Move some modeler scene code to c++, avoid hard link between scene
and dialog
2020-03-05 18:55:20 +10:00
Nyall Dawson
7d0b476fa7 Move almost all the remaining Python code for model graphic items to c++
Only minimal shells of objects are left in Python now, the bare minimum
required because they call objects which depend on Python compatibility
for deprecated API calls...
2020-03-04 07:19:00 +10:00
Nyall Dawson
d80bdd3371 Move last part of ModelerGraphicItem to c++, generalize handling of
folding buttons
2020-03-04 07:19:00 +10:00