75723 Commits

Author SHA1 Message Date
Alessandro Pasotti
52dd15b764 Add test case for QgsAdvancedDigitizingDockWidget 2022-02-22 10:29:47 +01:00
Alessandro Pasotti
db10e7d4ec Advanced digitizing: be nice with non-dot locales
Fix #47465
2022-02-21 17:15:01 +01:00
Julien Cabieces
2d2cd13c58
Merge pull request #47392 from signedav/fix_relref_nomodal
Avoid modal dialogs in relation reference /  relation editor
2022-02-21 09:10:49 +01:00
Nyall Dawson
914dccbd5b Allow access to feature geometry in generator subsymbols via
geometry($currentfeature)

When used in a geometry generator subsymbol, the expression

    geometry($currentfeature)

should refer to the original feature's geometry, not the geometry
generated by the generator symbol (which is accessible through
$geometry)

Fixes #46455
2022-02-21 13:04:07 +10:00
Nyall Dawson
84f3b42861 The $geometry function should return the expression context's geometry
IF it has been explicitly set, not the context's feature's geometry

Refs #46455
2022-02-21 13:04:07 +10:00
Nyall Dawson
11a8d40a86 Allow geometries to be set separate to features in expression contexts
Refs #46455 -- we need a way to separate these too, as we don't always
want $geometry to refer to a feature's geometry
2022-02-21 13:04:07 +10:00
nirvn
a8eaf46995 Apply same group<->ELSE behavior to the {3D,labeling} ruling based renderer 2022-02-21 11:19:58 +10:00
nirvn
002cfb0375 Add test case covering fix 2022-02-21 11:19:58 +10:00
Nyall Dawson
7a27ff6dc6 Fix disabled children in a rule without a symbol incorrectly result in features rendered by parent level ELSE rule 2022-02-21 11:19:58 +10:00
Sandro Santilli
affa44e41e Use read-only connection when writing is not needed 2022-02-21 09:13:20 +10:00
nirvn
4324a2a8b5 [auxiliary storage] Avoid needless spatialite database connection 2022-02-21 09:08:22 +10:00
Alessandro Pasotti
2f9dd9a66f Fix NULL HTML edit widget
Fix #47363
2022-02-21 08:38:36 +10:00
Nyall Dawson
e73f5bccac Fix test 2022-02-20 06:48:03 +10:00
Nyall Dawson
37b56f376d Fix dox 2022-02-20 06:48:03 +10:00
Nyall Dawson
6c1ca4d2fd Minor tweaks 2022-02-20 06:48:03 +10:00
Nyall Dawson
d06fb3dd11 [feature] Allow creation of new field domains through right click
menu on gpkg items in browser

Allows users to create new range, coded value or glob field domains
2022-02-20 06:48:03 +10:00
Nyall Dawson
dfac7df6fa Fix error retrieval 2022-02-20 06:48:03 +10:00
Nyall Dawson
118b3d32c1 Create QgsFieldDomainDialog dialog for configuring a field domain 2022-02-20 06:48:03 +10:00
Nyall Dawson
9c4bcf0092 Add widgets for creation of field domains 2022-02-20 06:48:03 +10:00
Nyall Dawson
37de21e506 Fix build on older gdal 2022-02-20 06:48:03 +10:00
Nyall Dawson
a6ec4acf21 Fix documentation warning 2022-02-20 06:48:03 +10:00
Nyall Dawson
a06fcde895 Add action to unset an existing field domain 2022-02-20 06:48:03 +10:00
Nyall Dawson
c264eb50f5 Clarify removal 2022-02-20 06:48:03 +10:00
Nyall Dawson
7273b4d2d7 Fix state of browser properties splitter section is not correctly
saved/restored
2022-02-20 06:48:03 +10:00
Nyall Dawson
6e350be9c3 Refresh fields item when a field has a domain set for it 2022-02-20 06:48:03 +10:00
Nyall Dawson
3332b27edd QgsFieldItem is only equal when the QgsField is also equal
Otherwise the field item will not be updated when the gpkg parent
item is refreshed and the field definition has changed (e.g.
the field type)
2022-02-20 06:48:03 +10:00
Nyall Dawson
51889b2248 When a gpkg item is refreshed in the browser, also refresh
the fields and field domains children

Otherwise the fields we show will not be correctly updated
when the gpkg item itself is refreshed
2022-02-20 06:48:03 +10:00
Nyall Dawson
f8bbcab8bb Add flag for browser data item to indicate that children of the item
must be refreshed whenever the item is refreshed

This behaviour is not automatic. The new flag allows items to opt-in,
so that their children WILL be automatically refreshed when the
item is refreshed.

Should be used sparingly only to avoid expensive work
2022-02-20 06:48:03 +10:00
Nyall Dawson
886df44376 [feature] Show "Set Field Domain" action when right clicking
a field in the browser for a Geopackage table

Allows users to set the field domain associated with that field
2022-02-20 06:48:03 +10:00
Nyall Dawson
063e059359 Add API to QgsAbstractDatabaseProviderConnection to create new field
domains on a database and set field domain associated with a field

And implement for OGR database provider connection class
2022-02-20 06:48:03 +10:00
Nyall Dawson
7db84789f8 Add method to convert QgsFieldDomain to OGR field domain 2022-02-20 06:48:03 +10:00
Nyall Dawson
44844bc736 Add method to convert QVariant to OGRField 2022-02-20 06:48:03 +10:00
Nyall Dawson
eaba5b3efd Add method to convert QVariant type to OGR field type 2022-02-20 06:48:03 +10:00
Nyall Dawson
4a7fb87af5 [feature] Add browser properties page for field and fields items
In particular, this allows users to easily see what field domain
may be attached to particular fields
2022-02-20 06:48:03 +10:00
Nyall Dawson
58f76f471b Rename widget to generic name 2022-02-20 06:48:03 +10:00
Nyall Dawson
cd94ee086f [ogr] Set domain name for fields where available 2022-02-20 06:48:03 +10:00
Nyall Dawson
e5a0d13ea4 Add domain name to QgsFieldConstraints 2022-02-20 06:48:03 +10:00
Nyall Dawson
f63bebd9aa Silence debug 2022-02-20 06:48:03 +10:00
Nyall Dawson
d956af800e Fix setting capabilities for Gpkg connection 2022-02-20 06:48:03 +10:00
Nyall Dawson
815b4c008e Update test 2022-02-20 06:48:03 +10:00
Nyall Dawson
22ecaaba27 Fix warnings 2022-02-20 06:48:03 +10:00
Nyall Dawson
d18672939a Split parts of QgsGeoPackageProviderConnection out to new base class
QgsOgrProviderConnection

This moves the generic parts of the GPKG connection class which rely
solely on OGR API out to a base class, leaving all the geopackage
specific functionality in the GPKG provider connection class.

It allows us to access a lot of the base level functionality from
this class for non-gpkg OGR supported database types, e.g.
spatialite, ESRI file geodatabases, MDB, etc.
2022-02-20 06:48:03 +10:00
Nyall Dawson
4261e6a577 Partial work on centralizing all QVariant::Type to display string
logic in a new QgsVariantUtils class

(I've likely missed a few places here, but it's a start!)
2022-02-20 06:48:03 +10:00
Nyall Dawson
c06cac2ad8 Test requires GDAL 3.3+ 2022-02-20 06:48:03 +10:00
Nyall Dawson
a7b6b41fad Add docs 2022-02-20 06:48:03 +10:00
Nyall Dawson
8cd9b80149 Add browser properties widget for showing the properties of an existing
field domain
2022-02-20 06:48:03 +10:00
Nyall Dawson
1729ab1bc5 Add python file 2022-02-20 06:48:03 +10:00
Nyall Dawson
f482c85069 Show a "Field Domains" item for geopackages under the browser,
which lists existing field domains in the database
2022-02-20 06:48:03 +10:00
Nyall Dawson
8036ea89ed Add API to retrieve field domain names and definitions to QgsAbstractDatabaseProviderConnection
and implement for GPKG connections
2022-02-20 06:48:03 +10:00
Nyall Dawson
3d9a74176e More repr 2022-02-20 06:48:03 +10:00