- also adds QgsStyleProxyModel which handles filtering of entities
- lots of unit tests
- new signals in QgsStyle for when symbols/tags/etc change (with tests)
instead of QgsAttributeForm - because it's used on places not including QgsAttributeForm
now it's able to use @form_mode in expressions of containers and QML widgets
Sets a vector layer's renderer to a categorized renderer using matching symbols
from a style database.
The specified expression (or field name) is used to create categories for the
renderer. A category will be created for each unique value within the layer.
Each category is individually matched to the symbols which exist within the
specified QGIS XML style database. Whenever a matching symbol name is found,
the category's symbol will be set to this matched symbol.
The matching is case-insensitive by default, but can be made case-sensitive
if required.
Optionally, non-alphanumeric characters in both the category value and symbol
name can be ignored while performing the match. This allows for greater
tolerance when matching categories to symbols.
If desired, tables can also be output containing lists of the categories
which could not be matched to symbols, and symbols which were not matched to categories.
* create QgsMapLayer::LayerFlags for Searchable, Identifiable and Removable
this brings back the information previously saved in the project node back to the layer node
this will allow to embed this information in layer styles
* skip unexisting flag node to avoid setting wrong value for flag
* mark QgsProject::(set)requiredLayers as deprecated
* better API docs
* use new API in current code
* more docs and more old API fixes
* fix bad conversion
* more old API fix
* add missing SIP_OUT
* s/testFlags/testFlag
* fix var name
* adapt project test to test flags
* remove debug calls
* fixeS
QgsFeaturePool is now an abstract baseclass, with a new inherited class QgsVectorDataProviderFeaturePool. This allows creating other subclasses, most notably a QgsVectorLayerFeaturePool subclass, that is able to also work on uncommitted features.
Critical calls to methods which are not threadsafe have been protected by executing them on the main thread.
Also exposes this capability to modeler - so that model algorithms
can use data defined parameters within their child algorithms.
TODO:
- tests
- setting the associated vector layer
A new widget which handles parameter values for child algorithms
within a model. Instead of the previous approach of requiring
individual widget wrappers to handle creation of a suitable
model widget, we do all this automatically for them.
This widget uses a stacked widget with a toolbutton to select
the parameter's source, instead of the previous combo box approach
(which didn't scale well for large models). I.e. users select
first whether the value is taken from a static value, a
model input, or an output from a different child algorithm. The
widget then changes appearance and behavior based on this
choice.
Additionally, a new option is present for all parameters
of using a "precalculated expression". This expression is
evaluated once before the child algorithm is executed
and used during the execution of that algorithm.
- Add abstract base class for Processing widget wrappers to c++
- Add wrapper factory interface to c++
- Make QgsProcessingGuiRegistry also register widget wrapper
factories, and be responsible for creation of new c++
processing widget wrapper instances
- Start on private c++ implementation of boolean widget wrapper,
including unit tests