This dramatically slows down rendering, especially when labeling
is used. E.g. because labeling clips features, or because the
rendering simplification code results in invalid geometries -
this then fires multiple geos warnings when labeling
tests for geometry validity, etc. But these warnings are useless,
because the original geometry is valid and users cannot repair
them.... yet they slow things RIIIIIIGHHHT DOOOOWN.
Well behaved code, which requires access to geos errors,
should be using QgsGeometry::lastError instead.
The value relation widget filter expression can now use two
new functions/variables that have access to the current
values and geometry of the form being edited.
This allows for dynamic filtering (drill-down) as explained
in the crowdfunding page:
https://north-road.com/drill-down-cascading-forms/
The new functions/variables are:
Function:
get_current_form_field_value( 'FIELD_NAME' )
Variable:
@current_form_geometry
* [FEATURE][locator] Add search for settings pages to locator bar
Search Settings, Options, and Project Properties pages. Double clicking a search result will open the correct page and tab.
Short video: https://www.youtube.com/watch?v=duB2YekUmV0
The new filter presents itself with a prefix of "s" and with tr( "Settings" ) as displayname.
A settings locator filter is added to the built in locator filters (class QgsSettingsLocatorFilter is added to qgsinbuiltlocatorfilters.cpp). The wiring between the new filter and QgsApp has been implemented in:
For reading misc. pages:
* QgisApp::getProjectPropertiesPagesMap(),
* QgisApp::getSettingPagesMap(), and
* QgisApp::getOptionsPagesMap()
For navigating to selected page
* QgisApp::showProjectProperties( const QString &page ) and
* QgisApp::showSettings( const QString &page )
* Implement requested changes
* Implement required changes
there is a small redundancy in code, but it makes it much nicer to read the calls:
flagValue( key, default) instead of enumValue( key, default, NoSection, false )