This adds a section to define point lights in 3D scenes.
Up to 8 lights are supported (limitation by implementation of materials).
For each light one can set the position, intensity, color and attenuation
For non-spatial layers, creating a new feature from the main
window now ALWAYS shows the attribute form for the new feature,
regardless of the user's "suppress form" setting. We do this because,
unlike for spatial layers, there's zero feedback given when adding
a new feature to a non spatial layer. (Spatial layers have instead
feedback even when the form is suppressed, because you see the
new feature appear on the map instantly)
But when a new feature is added from the attri bute table window,
then we never show the new feature's form -- because that's already
visible inside the attribute table dialog itself.
This widget is available for binary fields only (and is the default
widget used for binary fields). It offers a label showing
whether the blob field is empty or not, and if non-empty shows
the content size (in bytes/kb/etc).
A drop down menu button allows users to save the current binary
contents of the field out to a disk based file, clear the contents
of a blob field, or embed binary contents by picking a file
from their system.
Allows users to extract binary fields to files. The filename is set via
a data defined expression, so can be taken from a column value or
a more complex expression.
Instead of converting binary fields to truncated strings, we instead
store their contents as QByteArray values, allowing the original binary
content to be retrieved.
This allows for plugins and scripts to utilise binary fields,
such as extracting their contents.
Contains utilities for retrieving the geotag from images and
for setting an image's geotag.
Working with geotags (before this class!) is super-annoying
and fiddly and relies on either parsing command line tools
or depending on non-standard Python libraries which are
not available everywhere, and often very difficult for users
on certain platforms to get installed and working correctly.
With this class we have stable methods for geotag getting/setting
which are universally available and can be used safely
by plugins and scripts.