Something internal in KDE itself adds child QObjects to menus, so the
code which tries to find the last action in the menu fails and returns
a QObject instead of a QAction, leading to an exception in the
insertAction call.
This is all too fragile anyway, so avoid it by:
- Just creating the models menu directly in the ui
- Exposing this via interface for use in the processing plugin
Now there's no risk of this code breaking in future if the Project
menu is re-arranged.
This algorithm extracts point features corresponding to the minimum
and maximum pixel values contained within polygon zones.
The output will contain one point feature for the minimum and one
for the maximum raster value for every individual zonal feature
from a polygon layer.
This algorithm extracts extrema (minimum and maximum) values
from a given band of the raster layer.
The output is a vector layer containing point features for
the selected extrema, at the center of the associated pixel.
If multiple pixels in the raster share the minimum or maximum
value, then only one of these pixels will be included in the output.
The algorithm uses raster iterator to remain efficient on huge
rasters, and does not require reading the entire raster to
memory
And add to "Advanced Python field calculator" algorithm, as that
algorithm uses the Python exec() function and is a security
risk if run with untrusted/unchecked inputs
The older approach of storing parameters was insecure, and required
eval()ing the unchecked contents of the batch parameter file. This
is a security risk, as a malicious file could leak user information
or damage the system.
So,
- Switch to a newer ".batch" format which uses safe JSON objects
only for serializing parameter values.
- Allow loading the older .json files, but first show a warning
that they are a security risk and require to user to explicitly
agree to open the file
"forward declare" functions which will be patched when the processing
plugin starts, so that these are known and accessible during the PyQGIS
doc building. Also make these forward declared versions raise
QgsNotSupportedException, so that its clear why they aren't working
when the processing plugin hasn't started
Fixes https://github.com/qgis/pyqgis-api-docs-builder/issues/38
export the layer to an OGR compatible source first
Use the same logic we use eg for auto-exporting memory layers
so that GDAL tools "just work" with GRASS provider vector
layers