Nyall Dawson
3601138d2a
Use a feature source instead of vector layer for QgsGeometrySnapper
2017-07-07 09:28:19 +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
f39b7a0c4c
Fix build warning
2017-07-07 09:28:19 +10:00
Nyall Dawson
3108d68f87
Indentation
2017-07-07 09:28:19 +10:00
Nyall Dawson
4fa2bc025c
Keep correct order for zonal stats options, set some stats by default
2017-07-07 09:28:19 +10:00
Nyall Dawson
4eca20f28d
Fix zonal stats algorithm execution
2017-07-07 09:28:19 +10:00
Nyall Dawson
274d684f64
Fix procesing test layer loading
2017-07-07 09:28:19 +10:00
Nyall Dawson
b917a82662
Better debuging from processing alg tests
2017-07-07 09:28:19 +10:00
Nyall Dawson
6654aec6a5
Fix execution of script algorithms was not releasing layers/sinks
2017-07-07 09:28:19 +10:00
Nyall Dawson
f82899540e
Fix build
2017-07-07 09:28:19 +10:00
Nyall Dawson
5f02e9c89d
Avoid QgsFeedback flooding progress report signals
...
We only emit the progress changed signal when there's been at
least a 0.1% change since the last progress report. Otherwise
it's possible that things like processing algorithms which
are reporting feedback every feature in a 500k feature dataset
cause a gazillion signals to be emitted and everything to
slow to a crawl
2017-07-07 09:28:19 +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
e1184cd69a
Make QgsProcessingAlgRunnerTask work correctly
...
It now safely can execute algorithms in background threads
without issues
2017-07-07 09:28:19 +10:00
Nyall Dawson
e5b156b86a
Make processing algorithms safe to run in threads
2017-07-07 09:28:19 +10:00
Nyall Dawson
0231e773a1
Remove unused member
2017-07-07 09:28:19 +10:00
Nyall Dawson
5350483c90
Add method to take results from another processing context and
...
add to the current context
With appropriate note and tests to ensure that both the current
context and that which the results being taken from share the
same thread affinity
2017-07-07 09:28:19 +10:00
Nyall Dawson
d20c68d3f1
Add method to copy thread safe settings between processing contexts
2017-07-07 09:28:19 +10:00
Nyall Dawson
6c6f646291
Add methods to retrieve current thread affinity and push contexts
...
to another thread
With suitable assert in place to ensure that pushes are only
made when current thread == existing thread affinity
2017-07-07 09:27:35 +10:00
Nyall Dawson
1dce459610
Add method to transfer all layers from one map store to another
...
With a note and assert that both stores must have the same
thread affinity
2017-07-07 09:27:35 +10:00
Nyall Dawson
2543e079a5
Better assert messages
...
Issues is actually when prepare/postProcess is called in a different
thread to context - it doesn't have to be the main thread
2017-07-07 09:27:35 +10:00
Nyall Dawson
1b2086e8a6
Make algorithm dialog use background tasks to execute algorithms
2017-07-07 09:27:35 +10:00
Nyall Dawson
8cfcf57541
Fix tests
2017-07-07 09:27:35 +10:00
Nyall Dawson
7a1fd93ace
Flush sink buffers instead of deleting sink/sources in processAlgorithm
...
Avoids potential issues if processAlgorithm is run in a different
thread
2017-07-07 09:27:35 +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
cd7776ca1c
Upgrade ported python algs to be thread ready
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
5c4f64270d
Add clone method to ScriptAlgorithm
2017-07-07 09:26:17 +10:00
Nyall Dawson
cd9328d259
Fix some processing algorithm exception handling
2017-07-07 09:26:17 +10:00
Nyall Dawson
1b2afea23e
Add some more clone methods to algorithm subclasses
2017-07-07 09:26:17 +10:00
Nyall Dawson
0c6b19cd85
Improvements to QgsProcessingAlgRunnerTask
...
- take a clone of algs before running them. This avoids issues
if the algorithm is removed or edited while a background task
is running
- accept an optional existing feedback object
2017-07-07 09:26:17 +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
603168e8fa
Update sip
2017-07-07 08:54:00 +10:00
Nyall Dawson
014b0400da
Merge pull request #4736 from nyalldawson/text_button
...
New gui widget QgsFontButton
2017-07-07 07:38:18 +10:00
Juergen E. Fischer
536f6432a3
debian packaging: update oracle dependencies
2017-07-06 18:37:54 +02:00
Matthias Kuhn
91f908f754
Protected -> Private
2017-07-06 17:31:09 +02:00
Matthias Kuhn
11e24c29e7
Remove leftovers
2017-07-06 17:31:09 +02:00
Matthias Kuhn
c973c83c8c
Remove unused variable
2017-07-06 17:31:09 +02:00
Nathan Woodrow
e49aaedcb1
Don't duplicate layer tree node when alt is held
...
Looks like it duplicates the layer but it really just copies the node
meaning QGIS can get confused
Duplicate on Alt will come at a later date
2017-07-06 22:11:36 +10:00
Nyall Dawson
e2acf5369f
Add custom widget for QgsFontButton
2017-07-06 20:02:25 +10:00
Nyall Dawson
bacad8cea6
[needs-docs] Show recently used fonts in submenu in font button
2017-07-06 19:56:39 +10:00
Nyall Dawson
e95b65ef48
[needs-docs] Mouse wheeling over font buttons can change font size
...
With ctrl+mouse wheel changing in smaller size increments
2017-07-06 19:56:39 +10:00
Nyall Dawson
49ad7836d3
Recommend that QgsFontButton is used instead of getFont
2017-07-06 19:56:39 +10:00
Nyall Dawson
43f11f4fa0
Use QgsFontButton everywhere we can
2017-07-06 19:56:39 +10:00
Nyall Dawson
0fd1f8e563
Fix size hint for font button
2017-07-06 19:56:39 +10:00
Nyall Dawson
99855ea35a
Add method to use QgsFontButton in cut down mode for QFont settings only
...
The button can now be used in two different modes. The default behavior
is to include all settings used for configuring
QgsTextFormat/QgsTextRenderer classes. A cut down mode (without settings
for color/buffer/drop shadow/etc) is also available when the resultant
font is to be used only in a QFont object.
2017-07-06 19:56:39 +10:00
Nyall Dawson
5ac9745cad
Add methods to convert QFont to/from mime data
2017-07-06 19:56:39 +10:00
Nyall Dawson
0b9fb5d6e1
[needs-docs] New gui widget QgsFontButton
...
A standard widget for configuring text format properties for use
with QgsTextRenderer/QgsTextFormat.
It's modelled heavily off QgsColorButton, and supports lots of nice
things like dragging formats between buttons, copying and pasting
format settings, dropping colors from color buttons, dragging colors
from font buttons to color buttons, directly setting font size
and opacity/color without having to open a dialog.
2017-07-06 19:56:39 +10:00
Denis Rouzaud
a73131176f
reason spelling
2017-07-06 11:29:08 +02:00
Nyall Dawson
ddf5acebe7
Merge pull request #4807 from nyalldawson/layout_item_registry
...
Create a layout item registry for item types
2017-07-06 19:12:43 +10:00