I limited the renaming to things that are not in the public API and
are not setting names. This is probably more than we strictly need to
do, but at least this will help doing potential future similar 'grep'
exercises.
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
Allows use of img tags in HTML label content. The following logic
is applied:
- Image path is set via the src="xxx" attribute. Local, HTTP, and
base64 encoded paths are permitted
- Any image format readable by QGIS can be used
- Image sizes can be specified via the width="##" and height="##"
attributes. If width or height is not specified it will automatically
be calculated from the original image size
- If width or height are specified, they are considered to be
in POINTS
- The css width/height settings are NOT respected (this is a Qt
limitation)
- Images are not supported for curved text labels
- Images are placed inline only, floating images are not supported
Sponsored by City of Freiburg im Breisgau
Adds support for base64 encoded image decoding when the path
is a HTML data URL (in addition to the existing "base64:..."
format support)
Allows use of eg "data:image/jpeg;base64,XXXXXXXX" formats
for image paths, so that the image cache can correctly handle
embedded image paths from HTML/CSS content
* add template method to return specific type of layers in map canvas
* Apply suggestions from code review
Co-authored-by: Matthias Kuhn <matthias@opengis.ch>
---------
Co-authored-by: Matthias Kuhn <matthias@opengis.ch>
Instead of just silently return "0", which is misleading and
can result in data corruption/incorrect analysis results. Better
to be safe and force callers to handle transformation errors
appropriately.
In this case we:
- raise QgsProcessingExceptions when the failed measurement is coming
from a processing tool, so that the user is forced to deal with the
issue and we aren't providing meaningless/misleading measurements
- report evaluation errors if the measurement is coming from a
QGIS expression, so the user must appropriately handle the situation
- for all other cases we currently just write a console error and
maintain the current behavior of treating the measurement length
as 0. TODO notes have been added to handle this cases better.
For multi-line labels, this allows use of either:
- HTML <p align="xxx"> attributes
- CSS "text-align: xxx"
- HTML <center>some text</center> tags
Supported alignments are left, right, center and justify
Horizontal alignment can be used in all contexts where
HTML text is rendered, EXCEPT for curved labels (since they
are restricted to single-line text)
Sponsored by City of Freiburg im Breisgau