2223 Commits

Author SHA1 Message Date
Nyall Dawson
e7d039240c Fix doxygen warnings 2016-05-29 08:10:23 +10:00
Denis Rouzaud
b9baf2e95a Merge pull request #3131 from 3nids/lockscale
allow to lock scale to use magnification to zoom in/out
2016-05-28 18:18:22 +02:00
Denis Rouzaud
c3e7a56b05 always use double for dpi 2016-05-28 17:22:22 +02:00
Sandro Mani
3e73064c4a Store QgsBillBoardRegistry in QgsProject instead of making it a singleton 2016-05-28 17:10:10 +02:00
Denis Rouzaud
cf99817b72 allow to lock scale to use magnification to zoom in/out
this also removes the option for different behavior of mouse wheel
2016-05-28 16:52:09 +02:00
Nyall Dawson
bae8a0e5e0 [FEATURE] Georeference outputs (eg PDF) from composer
This commit makes composer automatically georeference outputs
(where output format makes this possible, eg TIF and PDF).

The existing option to create a world file has been separated
from the map selection for georeferencing. The new behaviour
is to always georeference outputs, and only create the
separate world file if that option is checked.
2016-05-29 00:46:39 +10:00
Nyall Dawson
bc779a06ed QgsActionManager: improve docs + add tests 2016-05-29 00:45:17 +10:00
Nyall Dawson
3d494ac9f8 Fix feature's value action not working (fix #14536)
Replace broken/missing $currfield with new @current_field
expression variable. Update other default actions to use
expression variables instead of deprecated special columns.
2016-05-29 00:45:17 +10:00
Nathan Woodrow
17b48563a5 [renderer] Live hillshade renderer for raster layers
Thanks to Asger Skovbo Petersen (@AsgerPetersen) for the idea and fixes
Thanks to Nyall for reviews and bug fixes
2016-05-28 21:01:33 +10:00
Sandro Mani
90887f460f Revived globe, compatible with OsgEarth 2.7 2016-05-28 10:09:34 +02:00
Nyall Dawson
2c1f2ce1c0 Add missing docs 2016-05-28 07:21:21 +10:00
Nyall Dawson
4da6588494 Temporarily revert "add sip bindings to webkit stubs"
This reverts commit dd69a5965589c8a27f2388e6ecad02b223392704.

The commit was causing build failures on Travis
2016-05-28 07:18:34 +10:00
Juergen E. Fischer
dd69a59655 add sip bindings to webkit stubs 2016-05-27 19:30:35 +02:00
Alvaro Huarte
6969a1a401 Fix travis errors 2016-05-25 22:53:01 +02:00
Alvaro Huarte
7e1d142fef Add Visvalingam simplification algorithm 2016-05-25 22:53:01 +02:00
Alvaro Huarte
734b8b4c62 Add SimplifyAlgorithm enum for local simplification
It implements the SimplifyAlgorithm enum for local simplification of
geometries.
Also the SnapToGrid algorithm is added.
2016-05-25 22:53:01 +02:00
Alvaro Huarte
51f06edbf7 Allow override WkbPtr and define WkbSimplifierPtr class
This commit simplifies the geometry just before to paint it in the
current QPainter device.

This commit allows to override the '>>' operators of the QgsWkbPtr
class. Also, It defines a new QgsWkbSimplifierPtr class to automatically
simplify the input point stream.
2016-05-25 22:50:28 +02:00
Alvaro Huarte
c4d7981678 New members in QgsVectorSimplifyMethod for QPaint simplification 2016-05-25 22:50:28 +02:00
Nathan Woodrow
76a23e68e8 [python] Add bits() bindings for QgsRasterBlock 2016-05-25 21:10:07 +10:00
Nyall Dawson
3e45369f77 Followup 71712a, add missing SIP bindings
Also change QPointF& -> QPointF (faster)
2016-05-24 05:26:46 +10:00
Nyall Dawson
726a013222 Flag old composer table classes as deprecated 2016-05-23 14:52:53 +10:00
Nyall Dawson
eb3a34cc92 Fix QgsComposerAttributeTableV2 setting displayed fields under qt5
Also don't run QgsComposerAttributeTable test when disable
deprecated flag is set.
2016-05-23 14:52:46 +10:00
Nyall Dawson
0fcff9f2a0 Allow direct QVariant creation from some QGIS metatypes 2016-05-20 09:48:18 +10:00
mhugent
bc1aa42f85 Merge pull request #3081 from mhugent/curve_segmentize_parameters
Curve segmentize parameters
2016-05-19 16:29:05 +02:00
Even Rouault
0078b33ed2 Merge pull request #3082 from rouault/vectorfilewriter_cleanup_and_encoding_improvement
Vectorfilewriter cleanup and encoding improvement
2016-05-19 14:53:38 +02:00
Even Rouault
3ee7d59e18 QgsVectorFileWriter::MetaData: add a compulsoryEncoding member
* Some formats require a compulsory encoding, typically UTF-8.
Change initMetadata() to indicate UTF-8 compulsory encoding for
GeoJSON, GeoRSS, GML, GPKG, GPX, KML, SQLite, SpatiaLite, FileGDB,
XLSX and ODS
* QgsVectorFileWriter::init(): make it override the user specified
encoding if the format has a compulsory encoding. And remove hard-coded
case for KML.
2016-05-19 11:38:42 +02:00
Marco Hugentobler
c0d12dcdeb [FEATURE]: possibility to set the segmentation tolerance (maximum angle or maximum difference) 2016-05-19 11:02:43 +02:00
Denis Rouzaud
1602c02df7 Merge pull request #3009 from pblottiere/magnifier
[FEATURE] add a map canvas magnifier
2016-05-19 06:30:07 +02:00
Nyall Dawson
23a3a7717e Cleaner API for selecting features in QgsVectorLayer
- 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
2016-05-19 12:30:32 +10:00
Nyall Dawson
b951d5a54d [FEATURE] new method QgsVectorLayer::selectByExpression(...)
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.
2016-05-19 09:11:00 +10:00
Blottiere Paul
d23a110cb6 move magnification in map settings 2016-05-18 14:40:41 +02:00
Martin Dobias
deee8e290e [FEATURE] Composer map to follow a visibility preset (fixes #13418)
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.
2016-05-17 12:52:32 +08:00
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
d07d9edda6 Allow sorting attribute table by expression 2016-05-16 11:16:13 +02: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
Matthias Kuhn
7dfc69657f Migrate provider test to python 3 2016-05-13 22:23:03 +02:00
Matthias Kuhn
89b7a4aaa2 Introduce NULL QVariant to PyQt5 2016-05-13 22:23:03 +02:00
Even Rouault
9df19e0133 Add QgsSQLStatement class to parse SELECT statements 2016-05-12 23:24:39 +02: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
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
1e9a40fb62 Fix python bindings for QgsAttributeAction 2016-05-11 10:04:00 +02:00
Nyall Dawson
ab288c6b12 Fix coverity mixed enum warning, switch 0 -> nullptr 2016-05-11 10:00:01 +10:00