From 141b9efe4434537671d91d2104fb7b46720c236d Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Wed, 1 Mar 2023 10:29:06 +1000 Subject: [PATCH] Expand available values for Qgis::FieldDomainSplitPolicy --- python/core/auto_additions/qgis.py | 3 ++- python/core/auto_generated/qgis.sip.in | 1 + src/app/browser/qgsinbuiltdataitemproviders.cpp | 3 +++ src/core/qgis.h | 1 + src/core/qgsogrutils.cpp | 7 ++++--- 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/python/core/auto_additions/qgis.py b/python/core/auto_additions/qgis.py index c550cdf989f..b2e3cc67f32 100644 --- a/python/core/auto_additions/qgis.py +++ b/python/core/auto_additions/qgis.py @@ -2276,7 +2276,8 @@ Qgis.CrsDefinitionFormat.baseClass = Qgis Qgis.FieldDomainSplitPolicy.DefaultValue.__doc__ = "Use default field value" Qgis.FieldDomainSplitPolicy.Duplicate.__doc__ = "Duplicate original value" Qgis.FieldDomainSplitPolicy.GeometryRatio.__doc__ = "New values are computed by the ratio of their area/length compared to the area/length of the original feature" -Qgis.FieldDomainSplitPolicy.__doc__ = 'Split policy for field domains.\n\nWhen a feature is split into multiple parts, defines how the value of attributes\nfollowing the domain are computed.\n\n.. versionadded:: 3.26\n\n' + '* ``DefaultValue``: ' + Qgis.FieldDomainSplitPolicy.DefaultValue.__doc__ + '\n' + '* ``Duplicate``: ' + Qgis.FieldDomainSplitPolicy.Duplicate.__doc__ + '\n' + '* ``GeometryRatio``: ' + Qgis.FieldDomainSplitPolicy.GeometryRatio.__doc__ +Qgis.FieldDomainSplitPolicy.UnsetField.__doc__ = "Clears the field value so that the data provider backend will populate using any backend triggers or similar logic (since QGIS 3.30)" +Qgis.FieldDomainSplitPolicy.__doc__ = 'Split policy for field domains.\n\nWhen a feature is split into multiple parts, defines how the value of attributes\nfollowing the domain are computed.\n\n.. versionadded:: 3.26\n\n' + '* ``DefaultValue``: ' + Qgis.FieldDomainSplitPolicy.DefaultValue.__doc__ + '\n' + '* ``Duplicate``: ' + Qgis.FieldDomainSplitPolicy.Duplicate.__doc__ + '\n' + '* ``GeometryRatio``: ' + Qgis.FieldDomainSplitPolicy.GeometryRatio.__doc__ + '\n' + '* ``UnsetField``: ' + Qgis.FieldDomainSplitPolicy.UnsetField.__doc__ # -- Qgis.FieldDomainSplitPolicy.baseClass = Qgis # monkey patching scoped based enum diff --git a/python/core/auto_generated/qgis.sip.in b/python/core/auto_generated/qgis.sip.in index 16fb981d09f..9b121dcec70 100644 --- a/python/core/auto_generated/qgis.sip.in +++ b/python/core/auto_generated/qgis.sip.in @@ -1354,6 +1354,7 @@ The development version DefaultValue, Duplicate, GeometryRatio, + UnsetField, }; enum class FieldDomainMergePolicy diff --git a/src/app/browser/qgsinbuiltdataitemproviders.cpp b/src/app/browser/qgsinbuiltdataitemproviders.cpp index 46f4e731665..ebc7ae5a9b8 100644 --- a/src/app/browser/qgsinbuiltdataitemproviders.cpp +++ b/src/app/browser/qgsinbuiltdataitemproviders.cpp @@ -2123,6 +2123,9 @@ QString QgsFieldDomainDetailsWidget::htmlMetadata( QgsFieldDomain *domain, const case Qgis::FieldDomainSplitPolicy::GeometryRatio: metadata += tr( "Use geometry ratio" ); break; + case Qgis::FieldDomainSplitPolicy::UnsetField: + metadata += tr( "Unset field" ); + break; } metadata += QLatin1String( "\n" ); diff --git a/src/core/qgis.h b/src/core/qgis.h index d75035291b7..5a7f28d6976 100644 --- a/src/core/qgis.h +++ b/src/core/qgis.h @@ -2274,6 +2274,7 @@ class CORE_EXPORT Qgis DefaultValue, //!< Use default field value Duplicate, //!< Duplicate original value GeometryRatio, //!< New values are computed by the ratio of their area/length compared to the area/length of the original feature + UnsetField, //!< Clears the field value so that the data provider backend will populate using any backend triggers or similar logic (since QGIS 3.30) }; Q_ENUM( FieldDomainSplitPolicy ) diff --git a/src/core/qgsogrutils.cpp b/src/core/qgsogrutils.cpp index dd3fe586def..36fd425c1d0 100644 --- a/src/core/qgsogrutils.cpp +++ b/src/core/qgsogrutils.cpp @@ -37,9 +37,6 @@ #include "qgsfielddomain.h" #include "qgsfontmanager.h" #include "qgsvariantutils.h" -#include "qgsweakrelation.h" -#include "qgsproviderregistry.h" -#include "qgsprovidermetadata.h" #include "qgsogrproviderutils.h" #include @@ -2243,6 +2240,10 @@ OGRFieldDomainH QgsOgrUtils::convertFieldDomain( const QgsFieldDomain *domain ) case Qgis::FieldDomainSplitPolicy::Duplicate: OGR_FldDomain_SetSplitPolicy( res, OFDSP_DUPLICATE ); break; + + case Qgis::FieldDomainSplitPolicy::UnsetField: + // not supported + break; } return res;