18135 Commits

Author SHA1 Message Date
Alessandro Pasotti
d54c3101ae Add feedback to executeSql
Fixes #38092 by adding an optional QgsFeedback argument to
the executeSql method and by implementing the PQCancel
method in the PG provider internals.

While the cancellation works well for all supported provider while
fetching results in the loop, the cancellation of a running query is now
implemented for the postgres provider connection only because the GPKG
and GDAL both rely on GDALDatasetExecuteSQL which cannot be interrupted.

This PR also introduce a few optimizations in the PG DB-Manager
code that should probably fix also other "slowness" issues that
were reported after 3.x during PG query execution.

A small UX change in th SQL dialog makes it evident to the user that
a cancellation request has been sent to the backend: the button text
is changed to "Cancellation requested, please wait..." so that for
provider connections that are not able to interrupt the running query
and must wait for the fetching loop to exit from the exeuteSql call
the user knows that something is happening and that a cancellation
request has been successfully sent.
2020-09-19 11:15:41 +02:00
Nyall Dawson
fe70bb2440 Dox 2020-09-18 11:50:27 +10:00
Nyall Dawson
c293d2c60d [sipify] Correctly collapse TypeHint annotations 2020-09-18 11:50:27 +10:00
Nyall Dawson
fe5615ea44 Hold the GIL for more geometry related methods 2020-09-18 11:50:27 +10:00
Peter Petrik
24cfedf03f fix #32511 always detect GRASS installation folder on MacOS 2020-09-18 10:56:44 +10:00
Nyall Dawson
44fb4f5f85 Dox 2020-09-18 04:34:57 +10:00
Nyall Dawson
d4a2dddac5 Tag some inexpensive, frequently called methods with the HoldGIL annotation
This prevents the Python GIL from being released before calling the method
(which is the default behaviour). For very cheap to call c++ methods the
cost of releasing the GIL can outweigh the cost of the c++ call, which means
it's more efficient to retain the hold on the GIL.

Ideally we'd do this everywhere, and switch to an explicit ReleaseGIL
annotation on functions which are slow or risky (raise exceptions, or
do something which can cause a GIL deadlock). But those are very tricky
to identify, so instead just explicitly hold the gil on cheap methods
which are likely to be called many times and could have an impact on
script performance.
2020-09-18 04:34:57 +10:00
Nyall Dawson
c44178f517 Fix seealso link 2020-09-17 19:10:52 +10:00
Nyall Dawson
49e9b613b8 [layouts] Keep a separate flag for whether only a subset of layers
are to be clipped from the project, instead of just tracking this
by the presence of any checked layers

Avoids inconsistencies between the layers which are visibly clipped
on the map vs the options which are set in the GUI.
2020-09-17 19:10:52 +10:00
Peter Petrik
fce4b27644
fix #35147 QgsMeshLayer map canvas rotation rendering (#38795)
fix #35147 QgsMeshLayer map canvas rotation rendering
2020-09-17 10:44:58 +02:00
Denis Rouzaud
5ca4ef8f3d
QgsField::ConfigurationFlags: use a negative form for the flags so th… (#38805)
* QgsField::ConfigurationFlags: use a negative form for the flags so that default flags is None

this will make this futureproof, so newly added flags won't cause trouble for compatibility with old projects

* follow up

* remove template class

* fix order of init

* follow up

* Revert "update test projects (open and save)"

This reverts commit c738609d9177ed398ba2a0ae0e1c16448accd5f6.

* DoNotExposeVia -> HideFrom
2020-09-17 10:31:22 +02:00
nirvn
445d78f7cc Add a plugin interface to add pages to the project properties dialog 2020-09-17 13:48:57 +07:00
Nyall Dawson
484ba6f979 [labeling] Add a new capitalization option for "Title Case", and
rename the confusing "Capitalize First Letter" option to
"Force First Letter to Capital"

This change is intended to clarify the role of the "capitalize
first letter" option, and to provide an option which actually
does what users expect the "capitalize first letter" option
to do.

Fixes #16539
2020-09-17 09:33:51 +10:00
Alessandro Pasotti
e79103e354 Spelling 2020-09-17 07:28:45 +10:00
Alessandro Pasotti
cbb0cb3f1c Add a warning about the usage of setInstance 2020-09-17 07:28:45 +10:00
Alessandro Pasotti
a782420153 Update SIP 2020-09-17 07:28:45 +10:00
Alessandro Pasotti
c80093c47a Expose QgsProject::setInstance to API
Fixes #38755

Needs forward porting to all active branches
2020-09-17 07:28:45 +10:00
Nyall Dawson
f018252023 Add a Legend category to the style selection widgets and allow
legend settings to be stored and restored in QML

Fixes #37683
2020-09-17 07:27:34 +10:00
Denis Rouzaud
bc3d8fd988
Merge pull request #38285 from uclaros/split-add-topo-all-layers
Add topological points to all editable layers on split feature
2020-09-16 17:19:43 +02:00
Denis Rouzaud
f6c98ec5f1
Merge pull request #38730 from 3nids/conf-flag-check-cb
Use a checkable combobox for fields configuration flags
2020-09-16 07:02:17 +02:00
Even Rouault
53c5c337ec [Algorithms] JoinByNearest: accept max_distance == 0.0 (fixes #38761) 2020-09-16 06:15:11 +10:00
Nyall Dawson
afd7698460 Extract utility functions for saving and reading raster color map definitions
to file to new QgsRasterRendererUtils class
2020-09-16 06:12:35 +10:00
Denis Rouzaud
7265d9de96 fix sip 2020-09-15 12:23:30 +02:00
Juergen E. Fischer
44b4a75a0a fix #38720 2020-09-15 09:51:00 +02:00
Denis Rouzaud
fb7f7ba697 follow up renaming enum keys 2020-09-15 09:36:15 +02:00
Nyall Dawson
bd9c8a7621 Show warnings generated during mapbox gl style conversion after loading vector tiles with default styles 2020-09-15 14:06:21 +07:00
Nyall Dawson
01f942fd63 More helpful warnings generated during style conversion 2020-09-15 14:06:21 +07:00
Denis Rouzaud
1660d726a4 add deprecation details 2020-09-15 08:45:28 +02:00
Denis Rouzaud
9cf85dd1fe
better enum names, better dox
Co-authored-by: Nyall Dawson <nyall.dawson@gmail.com>
2020-09-15 08:42:19 +02:00
David Marteau
518e48c12f Fix python serialization for geometry processing parameter
Fix regexp for referenced geometry parsing
    Fix suggested doc strings
2020-09-15 07:39:10 +10:00
David Marteau
fc67ddc970 Change CRS serialization/deserialization for geometry parameter value 2020-09-15 07:39:10 +10:00
David Marteau
6262965df9 Register meta type for geometry processing parameter
Fix QgsProcessingParameterGeometry argument list
2020-09-15 07:39:10 +10:00
David Marteau
aa0a8ab628 Add geometry filter for processing geometry parameter 2020-09-15 07:39:10 +10:00
David Marteau
f2b8e6970b Support point and rectangle as geometry parameter values 2020-09-15 07:39:10 +10:00
David Marteau
4eb779798e Implement QgsReferencedGeometry 2020-09-15 07:39:10 +10:00
David Marteau
4eb931e890 Add geometry processing parameter 2020-09-15 07:39:10 +10:00
Even Rouault
c6fe79b60d [Processing] GdalUtils: fix quoting of arguments with '&' (fixes #38674) 2020-09-15 07:38:01 +10:00
Matthias Kuhn
d41e8e1d40 Rename count to __count 2020-09-15 06:48:37 +10:00
Matthias Kuhn
d2c60cca30 Add count to "tradition run in place execution" 2020-09-15 06:48:37 +10:00
Matthias Kuhn
656c533fa2 Show number of features affected by in place editing
Fixes #38680
2020-09-15 06:48:37 +10:00
vcloarec
5729fce778 fix release version 2020-09-15 06:47:58 +10:00
Nyall Dawson
789eccb572 [vectortiles] Optimise rendering of complex vector tiles
Instead of ALWAYS converting all features in a tile to QGIS representations,
now we intelligently skip over any layers which aren't required for
rendering or labeling (e.g. because the current renderer/labeling
configuration is disabling these layers or doesn't have a rule for
them).

This improves rendering speed with sources like the OS ZoomStack tiles,
which have a LOT of detail even at small map scales (e.g. building
data is present in very zoomed out tiles!!).
2020-09-15 05:05:57 +10:00
Denis Rouzaud
b923c4a19f add deprecated dox 2020-09-14 13:25:11 +02:00
Denis Rouzaud
de4a293ec5 use a readable string, fix flag keys, fix opening old project file 2020-09-14 13:25:08 +02:00
Denis Rouzaud
d273f78c23 use a checkable combo box for fields configuration flags in source fields properties tab 2020-09-14 13:24:05 +02:00
Denis Rouzaud
4fd940a352 use configuration flags to save WMS/WFS from vector layer 2020-09-14 13:24:05 +02:00
Denis Rouzaud
19d4b52f10 Add WMS/WFS to QgsField::ConfigurationFlag 2020-09-14 13:24:05 +02:00
Denis Rouzaud
b516a49b9e create helper method QgsCheckableComboBox::addItemWithCheckState 2020-09-14 13:24:05 +02:00
nirvn
1de8d01e30 Support hidpi sprites when converting mapboxgl styles 2020-09-14 16:47:09 +10:00
Henry Walshaw
1312cfe599 Add square brackets around the saved expression
When saving a raster expression the generated expression didn't contain square brackets around the letters used for band identifiers. Sticking with the NDVI example:

```
("NIR@1" - "Red@1") / ("NIR@1" + "Red@1")
```

becomes

```
(a - b) / (a + b)
```

Due to the way the expression is parsed these would not be interactie parameters for the user to set as the parameters requre square brackets around the layer tags. This change simply updates the string replacement to include the square brackets so you would get instead:

```
([a] - [b]) / ([a] + [b])
```
2020-09-14 15:58:38 +10:00