Nyall Dawson
307aabd66a
[FEATURE] Aggregates for expressions
...
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
2016-05-17 10:53:25 +10:00
Nyall Dawson
ea066599a1
[relations] Add method to manager to retrieve relations by name
...
Also
- Begin unit tests for QgsRelationManager
- Make project optional when constructing QgsRelationManager
2016-05-17 10:53:25 +10:00
Nyall Dawson
84fc3c3b3d
Implement method for caching values within expression contexts
...
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.
2016-05-17 10:53:24 +10:00
Nyall Dawson
821134ca91
Add method to convert string to aggregate type
2016-05-17 10:53:24 +10:00
Nyall Dawson
dcc047af49
Add possibility to handle aggregate calculation at data provider
...
(not implemented for any providers yet)
2016-05-17 10:53:24 +10:00
Nyall Dawson
50e41c8133
New utility class QgsAggregateCalculator, simplifies calculating
...
aggregates from vector layer fields and expressions
2016-05-17 10:53:24 +10:00
Nyall Dawson
1c45b940a8
Add calculation of number of null values to QgsStatisticalSummary
2016-05-17 10:53:04 +10:00
Nyall Dawson
4dea723cae
Add methods to stats calculators to accept values one at a time
...
This can be more efficient for large quantities of values, since
it avoids the need to create a list of all values in advance
2016-05-17 10:52:06 +10:00
Matthias Kuhn
9080aa1988
Don't require a parent for QgsExpressionBuilderWidget
2016-05-16 11:16:13 +02:00
Matthias Kuhn
d07d9edda6
Allow sorting attribute table by expression
2016-05-16 11:16:13 +02:00
Nyall Dawson
11ee2fc809
Fix running unsaved script in console
2016-05-16 18:14:58 +10:00
Even Rouault
abd182c50c
Merge pull request #3061 from rouault/saveas_human_readable_values
...
[FEATURE] Export vector layer with "human-readable" values from edit widgets
2016-05-14 14:23:10 +02:00
Even Rouault
038b3b7950
QgsVectorFileWriter: add capability to export displayed values of fields (typically coming from edit widgets) instead of their raw values
2016-05-14 12:33:10 +02:00
Sebastian Dietrich
c5308754eb
[DbManager] allow to refresh materialized views
...
(fixes #13697 )
2016-05-14 00:41:20 +02:00
Matthias Kuhn
27aca5c341
Fix typo
2016-05-14 00:21:50 +02:00
Matthias Kuhn
7dfc69657f
Migrate provider test to python 3
2016-05-13 22:23:03 +02:00
Matthias Kuhn
25f2e637c0
Remove references to QPyNullVariant
2016-05-13 22:23:03 +02:00
Matthias Kuhn
89b7a4aaa2
Introduce NULL QVariant to PyQt5
2016-05-13 22:23:03 +02:00
Alexander Bruy
ab3fef97aa
fix import (take 2)
2016-05-13 13:17:48 +03:00
Alexander Bruy
7c122a3a93
[processing] fix import
2016-05-13 11:11:33 +03:00
Even Rouault
d4d13a4a0a
Merge pull request #3018 from rouault/wfs_sql
...
[FEATURE] [WFS provider] Add support for WFS 2.0 joins and other improvements
2016-05-13 09:55:38 +02:00
volaya
19f80601bf
[processing] remove toolbox dock widget when unloading plugin
2016-05-13 08:58:47 +02:00
Alexander Bruy
555fe3d911
[processing] simplify variables handling in scripts
2016-05-13 09:34:25 +03:00
Alexander Bruy
0c8f6f7fbb
fix indentation and typo
2016-05-13 09:32:13 +03:00
Alexander Bruy
730c5806aa
Merge branch 'processing_exps' of https://github.com/volaya/QGIS into processing_exps
...
Conflicts:
python/plugins/processing/gui/NumberInputPanel.py
python/plugins/processing/gui/OutputSelectionPanel.py
2016-05-13 09:26:55 +03:00
Even Rouault
9df19e0133
Add QgsSQLStatement class to parse SELECT statements
2016-05-12 23:24:39 +02:00
Alexander Bruy
583eaeff7f
[processing] don't crash if user canceled script loading
2016-05-12 16:27:24 +03:00
Nyall Dawson
6886ea0d0c
[FEATURE] Redesigned interactive gradient editor
...
Uses new gradient editor widget and color controls for easier
manipulation of gradients. Also adds an interactive plot
for modifying gradient stops via the color HSV or RGB values.
Fix #8383
Sponsored by North Road
2016-05-12 21:03:59 +10:00
Nyall Dawson
881be0f365
[FEATURE] New reusable interactive widget for editing gradient ramps
...
Supports:
- drag to move color stops
- double clicking to add a new stop
- pressing delete will remove the selected stop
- pressing arrow keys will move the selected stop, shift+arrow= larger
move
- drag and drop a color onto the widget to add a new stop
Sponsored by North Road
2016-05-12 21:03:51 +10:00
Nyall Dawson
79f3d4221b
Add equality operator for gradients, ensure stops are always in order
2016-05-12 20:55:27 +10:00
Nyall Dawson
77fc122bed
Move internals of QgsColorDialogV2 to new QgsCompoundColorWidget widget
...
This allows reuse of the full options from the color dialog when
required in a widget form.
2016-05-12 20:52:16 +10:00
Nyall Dawson
0332157d8a
Partial revert 18b69d
2016-05-12 10:22:22 +10:00
Nyall Dawson
18b69d26ef
Indentation
2016-05-11 23:02:34 +10:00
Nyall Dawson
b053ad8769
New class QgsDateTimeStatisticalSummary
...
Calculates summary statistics on lists of datetime values, such
as count, count distinct, min, max and range
2016-05-11 23:02:33 +10:00
Matthias Kuhn
0d165e5621
Merge pull request #3058 from arnaud-morvan/processing_postgis_errors
...
Processing - Fix unicode/str error in postgis_utils
2016-05-11 12:30:14 +02:00
arnaud.morvan@camptocamp.com
66b1416dfe
Processing - Fix unicode/str error in postgis_utils
2016-05-11 11:27:58 +02:00
Matthias Kuhn
1e9a40fb62
Fix python bindings for QgsAttributeAction
2016-05-11 10:04:00 +02:00
Matthias Kuhn
d088fe072d
Fix action widget on attribute table
2016-05-11 09:22:49 +02:00
Matthias Kuhn
86ccaff49a
Merge pull request #3063 from DelazJ/fields
...
use same icons as in other dialogs for this task
2016-05-11 07:57:45 +02:00
Nyall Dawson
5177d93b5a
Add time field filter option for QgsFieldComboWidget (also add docs)
2016-05-11 11:59:39 +10:00
Nyall Dawson
ab288c6b12
Fix coverity mixed enum warning, switch 0 -> nullptr
2016-05-11 10:00:01 +10:00
Nyall Dawson
0f6838df2a
Merge pull request #3034 from rouault/ogr_concurrent_opening
...
[BUGFIX / FEATURE] [OGR] Allow concurrent edition of Shapefiles and Tabfiles in QGIS & MapInfo
2016-05-11 05:07:57 +10:00
Nyall Dawson
7ae80b106d
Fix sip bindings for QgsStringStatisticalSummary
2016-05-10 20:14:51 +10:00
Nyall Dawson
0493cbfc21
New class QgsStringStatisticalSummary, for calculating statistics
...
on lists of strings
2016-05-10 19:06:13 +10:00
Nyall Dawson
ceba5264f7
New class QgsInterval for storing durations between datetimes
...
Move the QgsExpression::Interval class out to its own QgsInterval
class, extend with new methods and add tests
Add a typedef to keep API compatibility for 2.16
2016-05-10 19:00:33 +10:00
Nathan Woodrow
ca914f118e
[FEATURE] Add style/history tab to style dock
2016-05-10 10:32:30 +10:00
Nyall Dawson
56783c915e
Merge pull request #3051 from nyalldawson/cad_fixes
...
Improvements and fixes to advanced digitising dock
2016-05-09 21:38:37 +10:00
Nyall Dawson
81e72b782f
Merge pull request #3060 from nyalldawson/filled_marker
...
New "Filled marker" symbol layer type
2016-05-09 21:23:59 +10:00
Nyall Dawson
ca2c6290b1
Always export GeoJSON features in WGS84 (match specifications)
2016-05-09 21:19:28 +10:00
Nyall Dawson
3681e2ceeb
Add method for exporting QgsFeatureList to GeoJSON featurecollection
2016-05-09 21:19:28 +10:00