21249 Commits

Author SHA1 Message Date
Kanahiro
e3a89bf794 lint 2022-08-14 00:29:29 +09:00
Kanahiro
3690e65048 specify Error in try-except 2022-08-14 00:27:05 +09:00
Kanahiro
4a2a5b2904 Merge branch 'fix/grass7-unicodeerror' of github.com:Kanahiro/QGIS into fix/grass7-unicodeerror 2022-08-14 00:26:16 +09:00
Kanahiro
d442230bd0 wrap stdout decode in saga, improve docstr 2022-08-14 00:25:38 +09:00
Loïc Bartoletti
3908efb4ba
Use expect UnicodeDecodeError
Avoid too broad exception

Co-authored-by: nicogodet <39594821+nicogodet@users.noreply.github.com>
2022-07-20 07:38:53 +02:00
Kanahiro
b417842d38 change replace char to empty 2022-07-20 13:03:57 +09:00
Kanahiro
563767971e lint 2022-07-03 14:29:15 +09:00
Kanahiro
a632932b09 wrap decode stdout with try-except 2022-07-03 14:17:55 +09:00
Kanahiro
2b2f0eb642 wrap decode stdout with try-except 2022-07-03 13:59:25 +09:00
Harrissou Sant-anna
8761480128 Add missing class reference 2022-07-02 09:58:37 +10:00
Harrissou Sant-anna
7717f39d48 Update and cleanup of geometry_checker dox 2022-07-02 09:58:37 +10:00
Thomas Stocker
a3a34e0de0
Enable Journal Wal, increase Timeout use only sqlite transaction (#49090)
Fixes Multithreading issues with Mbtile Creation on slow disks and or Machines with a lot of threads.

Fixes #47738
2022-06-22 09:50:56 +10:00
Nyall Dawson
54a979c600 Handle stops in text-field when converting mapbox styles 2022-06-21 11:10:55 +10:00
Nyall Dawson
864fee0172 Try to take stored font filename from response headers 2022-06-20 13:01:55 +10:00
Nyall Dawson
75355386c2 Add helper methods to get filename from content disposition headers 2022-06-20 13:01:55 +10:00
Nyall Dawson
dae637a67c Defer font download handling until QgsApplication is fully initialized
and make opt-in for non-app clients

There's a tricky initialization balancing act happening here -- but
if we try to load the default style on a system missing the fonts
referenced in that style, then we risk trying to download those
fonts before the QgsNetworkAccessManager is ready.

So play it safe and defer all font download handling until the
QGIS app is fully launched.
2022-06-20 13:01:55 +10:00
Nyall Dawson
b9ff03473b Download missing fonts when parsing vector tile styles wherever possible
This is an alternative approach to solving #46588, where we avoid the
issues which arise from trying to render vector tile PBF fonts.

Refs #46588
2022-06-20 13:01:55 +10:00
Nyall Dawson
3214235580 Add method to remove a user font 2022-06-20 13:01:55 +10:00
Nyall Dawson
e1dba0dbe0 Allow for multiple user font directories, and add method to return
all installed user fonts
2022-06-20 13:01:55 +10:00
Nyall Dawson
852480c7bc Wrap up font download in a nice method which just requires a family name
And populate hardcoded list with a bunch of known fonts available
from Google Fonts
2022-06-20 13:01:55 +10:00
Nyall Dawson
4772f6c27e Add method to download and install a font 2022-06-20 13:01:55 +10:00
Nyall Dawson
0f4f5cd2cc Description for QgsNetworkContentFetcherTask can be customised 2022-06-20 13:01:55 +10:00
Nyall Dawson
4f2705e435 Make any TTF/OTF fonts stored in the QGIS user profile/fonts directory
available for use in QGIS

Allows for use of fonts which aren't installed system-wide in QGIS, e.g.
when the user does not have permission to install fonts on a system.
2022-06-20 13:01:55 +10:00
Nyall Dawson
d4ef3e3c3d Make sure QgsFontManager methods are thread safe 2022-06-20 13:01:55 +10:00
Nyall Dawson
607b140c30 Add method to process a font family name and apply any matching
replacements
2022-06-20 13:01:55 +10:00
Nyall Dawson
602edc11d9 Attach font manager to QgsApplication 2022-06-20 13:01:55 +10:00
Nyall Dawson
3d7310b65c Persist font replacements across sessions 2022-06-20 13:01:55 +10:00
Nyall Dawson
0091696272 Start on QgsFontManager class 2022-06-20 13:01:55 +10:00
Nyall Dawson
dbdacac777 [feature] Add temporal manager support for WMTS layers with TIME dimension
This enhancement exposes any WMTS "time" dimensions for use in the
temporal framework, including allowing these layers to be animated
and controlled via the temporal controller.

There's some complexity involved here, because the WMTS specification
does NOT dictate how a time dimension should be exposed by services.
So different WMTS services are all handling this in different ways,
and we need to try to be as tolerant as possible.

Specifically, WMTS dimension values are just free-form strings, so
I've encountered a range of datetime formats -- e.g. "2021", "20210203",
"2021-02-03", "2021-02-03T12:13:14Z", and even WMS(T) style time
period designations ("2021-01-03T12:13:14/2021-01-05T12:15:11/P10M")!
These different formats all need special handling in order to correctly
interpret them as a date time value, and to be able to re-encode
an arbitrary datetime value back to the format string required
by the service. It's highly likely that we'll encounter additional
format strings when this feature is rolled out, and we'll need to
handle each individually.

When we do detect a time dimension on a WMTS layer, we no longer
expose this in the same way as other non-time dimensions. The browser
panel does not show the dimension values, and adding the layer
via Data Source Manager no longer prompts the user to pick from
the available time values. Instead, these layers are indicated with
a new "time capable raster layer" icon, and are added to a project
WITHOUT the user picking a specific time value.

Just like a WMS(T) layer, when a time-dimension enabled WMTS layer
is added to the project, it will default to the "automatic" temporal
mode, meaning that the layer will follow the temporal controller's
current time range by default. A user can then opt to show a specific
static time value for the layer through the layer's Temporal properties
page, by unchecking "Dynamic Temporal Control" and picking a specific
available time range from the "Predefined date" option. (Basically,
the user interaction and experience with a WMTS time enabled layer
is identical to with a WMS(T) layer).

Fixes #48364
2022-06-18 10:22:48 +10:00
Andrea Giudiceandrea
2c807f918b Add tests for native:setzfromraster with offset 2022-06-18 05:44:28 +10:00
uclaros
6e0eb8d4ca fix qgsgeometryrubberband on rotated canvas 2022-06-17 10:41:04 +10:00
Nyall Dawson
221e63cdfa Add icon to QgsProviderMetada 2022-06-16 13:55:09 +10:00
Nyall Dawson
9d0cb90705 Make virtual layer source layer creation much more user friendly
Instead of just forcing the user to type a free-form source string,
add a "..." button which allows them to browse for the layer source
using the browser dialog. Makes it MUCH easier for users to add
gpkg/postgis/wfs/... layers as sources for virtual layers.
2022-06-16 13:55:09 +10:00
Nyall Dawson
c1dbc90d30 [db manager] Don't load preview layers into project
Fixes #47159
2022-06-16 13:54:55 +10:00
pathmapper
4344d083ec Make sipify_all.sh happy
This change was made when running sipify_all.sh .
2022-06-16 08:21:05 +10:00
Nyall Dawson
21479e0814 Add QgsProviderRegistry.providersForLayerType method to list all providers supporting a layer type 2022-06-15 15:04:05 +10:00
Nyall Dawson
fc9b6053cf Add QgsProviderMetadata::supportedLayerTypes() so that we can
query the layer types supported by a data provider
2022-06-15 15:04:05 +10:00
Nyall Dawson
ff145d38ff Add __repr__ for QgsLayoutTableColumn 2022-06-13 17:33:52 +10:00
Nyall Dawson
48071fa228 Alternative fix for #43744
Fixes #48965
2022-06-13 17:33:52 +10:00
Sandro Santilli
8c18fa28b6 Drop gpkg_metadata_reference_column_name_update trigger generated by GDAL < 2.4.0
Presence of this trigger results in QGIS dropping it whenever the file
is opened in read-write mode (as it happens with vector layer is
created from it)

See https://github.com/qgis/QGIS/issues/48937#issuecomment-1152726973
2022-06-11 01:35:14 +02:00
Nyall Dawson
0e28ab5148 Also expose data defined control over scalebar height and subdivision
height, right number of subdivisions
2022-06-09 19:04:45 +10:00
Nyall Dawson
1df43e05bd Use "minimum"/"maximum" to meet API conventions 2022-06-09 19:04:45 +10:00
Ethan Snyder
c14f9144f2 Made changes per review comments from Nyall. 2022-06-09 19:04:45 +10:00
Ethan Snyder
abcb631b3e Updated sip files for the layout scalebar and the layout object. 2022-06-09 19:04:45 +10:00
vcloarec
f898dcd0eb SIP, typo, cleaning and more tests 2022-06-09 01:55:48 -04:00
bdm-oslandia
9b0bb2ffb5 add tests and fix spellcheck (compatiblity by compatibility) 2022-06-09 10:05:15 +10:00
bdm-oslandia
60db820f19 Replace all use of 'referer' http header as single var by QgsHttpHeader class
* add wrappers in QgsHttpHeader to read from/write to QMap, QUrlQuery, DomElement
* add QgsHttpHeader in QgsDataSoureUri, QgsXyzConnection, QgsVectorTileProviderConnection::Data, QgsWmsAuthorization
* fix tests
2022-06-09 10:05:15 +10:00
bdm-oslandia
cb436fe3d6 Fixes for bad key names
* fix QgsHttpHeaders:
  * when key contains double //
  * clean old sub group before adding new key to avoid duplicate

* fix QgsHttpHeaderWidget:
  * QTableWidgetItem flags for value was not set
  * call to QTableWidget edit function fail
  * table was not cleaned properly when adding entries

* fix QgsHttpHeaders test
2022-06-09 10:05:15 +10:00
bdm-oslandia
ed0236782d Fix issue #48532
* add constructor without QgsSettings, using default
* add new const QgsHttpHeaders::KEY_REFERER
* add test for QgsOwsConnection
* QgsOwsConnection:
  * fix usage of "referer" by using QgsHttpHeaders
  * replace "qgis/" prefix by QgsSettings::Prefix::QGIS
2022-06-09 10:05:15 +10:00
Jean Felder
a72dcb33fd
qgs3dmapsettings: Store debug overlay enabled flag
This stores the debug overlay visibility flag (mIsDebugOverlayEnabled)
even if it cannot be used (it needs at least Qt version 5.15). Its
default value is set to false to prevent any issue if the debug
overlay cannot be enabled.
This parameter is transient: it is not saved in the project
parameters.

The next commit will allow to this change this setting with
Qgs3DMapConfigWidget.
2022-06-08 17:29:27 +02:00