183 Commits

Author SHA1 Message Date
Nyall Dawson
f49b603443 Split QgsProcessingModelAlgorithm into separate components
The cpp/h file was getting too large, so split off the individual
subcomponents into their own h/cpp files to keep code
maintainable.
2017-07-08 20:49:17 +10:00
Nyall Dawson
cfa18039af Fix incorrect icon size in processing windows
Well... kind of. It fixes the toolbar button size, but for some
reason the actual icon content itself isn't being resized. I can't
work out why this is...
2017-07-08 20:49:17 +10:00
Nyall Dawson
82ef7d2a89 Create specific expression context scope for child algorithms
Contains variables for model parameters, algorithm results for
other child algorithms which are not dependent on the
algorithm.

Allows removal of final pieces of ModelerAlgorithm code
2017-07-07 11:35:31 +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
6d7b0a3bbc Fix re-saving already saved models 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
0a32add69e Port exporting model as python code to c++ 2017-06-27 08:33:13 +10:00
Nyall Dawson
ab9470dada More .model -> .model3 updates 2017-06-24 13:34:14 +10:00
Nyall Dawson
5e7fbf44be Make QgsAlgorithm::setProvider() public
Turns out there's valid use cases for calling this from outside
code.
2017-06-24 13:33:44 +10:00
Nyall Dawson
8f586ef020 Move groups from QGIS (and QGIS native) provider to top level items
in processing toolbox

Helps aid in user discoverability of these algorithms, and
indicates to users that these should generally be the
preferred algorithm choices if duplicates exist from other
providers.
2017-06-24 12:01:16 +10:00
Nyall Dawson
8e88276ab5 Remove another member from ModelerAlgorithm 2017-06-24 07:36:25 +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
9c47e1b148 Fix errors when edit model help 2017-06-24 07:35:56 +10:00
Nyall Dawson
df07772a56 Fix error when adding parameter 2017-06-22 12:21:25 +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
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
Nyall Dawson
efe8bba006 Work on resurrecting modeler 2017-06-20 14:45:13 +10:00
Nyall Dawson
03e40f7497 [processing] Remove all remaining algorithm copies
Algorithms are no longer copied - just a single const instance
of each algorithm is used
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
ac84326464 [processing] Fix executing models 2017-05-01 17:29:40 +10:00
Nyall Dawson
e9f13d1ea3 Just use standard QgsMessageLog functionality instead of a dedicated
method for processing
2017-04-26 13:57:06 +10:00
Nyall Dawson
1394c28d13 [processing] Move some log handling to c++ class 2017-04-26 13:56:29 +10:00
Nyall Dawson
117260dcf3 Remove activation control from AlgorithmProvider
Split between QgsProcessingProvider and subclasses
2017-04-07 13:21:28 +10:00
Nyall Dawson
ff32054da6 Fix some breakage 2017-04-07 13:21:28 +10:00
Nyall Dawson
4970bb4cd5 Move more algList functionality to QgsProcessingRegistry 2017-04-07 13:21:28 +10:00
Nyall Dawson
2a1a71574a Move algorithm id (previously commandLineName) to QgsProcessingAlgorithm 2017-04-07 13:21:28 +10:00
Nyall Dawson
b3142a0baf Move provider algorithm handling to QgsProcessingProvider 2017-04-07 13:21:28 +10:00
Nyall Dawson
e506ceb1f8 Move flags (hide from toolbox, etc) to QgsProcessingAlgorithm 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
b0dc9f8517 [processing] Fix error when opening modeler (fix #16270) 2017-03-16 12:56:42 +10:00
Juergen E. Fischer
f00a87cb8a update translation strings 2017-03-05 10:21:24 +01:00
Juergen E. Fischer
ecc5bb508e pep8/pyflakes3 cleanups 2017-03-04 02:38:15 +01:00
Juergen E. Fischer
a10c890383 More QgsSettings updates:
* revives WMS
* QgsSettings::clear() added
* section added to QgsSettings::contains()
* type parameter added to sip binding of QgsSettings.value()
* TODO: customization & evis
2017-03-04 02:37:59 +01:00
arnaud.morvan@camptocamp.com
c43b04ffff Fix modeler and batch file dialog 2017-02-09 11:05:09 +01:00
Juergen E. Fischer
89b58d7334 translation string fixes 2017-01-25 02:19:33 +01:00
Nyall Dawson
dca697b427 [processing] New c++ QgsProcessingRegistry class
Intended as a registry for the various processing components,
including providers, algorithms and various parameters and outputs.

Currently handles only registration of providers, as a step toward
removing processing's algList (this requires first porting
the algorithm class to c++)

A QgsProcessingRegistry instance is attached to QgsApplication,
and is retrieved by QgsApplication::processingRegistry()
2017-01-11 10:55:15 +10:00
Nyall Dawson
bb24dfe245 [processing] c++ base class for providers
Nothing particularly exciting here yet, but this commit
moves the definition of the provider base class to a c++
QgsProcessingProvider abstract base class.

As part of this some existing python methods were renamed
to make their use clearer and to fit with the QGIS c++
api conventions:

- getName was renamed to id
- getDescription was renamed to name
- getIcon was renamed to icon

These API breaks are documented
2017-01-11 10:55:15 +10:00
Mathieu Pellerin
56d5a375a1 [FEATURE] Zoom in/out and fit items to view actions for the modeler (#3939) 2017-01-03 12:15:03 +07:00
nirvn
f54476cdda [FEATURE] Export processing models as PDF/SVG 2017-01-02 11:47:54 +07:00
nirvn
8849e94208 [processing] vectorize basic modeler images 2016-12-31 11:59:53 +07:00
Alexander Bruy
95072e9bfd Merge pull request #3802 from alexbruy/processing-scripts
[processing] script editor UI improvements
2016-11-24 14:36:57 +02:00
Alexander Bruy
c3ed39061d [processing] improve script editor dialog
Use QMainWindow instead of QDialog, add normal toolbar instead of
QToolButtons. Also fix some issues caused by Qt5 switch.
2016-11-24 12:34:59 +02:00
nirvn
a6ebe830b0 [processing] upgrade modeler to make use of qgsdockwidgets 2016-11-24 11:59:19 +07:00
nirvn
6e2288dccb [processing] switch a couple of modeler pop up dialogs to message bars 2016-11-23 17:28:34 +07:00
nirvn
2652aa50c9 [processing] improve the modeler dialog UI and icons
- use a proper toolbar to match other parts of QGIS
- show keyboard shortcuts in toolbar action tooltips
- create vector icons to replace PNG ones
2016-11-23 13:45:17 +07:00