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.
This adds new options for user to choose how the terrain should be rendered:
- shading disabled - color of terrain is determined only from map texture
- shading enabled - color of terrain is determined using Phong's shading model,
taking into account map texture, terrain normal vector, scene light(s) and
terrain material's ambient+specular colors and shininess
(configuration of lights is not there yet - now we always have a single point
light with white color at the middle of the scene at 1km above the zero elevation)
Even preventing their output isn't enough here. There's just
SO many debug msgs throughout this class, that creating and
parsing the debug messages strings (which is done even if
the message level is higher than is output) is enough
to grind the import to a halt on debug enabled builds.