This adds a new cmake option GENERATE_QHP. If the api docs are
set to being built (ie doxygen is available and WITH_APIDOC is true)
then setting GENERATE_QHP to true will cause doxygen to create
a compiled Qt help file from the QGIS docs.
This QHP file can then be used by QtCreator to show the QGIS
api directly within the QtCreator help (ie, press F1 on a class
or member to see the docs).
To do this, you need to:
- make sure doxygen is installed, WITH_APIDOC is true and
GENERATE_QHP is true
- build to generate the docs
- In QtCreator, go to Tools -> Options -> Help, switch to the
"Documentation" tab and click "Add". Point it to your generate
QHP file (should be in the build folder doc\api\qch folder)
- Restart QtCreator, wait a bit, and then you should have the
api docs available under the "Help" tab and by pressing F1
on a QGIS class/method
- add selectByRect( QgsRectangle&, SelectBehaviour) and
selectByIds( QgsFeatureIds, SelectBehaviour) for selecting
by rect and ids respectively, with options to add to selection/
remove from selection/intersect with current selection
- deprecate select( QgsRectangle ) and setSelectedFeatures in
favour of new methods
- add unit tests
Makes it simple for scripts to select by expression. The method
also accepts a parameter which dictates whether matching features
are added to an existing selection, removed from the selection
or intersected with the current selection.
The existing code from the select by expression dialog has been
moved to QgsVectorLayer, and optimised for maximum possible speed.
Also added unit tests.
Save annotations to project file in the order they were loaded or
created, so that annotations have the same display order each
time the project is opened.
- The group is renamed as 'Select fields to export and their export options'
- It has no longer a checkbox. It is just collapsible. So
QgsVectorLayerSaveAsDialog::attributeSelection() is deprecated and always
return true.
- For most formats, all attributes are selected by default
- For CSV/XLSX/ODS, if they have edit widgets, the corresponding checkbox in
"Replace with displayed values" column is also checked by default.
- For DXF, keep existing behaviour: attributes are unchecked and not checkable
- For KML, keep existing behaviour: attributes are unselected by default
This adds a new option in composer map properties:
"Follow visibility preset" with a combo box to choose the active preset.
This is an alternative to "lock layers" (and "lock layer styles") functionality
which would just copy preset's configuration, while the new option links to preset.
The difference is that when a preset is updated, composer map will automatically
pick the new configuration when following the preset, while there is no update
if "lock layers" (and "lock layer styles") option is used.
This commit adds a number of different forms of aggregates to
the expression engine.
1. Aggregates within the current layer, eg sum("passengers")
Supports sub expressions (ie sum("passengers"/2) ), group by
( sum("passengers", group_by:="line_segment") ), and optional
filters ( sum("passengers", filter:= "station_class" > 3 ) )
2. Relational aggregates, which calculate an aggregate over
all matching child features from a relation, eg
relation_aggregate( 'my_relation', 'mean', "some_child_field" )
3. A summary aggregate function, for calculating aggregates
on other layers. Eg aggregate('rail_station_layer','sum',"passengers")
The summary aggregate function supports an optional filter,
making it possible to calculate things like:
aggregate('rail_stations','sum',"passengers",
intersects(@atlas_geometry, $geometry ) )
for calculating the total number of passengers for the stations
inside the current atlas feature
In all cases the calculations are cached inside the expression
context, so they only need to be calculated once for each
set of expression evaluations.
Sponsored by Kanton of Zug, Switzerland
Can be used to store the results of expensive sub-expression
calculations (eg layer aggregates), so that future expression
evaluation using the same context does not have to recalculate
the cached values.