The search widget wrappers for relations have two issues
* They recursively load whatever relations are defined. With self-referencing this leads to 💀
This is addressed by only loading one level of relations in search widgets.
* They would load even when hidden, leading to long load times on attribute table opening.
We now only actually load the form on the show event
The oracle provider is quite broken on 3.0 for tables which require
a feature id map.
This is due to QMap<QVariant,..> not working correctly when the
keys are QVariantLists on Qt5. We had a similar issue with the
postgres provider which was resolved by changing the map
to always use QVariantLists.
Apply the same fix to oracle.
Fixes#18289, #16869, #17738
Allows search for spatial bookmarks. Double clicking a search result will zoom to the bookmark.
Short video: https://www.youtube.com/watch?v=ymW4TU8QWy4
The new filter presents itself with a prefix of "b" and with tr( "Spatial bookmarks" ) as displayname.
A bookmark locator filter is added to the built in locator filters (class QgsBookmarkLocatorFilter is added to qgsinbuiltlocatorfilters.cpp). The wiring between the the new filter and QgsBookmarks has been implemented in
* QgisApp::getBookmarkIndexMap() (For reading bookmarks), and
* QgisApp::zoomToBookmarkIndex(const QModelIndex &index) (For navigating to a bookmark)
QgsBookmarks has been slightly refactored
Adds two new algorithms which expose QgsGeometry's methods
for segmentizing curved geometries.
"Segmentize by maximum distance":
The segmentization is performed by specifying the maximum
allowed offset distance between the original curve and the
segmentized representation.
"Segmentize by maximum angle":
The segmentization is performed by specifying the maximum
allowed radius angle between vertices on the straightened
geometry (e.g the angle of the arc created from the
original arc center to consective output vertices on the
linearized geometry).
If I don't misread the docs, if a template is given, the file
is created in the current directory instead of the temporary
directory reported by QDir::tempPath()
Furthermore it cannot be set by env TMPDIR.
This issue drove me crazy (and no exceptions and no logs!)
until when I switched the server user to root (that is
of course not what we want).
As a temporary workaround, the server can be configured to
use /tmp or another www-data writeable directory as a working
directory.
By prefixing with tempPath() the file will be created
in the system temp directory.