1639 Commits

Author SHA1 Message Date
Alessandro Pasotti
67c8e56f9c QGIS Server WFS3 ACL + alias + excluded fields
Takes into account aliases, excluded attributes and ACL plugins
2019-09-10 18:21:53 +02:00
Alessandro Pasotti
b2c7ba05c2 Cast vector layer 2019-09-10 18:21:53 +02:00
Alessandro Pasotti
13353e2194 Typo 2019-09-10 18:21:53 +02:00
Alessandro Pasotti
95c0ad54ff WFS3 add ACL and other visibility options 2019-09-10 18:21:53 +02:00
rldhont
5d05322bc3 [Test] Server: Add GetMap tests to PyQgsServerWMSDimension test 2019-09-07 16:07:10 +02:00
rldhont
31e823345e [Test] Server: Create PyQgsServerWMSDimension test 2019-09-07 16:07:10 +02:00
Mathieu Pellerin
5df309447e
[delimiter text] Add Point{Z,M,ZM} geometry support (fixes #25645) (#31595)
[FEATURE][delimiter text] Add Point{Z,M,ZM} geometry support (fixes #25645)
2019-09-06 19:35:27 +07:00
Nyall Dawson
ee414f5750 Add unit test for upgrading older project bookmarks 2019-09-04 14:19:47 +10:00
Sandro Santilli
ffad801fad Add test for custom bbox in postgresql provider
See #18107
2019-08-29 17:47:25 +02:00
Sandro Santilli
81146a639d [tests] Load postgis_raster extension when available, and needed 2019-08-29 17:47:25 +02:00
Nyall Dawson
377b4d7dc8 Unit tests for dynamic grid interval 2019-08-28 14:12:28 +10:00
Nyall Dawson
88c66b805f Unit tests for data defined grid 2019-08-28 14:12:28 +10:00
Ismail Sunni
b9978d53d1 [FEATURE][3D] Billboard Rendering for Points (#31308)
* Add button to change billboard symbol.

* Add shaders for billboards.

* Add billboard material class.

* Add sample billboard image.

* Add dummy handler for billboard.

* Add billboard geometry class.

* First working version of 3D point as billboard.

* Make selected feature bigger.

* Use default symbol preview as billboard.

* Update billboard when changes the viewport size.

* Use QgsTerrainTextureImage for adding image to texture.

* Show better quality of billboard default symbol.

* Promote QgsSymbolButton not working.

* Add QgsSymbolButton properly.

* Add seTexture2DFromSymbol.

* Use default symbol

* [On Progress] Get symbol from the QgsSymbolButton.

* [On progress] failed to change the symbol

* Fix billboard fragment shader for macOS

* Better transparency handling.

* Use size from the symbol.

* Add set layer for 3d billboard symbol.

* Set billboard size from the symbol pixel size * 20

* Use size from the image.

* [Debug] set white symbol to success kid, it work when previous billboard is success kid.

* Use store and restore symbol from Nyall.

* Remove unrelated code.

* Apply random extent to fix the bug, from Martin.

* Remove add mesh entities for billboard.

* Hide material and transformation widget for billboard.

* Remove add scene entities for billboard.

* Add selected as parameter in drawPreviewIcon.

* Add QgsMarkerSymbol to store the symbol in billboard

* Put billboard symbol in point3dsymbol serialization.

* Add billboard height in the UI.

* Set height for billboard.

* Store billboard height separately. Perhaps better to use existing transform.

* Set height of billboard to TY.

* Flipped image for billboard symbol.

* Add helper function to set billboard function.

* Generate billboard transform from general transform.

* Use static dpi for context size.

* Remove debug message.

* Use Qgs3DRenderContext for selection color and dpi from QgsApplication.

* Remove unnecessary file and code.

* Remove commented iut code.

* Add documentation of new classes.

* Fix banned keywords.

* Add missing parameter's documentation.

* Address PR review.

* Use context from readXML.

* Remove one line function.

* Fix billboard size.

* Make some functions private, remove unused function.

* Use unique_ptr for the ownership.

* Use unique_ptr for default symbol to avoid memory leak.

* Add parent to texture2D.

* Fix documentation.

* Add copy constructor.

* Fix documentation.

* Remove documentation warning.

* Fix sip error.

* Add unit test for billboard rendering.

* Set ambient to not transparent for measurement line.

* Add dpi in the Qgs3DMapSetting

* Update billboard rendering unit test.

* Remove layer from 3d point widget since it's not supported yet.

* Addressing PR review from Martin.

* Attach dom directly for the billboard symbol.

* Remove unused constructor for point3dsymbol.

* Use stroke width ratio for solving big stroke width.

* Update unit test for rendering with some stroke color.

* Fix typo.
2019-08-27 10:04:56 +02:00
Jürgen Fischer
596ffd06fd
Fix layout picture item test (alternate fix to #31382) (#31383)
* Fix layout picture item test (alternate fix to #31382)
* doxygen: add pointer to QgsProperty::value() to QgsAbstractPropertyCollection::value()
2019-08-24 23:49:22 +02:00
Nyall Dawson
77f7988496 Update test 2019-08-23 06:33:47 +10:00
Nyall Dawson
9210478998 Update test mask image 2019-08-23 06:33:47 +10:00
Nyall Dawson
2ca302999d [FEATURE] "Center of segment" placement mode for marker and hash line symbol layers
Adds a new placement option to place markers/hash lines at the center
point of individual line segments

Refs #29785
2019-08-21 19:41:58 +10:00
Alessandro Pasotti
b20f2ea175 Use layerId as OperationId (because of spaces and utf8 in the layer
names)
2019-08-19 14:44:58 +02:00
Alessandro Pasotti
a3c4eb9947
Providers connections interface API
This is the implementation of the new DB connections API (grant proposal 2019).
Summary

The new API makes it available to QGIS core a new interface for provider connections and will allow to:

    replace the provider specific QgsSettings management in QGIS4 (save/load connections from the settings) NOT IN SCOPE FOR NOW.
    provide a unified API for common operations on DB connections:
        executeSql and get the results
        list tables names and properties and schemas
        create a new vector table (no rasters for now)
        create/rename/drop schemas and tables
        vacuum
       ....
2019-08-16 20:44:05 +02:00
Nyall Dawson
41f819a52f Add API to allow labels in QgsMapRendererStagedRenderJob to be
rendered by individual map layer

This allows seperation of labels belonging to different layers,
but may affect label stacking order as the order will become
layer-dependant, instead of per-label-dependant.
2019-08-14 06:46:19 +10:00
Nyall Dawson
9b512b0f6e Render labels in staged renderer job 2019-08-14 06:46:19 +10:00
Nyall Dawson
244eb92a82 Add QgsMapRendererStagedRenderJob
This map renderer job subclass is designed for step-by-step rendering
of a map to different QPainters.

It exposes an API which lets callers iterate over parts of a map
(e.g. individual map layers, labels), specifying a destination
QPainter for each step in the iteration.

This is designed to improve the existing print layout export to
layered output map rendering, where currently the maps are rendered
by multiple renderer jobs, each only rendering one layer at a time.
This current approach of rendering individual layers are separate
jobs is fundamentally broken (and cannot be fixed), because it
prevents any handling of interactions between map layers (e.g. shifting
colliding labels).
2019-08-14 06:46:19 +10:00
Alessandro Pasotti
b76a04323c Tests for bugfix GH31177 2019-08-10 15:33:51 +02:00
Māris Nartišs
6eeb031134 WMS provider: Extract WMS-C TileSet layer title and abstract from matching WMS Layer data (fixes #30262) 2019-08-09 13:42:10 +03:00
nirvn
6a75d9d997 [text renderer] Add rotation-based orientation mode 2019-08-08 16:59:22 +07:00
Alessandro Pasotti
92ac7a2e93
[server] Server api and WFS3 (#10016)
Implementation of OGC API and WFS3 core draft specification
2019-08-06 16:38:21 +02:00
Denis Rouzaud
0698eedc94
add test for detecting composite key relations (#31092) 2019-08-06 13:39:00 +02:00
nirvn
ec75aa0300 [FEATURE][text renderer] Support vertical text orientation 2019-08-06 13:24:15 +07:00
Julien Cabieces
4f7975d2dc Fix WMS GetMap 8bit mode with transparency (#31014)
* Fix WMS GetMap 8bit mode with transparency

* Correct indentation

* Remove french text in qgs test project

* Correct render checker for 8bit image

* Remove empty line
2019-08-01 17:14:43 +02:00
nirvn
b68a9c3b81 Add tests 2019-07-30 18:06:26 +07:00
nirvn
8b5ba4a0cf Fix rebase gone wrong and address review 2019-07-29 15:14:34 +07:00
nirvn
3a37c83da7 [FEATURE][layout] Add horizontal placement option for scale bar labels 2019-07-29 15:14:34 +07:00
nirvn
e5deb5517b [FEATURE][layout] Add above/below segments placement option for scale bar labels 2019-07-29 15:14:34 +07:00
Nyall Dawson
4d5fe9a086 [FEATURE][callouts] Add setting to allow callouts to be drawn to all parts
of a multi-part feature

Also data-definable!
2019-07-29 11:18:10 +10:00
Nyall Dawson
ab7106ae99 [labeling][FEATURE] Allow data defined control over "label every
part of multipart features" setting
2019-07-27 20:22:50 +10:00
Nyall Dawson
3484a0246d [labeling] Add API to allow curved labels to overrun features 2019-07-26 18:24:20 +10:00
Nyall Dawson
35a35fbbb1 [labeling] Fix repeated line labels gravitate to start of line
Avoids situations like

1. Line length of 3cm
2. Repeat distance of 2cm
3. Label size is 1.5 cm

    2cm    1cm
/--Label--/----/

i.e. the labels are off center and gravitate toward line starts

Instead, we first calculate how many complete repeats we can fit
in, and then divide the line into even sections of this length,
avoiding the situation where some leftover segment of the line
end isn't big enough for the label to fit.
2019-07-25 15:11:16 +10:00
Nyall Dawson
03d561b199 [labeling] Ensure short lines (wrt font size) still generate sufficient
candidates to ensure centered placement of labels
2019-07-25 12:11:45 +10:00
nirvn
aab8e511bd [FEATURE][callouts] Allow specifying an offset from label area distance 2019-07-22 18:29:05 +07:00
Nyall Dawson
2b554d8bab [FEATURE][callouts] Allow specifying an offset from feature distance
which controls a distance from the feature where callout lines end

Makes for visually more appealing callouts vs drawing them right
up against the edges of features
2019-07-22 18:40:08 +10:00
Nyall Dawson
8f6f04885b [FEATURE] Add @scale_value expression variable for use when evaluating
data defined text format properties while rendering scale bar text

Allows for per-label customisation of the text format inside scale bars
2019-07-22 11:34:32 +10:00
Nyall Dawson
19a2b0e5d5 [api] Allow data defined properties to be set in QgsTextFormat, so
that these are automatically respected whenever the format is
rendered using QgsTextRenderer

This is done transparently to the caller - so by porting away
from the raw QPainter text apis to use QgsTextRenderer instead,
then they immediately gain the ability to use data defined
properties in their text formats.
2019-07-22 11:34:32 +10:00
Nyall Dawson
859d9a7233 Add test for drawing unplaced for a feature with no candidates 2019-07-21 20:29:34 +10:00
Nyall Dawson
c3b2f77a64 [FEATURE][labeling] Allow display of unplaced labels
This setting (accessed through the project label settings dialog)
allows unplaced labels to be shown on the map. These are rendered
using a red color by default (but the color can be changed from
the label settings dialog too), allowing users to determine whether
any important labels are missing from their maps (e.g. due to
overlaps or other constraints).
2019-07-21 20:29:34 +10:00
nirvn
dded60611b [callouts] Add symbol-related variables to the expression context 2019-07-16 14:59:06 +07:00
Nyall Dawson
b01c5e1e0e Add test for other callout stacking option 2019-07-16 07:46:58 +10:00
Nyall Dawson
171f06447a [callouts] Ensure simple callouts are rendered below all map labels
...instead of being rendered on top of some. For this callout style,
we don't want callouts overlapping labels (rather the opposite). But
leave API in place to allow other callout styles to render below
their associated labels only, as this may be wanted for some styles
(e.g. balloon style callouts)
2019-07-16 07:46:58 +10:00
Alex
248af94ba9 Symbol aware legend expression (#9648) 2019-07-15 07:12:24 +02:00
Nyall Dawson
e52b06eeb4 Unit test for feed language 2019-07-15 12:52:20 +10:00
Nyall Dawson
e783323fd7 Include lat/long in newsfeed url if available 2019-07-15 12:52:20 +10:00