52506 Commits

Author SHA1 Message Date
Nyall Dawson
4bba8ae64d [FEATURE][API] Add some nice PyQGIS API for working with geometry collections
- Calling removeGeometry with an invalid index will now raise an IndexError
- Calling collection[0] will return the first geometry in the collection,
collection[1] the second, etc. And negative indices return from the end
of the collection, so collection[-1] returns the last geometry in the collection.
- Geometries can be deleted by calling `del collection[1]` (deletes the
second geometry from the collection). Also supports negative indices
to count from the end of the collection.
2018-12-07 05:51:27 +10:00
nirvn
31b82de5e3 [FEATURE][AFS] Automatically convert ESRI picture fill symbols 2018-12-06 17:47:24 +07:00
Matthias Kuhn
def29e812d
Merge pull request #8601 from signedav/fix-ts-file
[Bugfix] .qgs-translation fix: do not create QgsProject before QgsApplication
2018-12-06 10:37:58 +01:00
Matthias Kuhn
ba88a1096f
Merge pull request #8604 from m-kuhn/geometry-validation-reenable-layer-savability
Save layer changes on successful repair
2018-12-06 09:12:31 +01:00
nirvn
0983f52063 [FEATURE] Raster fill can have images set to remote URLs
or as embedded files.

Just like the SVG and raster image marker, raster fill can now
be set to use HTTP(s) URLs or have files directly embedded
inside the symbol itself.
2018-12-06 11:56:38 +07:00
nirvn
901da9dd58 Make use of image cache when rendering raster image fill layers 2018-12-06 11:56:38 +07:00
Nyall Dawson
72783d55c8 Show messagebar feedback after successfully extracting svg/raster contents 2018-12-06 14:31:49 +10:00
Nyall Dawson
f3b72608a1 Add message bar to QgsSymbolWidgetContext 2018-12-06 14:31:49 +10:00
Nyall Dawson
89e9895742 [afs] Correctly set picture marker size aspect ratio lock on load 2018-12-06 14:31:49 +10:00
Nyall Dawson
b95400806a [FEATURE][processing] Native "split lines by maximum length" algorithm
This algorithm takes an input (multi)line (or curve) layer, and splits
each feature into multiple parts such that no part is longer then
the specified maximum length.

Supports data-defined maximum length property, and edit in place operation.

Credit to @NathanW2 for the inspiration!
2018-12-06 10:01:31 +10:00
Nyall Dawson
19b54ba2f9 Identation 2018-12-06 09:22:50 +10:00
Nyall Dawson
543acff4fe [FEATURE][AFS] Automatically convert ESRI picture marker symbols
and use as default style for remote layers with picture marker symbology
2018-12-06 09:22:50 +10:00
Nyall Dawson
51b2ce4b6c [FEATURE] Raster image marker can have images set to remote URLS
or as embedded files

Just like the SVG marker, raster markers can now be set to use
HTTP(s) URLs or have files directly embedded inside the
symbol itself.
2018-12-06 09:22:50 +10:00
Nyall Dawson
e6bbcbb455 Don't try to render empty image paths for raster image marker 2018-12-06 09:22:50 +10:00
Nyall Dawson
3136885157 Fix QPainter warnings when broken image paths are passed to QgsImageCache 2018-12-06 09:22:50 +10:00
Nyall Dawson
bafda2451b Correctly handle empty paths in QgsImageCache 2018-12-06 09:22:50 +10:00
Nyall Dawson
58219d66f8 Test mask updates 2018-12-06 09:22:50 +10:00
Nyall Dawson
32dc102026 Fix embedding larger files then can fit in a QLineEdit's contents
Fixes #20329
2018-12-06 09:22:50 +10:00
Nyall Dawson
5ed9097756 Fix more warnings 2018-12-06 09:22:50 +10:00
Nyall Dawson
050d833540 Avoid Qt warnings 2018-12-06 09:22:50 +10:00
Nyall Dawson
7a5f553579 More efficient image size calculation for base64 encoded images 2018-12-06 09:22:50 +10:00
Nyall Dawson
9d28a9699c Add a new widget QgsImageSourceLineEdit, based on QgsSvgSourceLineEdit
Allows images to be set to base64 embedded images, remote urls, etc
when used alongside QgsImageCache
2018-12-06 09:22:50 +10:00
Nyall Dawson
cce5c4e802 [console] Correctly save settings when exiting app
The closeEvent approach which was previously used is not reliable
on application exit, so manually force a settings save in this case too.

Avoids loss of command history when closing QGIS

Also remove the manual "Save" history action, as it's redundant
2018-12-06 05:42:47 +10:00
Nyall Dawson
1f1bbbaeb6 [console] Fix saving scripts sometimes defaults to QGIS bin folder 2018-12-06 05:42:47 +10:00
Denis Rouzaud
e77b124d8d [Expression builder] move value group box under help area
otherwise the value group box might supperpose the item
fix #17727
2018-12-05 13:53:17 -04:00
Alessandro Pasotti
7945b573b2
Merge pull request #3 from SrNetoChan/pr8612
Improves toggleAllLayers icon
2018-12-05 15:07:36 +01:00
Alessandro Pasotti
515da0d074 Toggle All Items -> Toggle Items 2018-12-05 15:06:02 +01:00
Alexandre Neto
1c987118dd Improves toggleAllLayers icon 2018-12-05 13:52:38 +00:00
Alessandro Pasotti
ff99f1b825 [feature] Add a toggle action to vector layer legend items 2018-12-05 12:34:43 +01:00
nirvn
9d1aaa83ab Use QImageReader to speed up image cache's originalSize function 2018-12-05 15:44:44 +07:00
nirvn
1e4ad4460f Use image operation's multiplyOpacity in image cache 2018-12-05 15:44:44 +07:00
nirvn
c6425338ee [FEATURE] Raster image marker 2018-12-05 15:44:44 +07:00
Alessandro Pasotti
a8be1ff37c
Merge pull request #8607 from elpaso/handle-bad-layers-refresh-layer-order
Tells the bridge to update when a bad layer was fixed
2018-12-05 08:18:19 +01:00
nirvn
60442980dd Add dox comment, fix travis 2018-12-05 11:14:13 +07:00
nirvn
ad4b876866 Add opacity parameter to image cache 2018-12-05 11:14:13 +07:00
nirvn
ce5636afed Allow passing {width,height}-only size to the image cache 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
e0a6a046b7 Ensure necessary updates happen when image cache is changed 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
cdba8f5621 Use QgsAbstractContentCache base class for QgsSvgCache 2018-12-05 11:14:13 +07:00
Nyall Dawson
22496dc139 Create a new abtract base class for file content caches (e.g. QgsSvgCache)
Generalise QgsSvgCache and split off into a common base class so
that we can re-use code with alternative similar caches, e.g. a
raster image cache.
2018-12-05 11:14:13 +07:00
Nyall Dawson
d79cee1fe1 [needs-docs][processing] Rename "remove duplicates by attribute" to
"delete duplicates by attribute"

for consistency with "delete duplicate geometries". Also add some
tags to delete duplicate geometries algorithm.
2018-12-05 07:36:13 +10:00
Nyall Dawson
9c1653f00a [processing] Fix exception on launching refactor fields
(The logic with parameter widget_wrapper metadata is very gross -
but there's nothing we can do about it till 4.0!)

Fixes #20707
2018-12-05 04:47:55 +10:00
Nyall Dawson
0ba37fcb72 [processing][SAGA] Add unit test for RGB composite 2018-12-05 04:47:33 +10:00
Nyall Dawson
71b32f072c [processing][SAGA] Fix output type for RGB Composite should be tif, not sdat format 2018-12-05 04:47:33 +10:00
Nyall Dawson
5349f24cae [FEATURE] Allow deleting settings from the Advanced tab in options
This commit adds a new right click menu to the settings shown
in the "Advanced" tab in the settings dialog, which allows users
to remove that setting (or group of settings)
2018-12-05 04:46:58 +10:00
Nyall Dawson
ff786f2223 Add group method to QgsSettings
Is present in the QSettings API, but missing from QgsSettings
2018-12-05 04:46:58 +10:00
Denis Rouzaud
a5bad2d5f3
fix typo 2018-12-04 14:15:27 -04:00
iona5
61cdaad530 fix wrong padding of QgsFontButton on macOS 2018-12-05 04:01:09 +10:00
Alessandro Pasotti
b45ab5d283 Tell the bridge to update when a bad layer was fixed
This fixes an unreported issue: when a bad layer is fixed
it does not appear in the layer order panel.

The reason why it does not appear is that a bad layer
has no geometry information, and the layer order
model does not list geometryless layers.

But after a bad layer has been fixed, it has a geometry
and the panel should show it.
2018-12-04 18:33:51 +01:00