12383 Commits

Author SHA1 Message Date
Salvatore Larosa
330c2f70ce
Merge pull request #6627 from slarosa/cp_layer1
[FEATURE][needs-docs] Copy&Paste Group/Layers from a QGIS project to another
2018-03-20 16:06:21 +01:00
Sandro Mani
e90ac56b46 Add a minimal data provider for plugin layers
Throughout the codebase, there is a general assumption that layer->dataProvider() is not null. This wasn't the case for plugin layers.
2018-03-20 13:39:56 +01:00
Salvatore Larosa
9a25d6764e
Merge pull request #6592 from slarosa/save_load_xyz
[FEATURE][needs-docs] Save/Load connections for XYZ Tiles
2018-03-20 09:31:24 +01:00
Nyall Dawson
ff6ea33686 [processing] Fix broken Aggregate algorithm
Fixes #18349
2018-03-20 08:06:38 +11:00
Alexander Bruy
092557b16a [processing] correctly handle inactive providers in the modeler (fix #18461) 2018-03-19 11:55:10 +02:00
Nyall Dawson
732c5260cc [processing] Fix Concave Hull algorithm, add tests
Fixes #18475
2018-03-19 12:00:30 +11:00
Nyall Dawson
26bdd920f4 [processing] Fix newlines are stripped from Python traces in log 2018-03-19 12:00:30 +11:00
Salvatore Larosa
f6f7027c7f fix failure to travis code_layout 2018-03-18 21:49:59 +01:00
Nyall Dawson
7a28181e7f Skip some attributes in import photos test
These absolute paths cannot be tested in processing algorithm tests
2018-03-16 15:08:29 +11:00
Nyall Dawson
fa2c5aebb7 [FEATURE][processing] Import geotagged photos algorithm
This implements a new "import geotagged photos" algorithm
for processing. It allows selection of a folder which it
will scan for jpg files which have been geotagged and
creates a PointZ layer with the result, with attributes
for photo path, altitude, direction and timestamp.

Optionally the scan can be recursive and you can create
an optional table of photos which could not be read
or which were missing geotags.

The algorithm automatically sets the output table to
use an external resource widget to display the linked
photos in the attribute form.

[ALGCHANGE]
2018-03-16 15:08:29 +11:00
Nyall Dawson
87e8432644 [processing] Fix Points to Paths terminates when an order by
field is empty
2018-03-16 14:30:30 +11:00
Shiva Reddy
536cc9cfbe Update writeOut to include isatty (#6602)
Added these lines so that QGIS 3 python console works in window
2018-03-16 08:20:14 +11:00
Nyall Dawson
7c0665a331 Clearer ownership, docs for rule based renderer 2018-03-16 08:18:36 +11:00
Alessandro Pasotti
4f05ed1dd7 [bugfix] value relation widget with Allow multiple selection doesn't resolve
Now it will accept arrays as well as string representations of arrays

Added a test

Fixes #16967 value relation widget with Allow multiple selection doesn't resolve the values anymore
2018-03-15 15:11:52 +01:00
Nyall Dawson
d907ba05fc [processing] Expand 'algorithm' group in history on load
Since all the useful stuff is in that group, you ALWAYS need
to expand it anyway!
2018-03-15 16:57:31 +10:00
Nyall Dawson
dc27d12046 Fix documentation test 2018-03-15 17:55:25 +11:00
Nyall Dawson
bd1d87ed86 [processing] Allow algorithms to set layer post-processors for
execution on generated layers after the algorithm (or parent
model) completes

This commit adds an interface for layer post-processing handlers
for execution following a processing algorithm operation.

Post-processing of a layer will ONLY occur if that layer is set
to be loaded into a QGIS project on algorithm completion.

Algorithms that wish to set post-processing steps for generated
layers should implement this interface in a separate class
(NOT the algorithm class itself!) and implement a method
to handle the layer post-processing.

This method always runs in the main thread and can be used to
setup renderers, editor widgets, metadata, etc for the given layer.

Fixes #17961
2018-03-15 17:55:25 +11:00
Nyall Dawson
654a4a4af6 [processing] Fix algorithm progress bar resets to 0 when an algorithm
reports a non-fatal error

Fixes the "flashy" progress bar when an algorithm encounters a lot
of errors.
2018-03-15 13:43:01 +11:00
Denis Rouzaud
4c1e19c080 fix constraints not checked when they should be (#6550) 2018-03-14 07:49:37 -04:00
Salvatore Larosa
281a3ed3aa fix capitalisation: followup 504e50df5e 2018-03-13 12:38:17 +01:00
Alexander Bruy
88e8acddf8
Merge pull request #6571 from slarosa/fix_18183
[processing] SAGA "output extent" should not be mandatory (fix #18183)
2018-03-13 08:45:45 +02:00
Nyall Dawson
ce59cbd6f7 Sipify 2018-03-13 10:39:49 +11:00
Nyall Dawson
14c8b3c75d [neeeds-docs] Show all color schemes and tools for interacting with the in the
options->color tab

This brings all of QGIS' color scheme handling to a more logical and
user-discoverable place. Previously this functionality was only
available inside the color dialog itself (i.e. users would have to start
changing a color before they could create and edit schemes)
2018-03-13 10:39:49 +11:00
Nyall Dawson
7e6796c657 By default, generate new layer colors from a random selection
in a preset palette

The palette is packaged as resources/new_layer_colors.gpl

TODO: allow users to set a different palette
2018-03-13 10:39:49 +11:00
Nyall Dawson
bc449c401b Move generation of default symbol random colors to
QgsColorSchemeRegistry

and add API to set a QgsColorScheme from which to pull
colors when creating a random symbol color.
2018-03-13 10:39:49 +11:00
Nyall Dawson
40ceb7bdce Don't mark project dirty when legend nodes are expanded/collapsed 2018-03-13 10:10:23 +11:00
Salvatore Larosa
504e50df5e [FEATURE][needs-docs] Save/Load connections for Tiles XYZ 2018-03-12 18:56:56 +01:00
Nyall Dawson
251e1d5352 [FEATURE][processing] Add line sinuosity to "Export Geometry Info"
Adds line sinuosity and straight distance to the stats calculated
by "Export Geometry Info"

Fixes #12376
2018-03-12 14:58:04 +11:00
Nyall Dawson
6c179059a5 Add straightDistance2d and sinuosity measures to QgsCurve 2018-03-12 14:58:04 +11:00
Nyall Dawson
f06b3691c5 More spelling fixes 2018-03-12 14:32:17 +11:00
luz.paz
b82ec177c9 Misc. source comment typos
+ added 2 strings in to spelling.dat file
2018-03-12 14:32:17 +11:00
Nyall Dawson
d04b3d9eaf Update spell check list, spelling 2018-03-12 14:32:17 +11:00
Nyall Dawson
273e664563 Fix some leaks in conversions 2018-03-12 14:30:53 +11:00
Ari Jolma
08332e73a2 [processing][gdal] color relief alg: add the default color option, i.e., no switches 2018-03-12 10:43:47 +11:00
Nyall Dawson
8df954d6b8 [processing] Port Delete Holes algorithm to c++, allow dynamic
min area parameter
2018-03-12 10:41:22 +11:00
Nyall Dawson
540d692c56 Fix leak in network analysis director 2018-03-11 20:20:50 +11:00
Nyall Dawson
dfa6b6ae19 Correctly set base style for QgsLayerTreeViewProxyStyle
Creates a new QgsProxyStyle subclass of QProxyStyle which
automatically sets the base style to match the current
application style (creating a new QStyle object, since
setting the base style takes ownership). Additionally,
QgsProxyStyle correctly parents the style to a parent
widget, avoiding leaks since calling QWidget::setStyle
doesn't transfer ownership.

Fixes incorrect theme used for layer tree view since
addition of indicator icons.
2018-03-11 10:23:18 +11:00
Nyall Dawson
0c1ceb3900 [FEATURE][layouts] Data defined table source for attribute table items
When an attribute table is set to a "Layer features" source, this
allows the underlying vector layer from which to source features
to be data defined.

(All existing table attributes (column settings) are left intact,
so setting a data defined table to a layer with different fields
will result in empty columns in the table.)

Sponsored by Kartoza/Inasafe
2018-03-11 10:22:46 +11:00
Nyall Dawson
97324661c7 Add layout util to retrieve map layer from project by string
Considers both layer id (preferred) and layer names
2018-03-11 10:22:46 +11:00
Nyall Dawson
60afeadf44 Add QgsProjectDirtyBlocker and QgsProject.blockDirtying to prevent
project dirtying for the lifetime of an object

Python code can then call:

    project = QgsProject.instance()
    with QgsProject.blockDirtying(project):
      # do something

Use QgsProjectDirtyBlocker to prevent projects being marked as
dirty while creating a new project or while loading an existing
project -- avoids the titlebar temporarily showing the project
state as unsaved while it is being loaded.
2018-03-11 08:44:51 +11:00
Salvatore Larosa
23172a101e [processing] Fixes #18183: SAGA "output extent" should not be mandatory 2018-03-10 22:08:07 +01:00
Denis Rouzaud
cc0c1bc6a4 [QgsFilterLineEdit] disable clear action when read only 2018-03-10 10:17:27 -09:00
Juergen E. Fischer
e1ad1cb473 more translation string fixes 2018-03-10 12:23:45 +01:00
Alexander Bruy
7eb7e9361e Revert "[processing] replace QCoreApplication.translate() with tr() in"
This reverts commit 007903494582b1e71273e7b801b928d32eb2f330.
2018-03-09 18:31:10 +02:00
Juergen E. Fischer
ad4d0a17d5 processing: make error messages moved to message bar translatable again (followup 6e2288dcc) 2018-03-09 17:21:12 +01:00
Alexander Bruy
0079034945 [processing] replace QCoreApplication.translate() with tr() in
ParametersPanel class
2018-03-09 14:57:37 +02:00
Ari Jolma
b0cd3fb5f0 Translate strings before making changes to them. 2018-03-09 18:10:23 +11:00
Felis Pimeja
198bf77208 Vectorize console icons (#6515) 2018-03-09 09:53:53 +07:00
Nyall Dawson
4e5c08e2b5 [FEATURE] Allow overwriting the project home path
This allows the project home path (which is used by the browser
to create the 'Project Home' item) to be set by users for a
project, instead of always matching the location where the project
is saved.

This allows users to set the project home to a folder which contains
data and other content, and is especially useful for organisations
where qgis projects are not stored in the root folder of a organisational
'project'.

Project home paths can also be set to relative paths, in which
case they will be relative to the project saved location.

The path can be set through the Project Properties dialog, or
by right-clicking on the Project Home browser item and
selecting 'set project home'

Sponsored by SMEC/SJ
2018-03-09 11:15:55 +11:00
Blottiere Paul
d09a34c900
Merge pull request #6553 from pblottiere/bugfix_dbmanager_stop
[dbmanager] Fixes empty table
2018-03-09 00:10:39 +00:00