1164 Commits

Author SHA1 Message Date
Nyall Dawson
0f7d8c05e3 Split layout map overview tests into their own file, add masks 2019-01-03 04:53:28 +10:00
Matthias Kuhn
d2b35753be
Merge pull request #8722 from m-kuhn/expression_function_sqlite_fetch_and_increment
Expression function sqlite_fetch_and_increment
2018-12-24 12:07:12 +01:00
Nyall Dawson
a2b5008b30 [FEATURE][layouts] Allow layout items to "block" map labels
This feature allows other layout items (such as scalebars,
north arrows, inset maps, etc) to be marked as a blockers for
the map labels in a map item. This prevents any map labels from
being placed under those items - causing the labeling engine
to either try alternative placement for these labels (or
discarding them altogether)

This allows for more cartographically pleasing maps -- placing
labels under other items can make them hard to read, yet without
this new setting it's non-trivial to get QGIS to avoid placing
the labels in these obscured areas.

The blocking items are set through a map item's properties, under
the label settings panel. The setting is per-map item, so you can have
a scalebar block the labels for one map in your layout and not others
(if you so desire!)
2018-12-21 04:12:32 +10:00
Nyall Dawson
620baa0d22 Layout map test reference image updates 2018-12-21 04:12:32 +10:00
sklencar
be34a0ed27 QgsZipUtils unzips also subdirectories of a zip file (#8672)
QgsZipUtils unzips also subdirectories of a zip file
2018-12-20 14:42:22 +01:00
Matthias Kuhn
5d8f6371e1
Add test for sqlite_fetch_and_increment 2018-12-20 14:32:24 +01:00
Alessandro Pasotti
56ca46efa9
Merge pull request #8706 from elpaso/bugfix-20674-dbmanager-aliased-3
Fix views query tables in spatialite
2018-12-19 07:43:48 +01:00
Nyall Dawson
06d5f924f6 More square brackets 2018-12-19 05:21:49 +10:00
Alessandro Pasotti
07d9d1dbb8 Fix views query tables in spatialite
There is still an old issue: views are only available
through DB manager.

Fixes #20674 - again

- Life is really simple, but we insist on making it complicated.
Confucius
2018-12-18 18:32:14 +01:00
Nyall Dawson
089a2f1c17 [FEATURE][layouts] Add new setting to control whether map items
should show partial labels

Layout map items no longer respect the default project setting
for "show partial labels", and instead have their own, per map
setting for this option. (Under the map item properties,
labeling settings button).

The map item setting always defaults to off (unlike the canvas
setting, which defaults to true for a new project) as layouts
should always default to the settings which produce the highest
quality cartographic outputs.

In general I suspect that most users would always want to avoid
rendering partial labels in layouts, but this setting was
previously so deeply hidden that most are unaware of how to
change it. (And previous discussion about changing the canvas
setting to hide partial labels deemed this default undesirable
for the canvas, where showing even a small part of a label
on the map border can help identify what sits just on/off
the edges of the map)
2018-12-18 15:32:29 +10:00
Nyall Dawson
645ca2b351 [ogr] Fix conversion of boolean values
Fixes #20290
2018-12-18 04:37:57 +10:00
Alessandro Pasotti
1ff3ddc61c
Merge pull request #8676 from elpaso/bugfix-20674-dbmanager-aliased-2
fix spatialite aliased, nested, joined queries
2018-12-15 14:54:55 +01:00
Alessandro Pasotti
e83e794016 spatialite: Add more test cases for table names with spaces 2018-12-15 11:08:05 +01:00
Nyall Dawson
8d7e21fc6d Test mask updates 2018-12-15 11:28:56 +10:00
Nyall Dawson
d8eac4797e [FEATURE][API] Add method to QgsMapSettings for specifying label blocking regions
These represent areas of the map where NO labels should be placed
2018-12-15 11:28:56 +10:00
Nyall Dawson
ed25a3e2ee [FEATURE][layouts] Add setting for label margin for map items
This setting allows per-map control of how close labels are permitted
to be placed to the map item's edges.

Sizes can be set using mm/inches/pixels/etc, and data defined
label margins are allowed.

Fixes #10314
2018-12-15 11:28:56 +10:00
Nyall Dawson
35855b88e1 [FEATURE][API] Add API to set a margin for labels for layout map items
This controls how close labels are permitted to the edges of the map
item. The labeling engine will then try other candidate positions
in order to avoid placing labels within this margin.
2018-12-15 11:28:56 +10:00
Nyall Dawson
4252aabe00 [FEATURE][API] Add option to specify a custom boundary geometry
in QgsMapSettings to restrict where labels are allowed to be placed
within.

If set, this overrides the default behavior of allowing labels to
be placed anywhere inside the rendered map extent.
2018-12-15 11:28:56 +10:00
Nyall Dawson
a49bf9f68f Unit tests for item opacity 2018-12-11 09:45:37 +10:00
Nyall Dawson
733d4ed578 Test masks 2018-12-07 08:08:52 +10:00
Nyall Dawson
048d526542 Add unit tests, standardise method names 2018-12-07 08:08:52 +10:00
Nyall Dawson
a97d335f31 Fix tests, test mask updates 2018-12-07 08:08:52 +10:00
Nyall Dawson
58219d66f8 Test mask updates 2018-12-06 09:22:50 +10:00
nirvn
c6425338ee [FEATURE] Raster image marker 2018-12-05 15:44:44 +07:00
nirvn
60442980dd Add dox comment, fix travis 2018-12-05 11:14:13 +07:00
Nyall Dawson
c1df802769 Add method to QgsImageCache to retrieve original image size 2018-12-05 11:14:13 +07:00
Nyall Dawson
84838d1ec6 [FEATURE][API] Add a content cache for raster images
This new class QgsImageCache is the equivalent of QgsSvgCache
but for raster images.

QgsImageCache stores pre-rendered resampled versions of raster
image files, allowing efficient reuse without incurring the
cost of resampling on every render.

Additionally, it offers the other benefits QgsSvgCache has,
such as thread safety, ability to transparently download remote
images, and support for base64 encoded strings.
2018-12-05 11:14:13 +07:00
Nyall Dawson
4bca7838bf [processing] Add method for providers to specify a different list
of supported output formats when an output has no geometry
2018-12-03 18:11:24 +10:00
Blottiere Paul
51a27b31b1 Update tests 2018-11-29 11:49:58 +00:00
Nyall Dawson
c5549bea48 Update test mask 2018-11-28 08:27:22 +10:00
Martin Dobias
d4ef55dadb
Merge pull request #8509 from wonder-sk/terrain-map-themes
[FEATURE] Optionally use a map theme to render terrain textures
2018-11-22 09:24:27 +01:00
Martin Dobias
afd3525297 Add test for terrain theme + do not use project singleton 2018-11-21 16:29:42 +01:00
Alessandro Pasotti
0d696ef1e5 [server] Fix invalid xml in getfeatureinfo
Fixes #20549 - error in parsing WMS GetFeatureInfo as XML

Also s/meta/META/ for consistency with all other tags
2018-11-20 18:26:49 +01:00
Tudor Bărăscu
2cf8f74c71 test server rendering debian buster bug #18988 2018-11-16 08:49:55 +02:00
Nyall Dawson
5c27b7da50 [FEATURE] Binary blob support for OGR provider
Instead of converting binary fields to truncated strings, we instead
store their contents as QByteArray values, allowing the original binary
content to be retrieved.

This allows for plugins and scripts to utilise binary fields,
such as extracting their contents.
2018-11-13 07:14:19 +10:00
Nyall Dawson
8703fb219b [FEATURE][API] New class QgsExifTools
Contains utilities for retrieving the geotag from images and
for setting an image's geotag.

Working with geotags (before this class!) is super-annoying
and fiddly and relies on either parsing command line tools
or depending on non-standard Python libraries which are
not available everywhere, and often very difficult for users
on certain platforms to get installed and working correctly.

With this class we have stable methods for geotag getting/setting
which are universally available and can be used safely
by plugins and scripts.
2018-11-13 07:13:36 +10:00
Nyall Dawson
30214538c2 [FEATURE] Add option to simple line and marker line to only
render exterior ring or interior rings

This option is shown whenever a simple line symbol or
marker line symbol is used as part of a fill symbol for
rendering polygons.

The default behavior is to render both interior and exterior
rings, but this new setting allows users to set the symbol
layer to render only for the exterior ring OR only
for interior rings.

This allows for symbolisation which wasn't directly possible
before, such as a marker line with markers for interior
rings angled toward the interior of the polygon.

Sponsored by the German QGIS User Group

Fixes #12652
2018-11-09 19:06:48 +10:00
Nyall Dawson
73d0ced5df [FEATURE] Add option to force right-hand-rule during polygon symbol rendering
This new option, available under the "Advanced" button for fill symbols,
allows forcing rendered polygons to follow the standard "right hand
rule" for ring orientation (where exterior ring is clockwise, and
interior rings are all counter-clockwise).

The orientation fix is applied while rendering only, and the original
feature geometry is unchanged.

This allows for creation of fill symbols with consistent appearance,
regardless of the dataset being rendered and the ring orientation
of individual features.

Refs #12652
2018-11-09 19:06:48 +10:00
Nyall Dawson
1b79b9a140 [FEATURE] force_rhr expression function
Forces polygons to follow the right hand rule, in which the area that
is bounded by a polygon is to the right of the boundary. In particular,
the exterior ring is oriented in a clockwise direction and the
interior rings in a counter-clockwise direction.
2018-11-09 19:06:48 +10:00
Alessandro Pasotti
ba4981a1f4 Move change data source under filter 2018-11-08 11:30:06 +01:00
Alessandro Pasotti
c74ce886dc Disable "Change data source..." action if layer is editable 2018-11-08 09:22:33 +01:00
Alessandro Pasotti
9af0719ff2 Bad layers: added tests for subset string and groups 2018-11-06 14:58:04 +01:00
Alessandro Pasotti
7db1d4e8b4 Added test project with the bad layers (not used by tests)
but still useful for manual tests
2018-11-06 10:28:49 +01:00
Alessandro Pasotti
ba3ccca2dd Add rule-based and categorized styles to the bad layers test 2018-11-06 10:27:07 +01:00
Alessandro Pasotti
7a259c6ea5 Better handling of invalid relations ...
- do not add them to the manager dialog
- do not add relations to not existent layers (but keep relations to invalid layers)
2018-11-05 10:26:39 +01:00
Alessandro Pasotti
bc424d09c1 Store original style as QDomDocument instead of an XML string 2018-11-05 10:26:39 +01:00
Alessandro Pasotti
d46d765d58 Restore handle bad layers dialog original behavior 2018-11-05 10:26:39 +01:00
Alessandro Pasotti
8493636f18 Data source select dialog now accepts a model 2018-11-05 10:26:39 +01:00
Alessandro Pasotti
17433181aa Fix raster style restore when setDataSource 2018-11-05 10:24:35 +01:00
Alessandro Pasotti
8d9d52d128 Add test data for relations 2018-11-05 10:24:35 +01:00