9626 Commits

Author SHA1 Message Date
Alexander Bruy
0325cf0c30 [processing] add layer options flag enum
This enum can be used in the QgsProcessingUtils::mapLayerFromString()
and parameterAsPointCloudLayer() calls to control layer loading, e.g.
skipping index generation or not applying default style, etc.
2023-03-29 06:06:09 +10:00
Mathieu Pellerin
346abae549
Merge pull request #52329 from nirvn/sensors_framework_2
Sensor options panel within the project properties dialog
2023-03-28 15:34:21 +07:00
Nyall Dawson
107e206ccb Expand documentation 2023-03-27 20:58:08 +10:00
Nyall Dawson
95786c347d Add QgsTextRenderer method to render text along a line/curved path 2023-03-27 20:58:08 +10:00
Nyall Dawson
856f626722 [layouts] When legend filtering is enabled for multiple maps,
ensure that the visible layers for each map is correctly considered
when determining what symbols are overall visible

AKA make multiple map filtering work nicely alongside map themes
2023-03-26 20:21:56 +10:00
Nyall Dawson
030c4f9208 Deprecate confusing old legend filtering API 2023-03-26 20:21:56 +10:00
Nyall Dawson
1742934be5 Add more flexible/understandable api for setting layer tree legend filters
And update existing broken tests which are incorrectly showing
symbols which should not be visible in the legend
2023-03-26 20:21:56 +10:00
Mathieu Pellerin
99f8005d6b [sensors] Add a sensor model class 2023-03-26 11:21:19 +07:00
Mathieu Pellerin
d2b117a3c8 [sensors] Brand new sensors framework (manager, registry, sensor types) 2023-03-24 15:28:47 +07:00
Nyall Dawson
5bd4648a05 Update since 2023-03-24 11:11:46 +10:00
Nyall Dawson
d37c0b5ce3 Ensure custom field metadata properties can be set/accessed from Python 2023-03-24 11:11:46 +10:00
Nyall Dawson
a87db9c91c Add capacity for storing additional metadata/properties in QgsField
This adds the API framework for storing additional, semi-structured
properties inside QgsField objects. The intention is that strong
field-type specific properties can be stored.

Eg for a geometry field type coming from the postgres provider
the metadata can be used to store the associated CRS and WKB types
so that clients can be aware of the correct format required for
geometries stored in that field. Instead of cluttering the QgsField
API with specific getters/setters for properties like crs(), wkbType(),
etc which only apply for a certain field type, the metadata map
approach helps us keep the API nice and slim.

The API has been designed to follow the approach used by various
Qt objects (such as QTextFormat) where a preset set of keys
are exposed as an enum, but additional ones can be used for
custom property storage. This allows for a more structured
use of properties with conventions which apply across different
providers (as opposed to a free-form string key approach).

Refs #49380
2023-03-24 11:11:46 +10:00
Alexander Bruy
26e8b56abf add information algorithm 2023-03-22 16:04:01 +01:00
Nyall Dawson
fa22256717 Allow temporary folder location to be overridden through
QgsProcessingContext
2023-03-21 03:50:08 +10:00
Nyall Dawson
30598b9ad9 Pass QgsProcessingContext on to all processing functions which
generate temporary file names
2023-03-21 03:50:08 +10:00
Nyall Dawson
aadfbab40f Split vector tile classes into separate files 2023-03-21 03:49:39 +10:00
Nyall Dawson
8e526353f9 Move toggle comment handling to base QgsCodeEditor class 2023-03-20 16:06:24 +10:00
Nyall Dawson
3312bf1ad2 Move syntax checking capability to QgsCodeEditorPython 2023-03-20 16:06:24 +10:00
Nyall Dawson
069f1a647e Add language capabilities 2023-03-20 16:06:24 +10:00
Denis Rouzaud
d01d2af619 [settings] method to delete all items of a named list 2023-03-20 07:03:52 +10:00
Vincent Cloarec
f6d4ad36a3
fix mesh doc (#52279) 2023-03-17 03:05:42 +00:00
Mathieu Pellerin
75bf0f31a3 Better fix (faster rendering, works for PDF, better during progressive rendering) 2023-03-14 19:07:39 +07:00
Mathieu Pellerin
45f54b64c3
Merge pull request #52198 from nirvn/qgsziputils_imp
[api] Add a new QgsZipUtils's files() function and a unzip() parameter to skip consistency check
2023-03-14 14:07:10 +07:00
Nyall Dawson
b39c389cd9 Fix version numbers 2023-03-14 04:24:19 +10:00
Nyall Dawson
2f0060c5dc [layouts] Use a background thread to filter legend content by map
Avoids potentially massive UI hangs while working with layouts
with filtered legends.

Fixes #51233
Fixes #48326
Fixes #51455
Fixes #51452
2023-03-14 04:24:19 +10:00
Nyall Dawson
885c0b6136 Add a "refreshing" icon overlay for layout items which are
being redrawn/updated in the background

Gives immediate visual feedback to users that the current appearance
of those items are outdated and to wait while they update.
2023-03-14 04:24:19 +10:00
Nyall Dawson
bf11dc1777 Add layer tree signals for hit test started/completed, and methods
to determine whether a background hit test is in progress and
block while it completes
2023-03-14 04:24:19 +10:00
Mathieu Pellerin
4caeb63a4c [api] Add useful ZIP files listing function to QgsZipUtils 2023-03-13 16:36:06 +07:00
Mathieu Pellerin
6234731f10 [api] Add a new QgsZipUtils::unzip() parameter to skip consistency check 2023-03-13 15:15:49 +07:00
Nyall Dawson
4adc1c8278 Fix python build 2023-03-08 19:28:18 +10:00
Nyall Dawson
1938f6e255 Add flag to QgsLayerTreeModel to execute legend hit tests in
a background task
2023-03-08 19:28:18 +10:00
Nyall Dawson
f261855490 Create QgsMapHitTestTask, a QgsTask which executes a legend hit
test in a background thread in a thread-safe way

These legend hit tests can be very expensive to calculate, so
background execution is desirable...
2023-03-08 19:28:18 +10:00
Nyall Dawson
11f5a6947a Refactor QgsMapHitTest to permit thread-safe execution 2023-03-08 19:28:18 +10:00
Nyall Dawson
3c1e4fe723 [processing] Allow filter expressions to be set for vector sources
This change adds a new "feature filter" option alongside the
existing feature limit and invalid geometry handling options
available for all vector inputs to processing layers.

It allows users to enter an expression to subset the layer dynamically
when running the tool, avoiding the need for separate steps to
set layer filters or create layer subsets.

Sponsored by City of Canning
2023-03-08 16:58:34 +10:00
Nyall Dawson
bb57ef8d1a Doc fixes 2023-03-08 14:53:12 +10:00
Nyall Dawson
781b869a7e [feature][layouts] Support filtering layout legends by multiple linked map items
Instead of limiting layout legend filtering to a single linked map,
this change permits legends to be filtered instead by multiple
linked maps. It is designed to accomodate the use case where
a layout has multiple maps, potentially at different scales
and showing different extents, and a single legend is required
which includes all symbols visible across all the maps.

Sponsored by City of Canning
2023-03-08 14:53:12 +10:00
Nyall Dawson
efbfaf8046 Add QgsFeatureRenderer::legendKeys method to retrieve all legend
keys for the renderer
2023-03-08 14:27:51 +10:00
Nyall Dawson
b170c0f97e Nicer documentation 2023-03-08 14:27:51 +10:00
Nyall Dawson
06b3678a57 Don't allow users to set maximum thread count for rendering to 1
(This setting can sometimes unwantedly occur when using the same
profile across sessions of newer to very old QGIS versions)

The option is a misleading, as it's actually setting the global
thread limit for the entire QGIS application. If we allow this
to be set to a limit of 1 thread, then deadlocks
occur from the QImage internals in unpredictable ways.
2023-03-03 16:48:34 +10:00
Nyall Dawson
edfb9764cb Add API to set field split policy for vector layers 2023-03-01 19:30:39 +10:00
Nyall Dawson
34ed6caaac Add split policy to QgsField 2023-03-01 19:30:39 +10:00
Nyall Dawson
141b9efe44 Expand available values for Qgis::FieldDomainSplitPolicy 2023-03-01 19:30:39 +10:00
Nyall Dawson
723ad914d3
Fix some warnings 2023-02-28 09:01:54 +10:00
Julien Cabieces
8f32f07433 Treat review comments
Co-authored-by: Nyall Dawson <nyall.dawson@gmail.com>
2023-02-27 09:24:40 +01:00
Julien Cabieces
7a2a252d0d fix doc and typos 2023-02-27 09:24:40 +01:00
Julien Cabieces
f8c1c16ec7 fix duplicate layer 2023-02-27 09:24:40 +01:00
Julien Cabieces
b7d800aed2 fix api doc 2023-02-27 09:24:40 +01:00
Julien Cabieces
906757349e fix text renderer tests 2023-02-27 09:24:40 +01:00
Julien Cabieces
b0cce7ac54 don't deprecate a class, sip fails 2023-02-27 09:24:40 +01:00
Julien Cabieces
11e88ad425 fix documentation 2023-02-27 09:24:40 +01:00