2278 Commits

Author SHA1 Message Date
Nyall Dawson
8746932193 Merge pull request #3467 from pvalsecc/arrays
[FEATURE] Add support for array attributes
2016-09-16 06:13:34 +10:00
Matthias Kuhn
59a3bc2ca7 [feature] Add flag to only copy selected features
This extends the offline editing possibilities to only work on subset of
large layers

Sponsored by DB Fahrwegdienste GmbH
2016-09-15 11:19:58 +02:00
Juergen E. Fischer
3f3e206a73 fix windows build (tests & bindings)
(cherry picked from commit 0c1792a55dd880b2f3f2acf7b5ef89e8fbd5412d)
2016-09-14 23:13:14 +02:00
Nyall Dawson
de7475ae72 Merge pull request #3486 from nyalldawson/symbol
Symbology QGIS 3.0 todos
2016-09-15 05:59:28 +10:00
Nyall Dawson
aac7e9aa39 Merge pull request #3485 from nyalldawson/composer_dep
Remove deprecated methods from composer
2016-09-15 05:59:17 +10:00
Matthias Kuhn
632da63717 Export QgsOptional<QgsExpression> to dll/so 2016-09-14 13:26:17 +02:00
Nyall Dawson
b4d9f64796 Add method to retrieve most recently used color 2016-09-14 11:47:52 +10:00
Nyall Dawson
b7111775e8 Fix some QGIS 3.0 symbology todos 2016-09-14 09:33:58 +10:00
Nyall Dawson
098f69d878 Make QgsMarkerSymbolLayer::bounds pure virtual 2016-09-14 08:51:17 +10:00
Nyall Dawson
e122546546 Change QgsSymbol and QgsSymbolRenderContext render hint to use a
QgsSymbol::RenderHints QFlags value instead of a raw int

Also rename DataDefinedRotation to DynamicRotation since
it is no longer used for data defined rotation
2016-09-14 08:49:12 +10:00
Nyall Dawson
25125b089e Remove deprecated composer methods 2016-09-14 07:20:17 +10:00
Nyall Dawson
26d7235e85 Merge pull request #3480 from nyalldawson/symbol
Remove deprecated members from symbology
2016-09-14 06:41:01 +10:00
Martin Dobias
717e7162f3 [FEATURE] Preview of WMTS layers + add XYZ tile layers (PR #3473)
This introduces live preview when rendering WMTS layers - as soon as individual tiles are loaded, they are shown in map canvas... no need to wait with a blank map until all tiles are fully downloaded. Additionally, if there are already locally cached tiles of other zoom levels, they may be used in the preview while the tiles with best matching zoom level are being downloaded. This greatly improves the user experience when working with WMTS layers.

Additionally, I have added native support for XYZ tile layers into WMS provider (based on existing implementation of WMTS tiling). This allows loading of various new raster tile sources (e.g. OpenStreetMap tiles) that were before available only with QuickMapServices or OpenLayers plugins. To use XYZ tile layers, open the browser dock in QGIS and look for "Tile Servers (XYZ)" root entry. Right-clicking will open a menu to add connections. For example for OpenStreetMap the URL would be http://c.tile.openstreetmap.org/{z}/{x}/{y}.png

The work on WMTS live preview has been funded by Land Information New Zealand.

The work on XYZ tile layers has been funded by Lutra Consulting.
2016-09-13 23:37:05 +08:00
Patrick Valsecchi
57d00949f7 Add an editor widget for QVariantList 2016-09-13 09:16:17 +02:00
Nyall Dawson
7f9de72448 Remove DataDefinedSizeScale symbol RenderHint
This flag is no longer set anywhere in QGIS itself
2016-09-13 11:05:45 +10:00
Nyall Dawson
8301ba26c4 Remove sizeScaleField and sizeScaleMethods from renderers
These were unused (since they were moved to data defined properties
at the symbol layer level) and were not set anywhere in
core QGIS (ie, the only way to set them was by manually calling
this api)
2016-09-13 11:05:45 +10:00
Nyall Dawson
ae9023fe0f Remove last deprecated methods from symbology 2016-09-13 11:05:45 +10:00
Nyall Dawson
4d4aec692a Remove more deprecated symbol methods 2016-09-13 11:05:45 +10:00
Nyall Dawson
55fc40d87f Remove more deprecated methods from symbology 2016-09-13 11:05:45 +10:00
Nyall Dawson
7c1fc8e4bc Remove deprecated method from getDataValues() 2016-09-13 11:05:45 +10:00
Nyall Dawson
a921c190d0 Remove deprecated members and fix TODOs for QgsFeatureRenderer 2016-09-13 11:05:45 +10:00
Patrick Valsecchi
abc55f4c42 Add support for arrays in PostgresQL
Fix parsing of PostgresQL hstore. Had problems when the key or values were
containing comas.
2016-09-12 10:33:00 +02:00
Matthias Kuhn
ac503770be Fix python bindings for QgsExpression::checkExpression 2016-09-09 14:26:27 +02:00
Matthias Kuhn
aa87113995 Bindings and API docs 2016-09-09 14:26:27 +02:00
Matthias Kuhn
8cf0ef93c4 Add QgsOptional and QgsOptionalExpression 2016-09-09 14:26:24 +02:00
Matthias Kuhn
760816bb41 Public default constructor and comparison operator for QgsExpression 2016-09-09 14:25:58 +02:00
Martin Dobias
b025e3a336 Add missing SIP bits 2016-09-09 17:01:02 +08:00
Martin Dobias
f6a2a5e744 Clean up QgsRasterBlockFeedback class 2016-09-09 16:02:18 +08:00
Matthias Kuhn
03f0b44e4e Typo 2016-09-07 09:48:36 +02:00
Matthias Kuhn
02ae886d69 Map renderer sends signal on layers finished but before labeling 2016-09-07 09:00:18 +02:00
Patrick Valsecchi
7169079f91 Smarter default edit widgets with plugins to pick them
Now the widgets factories can give a score on how good they could handle
a widget.

Additionaly, plugins can be added to choose a widget factory in function
of an external information. One of them uses a table in PostgresQL to
allow specification of the widget type and configuration.

I took the opportunity to remove a few deprecated method in relation to
this.
2016-09-05 14:22:17 +02:00
Hugo Mercier
7e6d641c68 Fix PyQgsLayerDependencies with pyqt5 2016-09-05 13:43:00 +02:00
Nyall Dawson
4d60d0cdb5 [FEATURE] Add option to QgsGeometry::smooth to not smooth
segments shorter than a certain threshold or sharp corners
with an angle exceeding a threshold

Expose the angle threshold to processing smooth algorithm

Also:
- optimise QgsGeometry::smooth for new geometry classes
- Fix smooth does not work with geometries containing Z/M
2016-09-03 08:31:33 +10:00
Martin Dobias
80f022878f Small code cleanups 2016-09-02 09:41:35 +08:00
Matthias Kuhn
665df5fbd6 Merge pull request #3436 from aaime/scaledep
Export map level scale based dependencies in most vector symbology
2016-09-01 13:28:48 +02:00
Nyall Dawson
88047cc984 Merge pull request #3441 from nyalldawson/simplify
Simplify features + fixes
2016-09-01 21:02:09 +10:00
Martin Dobias
fdeac8198c Fix incorrect raster reprojection after drawing raster previews
Moved all temporary projector members to a private class,
so even recursive block() calls will not affect each other
(there is no new performance penalty as block() call always
recomputes the temporary control point matrix anyway)
2016-09-01 18:25:01 +08:00
Hugo Mercier
a86611b626 Cleanup layer dependency api 2016-09-01 09:58:37 +02:00
Martin Dobias
6bb291f2d6 Raster projector constructor cleanup
Marked raster interface as uncopiable (it should have always been uncopiable)
2016-09-01 15:38:58 +08:00
Andrea Aime
a25b0257a5 Export map level scale based dependencies in most vector symbology 2016-09-01 07:40:56 +02:00
Nyall Dawson
fbd6618d4a Add missing sip binding 2016-09-01 08:04:39 +10:00
Hugo Mercier
0749ba43ba Rework layer dependencies
A new class QgsMapLayerDependency allows to represent different kinds
of dependencies between layers.
2016-08-31 14:40:13 +02:00
Hugo Mercier
1a5a7c5905 [Feature] Data dependencies between layers
This allows to declare data dependencies between layers. A data
dependency occurs when a data modification in a layer, not by direct
user manipulation may modify data of other layers.
This is the case for instance when geometry of a layer is updated by a
database trigger after modification of another layer's geometry.
2016-08-31 09:22:09 +02:00
Nyall Dawson
15dd29564c Fix Capitalize First Letter fails with curved labels (fix #14875)
Instead of using QFont's inbuilt capitalization support, which
applies only on rendering and accordingly fails for curved
labels which are drawn one character at a time, we now manually
capitalize label text while registering features.

The capitalize first method from Qt was reimplemented in QgsStringUtils
(together with what I expect is better handling of unicode characters
over the Qt method).

This change also makes it possible to implement other capitalization
methods not directly supported by Qt
2016-08-30 15:34:05 +10:00
Nyall Dawson
97d7b7339e Move storage of field alias and default value to QgsField
This is a partial implementation - QMaps are still used internally
within QgsVectorLayer to track the alias/default values
between attribute edit operations.

Sponsored by DB Fahrwegdienste GmbH
2016-08-30 12:40:55 +10:00
Nyall Dawson
4d5bae22b8 [FEATURE] Client side default field values
Allows an expression to be set for a vector layer field which
is used to evaluate a default value for this field.

A new method,
QgsVectorLayer::defaultValue( int index,
                              const QgsFeature& feature = QgsFeature(),
                              QgsExpressionContext* context = nullptr )
has been added which evaluates the default value for a given field
using the optionally passed feature and expression context. This
allows default values to utilise properties of the feature
which exist at the time of calling, such as digitized geometries.
The expression context parameter allows variables to be used
in default value expressions, making it easier to eg insert
a user's name, current datetime, project path, etc

Default values are set using QgsVectorLayer::setDefaultValueExpression()
and retrieved using defaultValueExpression()
2016-08-30 12:39:55 +10:00
Nyall Dawson
7dea9700a6 [FEATURE] Substitution list support for labeling
Adds the ability to specify a list of text substitutes to make
which apply to label text. Eg abbrevating street types.

Users can export and import lists of substitutes to make
reuse and sharing easier.
2016-08-30 12:39:54 +10:00
Matthias Kuhn
a529b448e7 Revert "Merge pull request #3338 from pvalsecc/editor_widgets_selection"
This reverts commit bbafbf48872eda48a2be8876cc89a0770552c6ad, reversing
changes made to 13ac0434e10fc7edd1eca665ea7c8b6cb5fd212d.
2016-08-29 19:22:04 +02:00
Matthias Kuhn
b1448233e9 Move QgsMapLayerProxyModel and QgsMapLayerProxyModel to core
Because it's also useful for non-widget applications
2016-08-29 18:43:20 +02:00
Matthias Kuhn
bbafbf4887 Merge pull request #3338 from pvalsecc/editor_widgets_selection
Smarter default edit widgets with plugins to pick them
2016-08-29 17:14:14 +02:00