Add new Field Domain merge policy

This commit is contained in:
Juho Ervasti 2025-02-12 17:06:13 +02:00
parent d03746bd9f
commit b0a12f78aa
7 changed files with 20 additions and 0 deletions

View File

@ -6928,6 +6928,7 @@ Qgis.FieldDomainSplitPolicy.baseClass = Qgis
Qgis.FieldDomainMergePolicy.DefaultValue.__doc__ = "Use default field value" Qgis.FieldDomainMergePolicy.DefaultValue.__doc__ = "Use default field value"
Qgis.FieldDomainMergePolicy.Sum.__doc__ = "Sum of values" Qgis.FieldDomainMergePolicy.Sum.__doc__ = "Sum of values"
Qgis.FieldDomainMergePolicy.GeometryWeighted.__doc__ = "New values are computed as the weighted average of the source values" Qgis.FieldDomainMergePolicy.GeometryWeighted.__doc__ = "New values are computed as the weighted average of the source values"
Qgis.FieldDomainMergePolicy.UnsetField.__doc__ = "Clears the field value so that the data provider backend will populate using any backend triggers or similar logic \n.. versionadded:: 3.44"
Qgis.FieldDomainMergePolicy.__doc__ = """Merge policy for field domains. Qgis.FieldDomainMergePolicy.__doc__ = """Merge policy for field domains.
When a feature is built by merging multiple features, defines how the value of When a feature is built by merging multiple features, defines how the value of
@ -6938,6 +6939,10 @@ attributes following the domain are computed.
* ``DefaultValue``: Use default field value * ``DefaultValue``: Use default field value
* ``Sum``: Sum of values * ``Sum``: Sum of values
* ``GeometryWeighted``: New values are computed as the weighted average of the source values * ``GeometryWeighted``: New values are computed as the weighted average of the source values
* ``UnsetField``: Clears the field value so that the data provider backend will populate using any backend triggers or similar logic
.. versionadded:: 3.44
""" """
# -- # --

View File

@ -2112,6 +2112,7 @@ The development version
DefaultValue, DefaultValue,
Sum, Sum,
GeometryWeighted, GeometryWeighted,
UnsetField,
}; };
enum class FieldDuplicatePolicy /BaseType=IntEnum/ enum class FieldDuplicatePolicy /BaseType=IntEnum/

View File

@ -6862,6 +6862,7 @@ Qgis.FieldDomainSplitPolicy.baseClass = Qgis
Qgis.FieldDomainMergePolicy.DefaultValue.__doc__ = "Use default field value" Qgis.FieldDomainMergePolicy.DefaultValue.__doc__ = "Use default field value"
Qgis.FieldDomainMergePolicy.Sum.__doc__ = "Sum of values" Qgis.FieldDomainMergePolicy.Sum.__doc__ = "Sum of values"
Qgis.FieldDomainMergePolicy.GeometryWeighted.__doc__ = "New values are computed as the weighted average of the source values" Qgis.FieldDomainMergePolicy.GeometryWeighted.__doc__ = "New values are computed as the weighted average of the source values"
Qgis.FieldDomainMergePolicy.UnsetField.__doc__ = "Clears the field value so that the data provider backend will populate using any backend triggers or similar logic \n.. versionadded:: 3.44"
Qgis.FieldDomainMergePolicy.__doc__ = """Merge policy for field domains. Qgis.FieldDomainMergePolicy.__doc__ = """Merge policy for field domains.
When a feature is built by merging multiple features, defines how the value of When a feature is built by merging multiple features, defines how the value of
@ -6872,6 +6873,10 @@ attributes following the domain are computed.
* ``DefaultValue``: Use default field value * ``DefaultValue``: Use default field value
* ``Sum``: Sum of values * ``Sum``: Sum of values
* ``GeometryWeighted``: New values are computed as the weighted average of the source values * ``GeometryWeighted``: New values are computed as the weighted average of the source values
* ``UnsetField``: Clears the field value so that the data provider backend will populate using any backend triggers or similar logic
.. versionadded:: 3.44
""" """
# -- # --

View File

@ -2112,6 +2112,7 @@ The development version
DefaultValue, DefaultValue,
Sum, Sum,
GeometryWeighted, GeometryWeighted,
UnsetField,
}; };
enum class FieldDuplicatePolicy enum class FieldDuplicatePolicy

View File

@ -2244,6 +2244,9 @@ QString QgsFieldDomainDetailsWidget::htmlMetadata( QgsFieldDomain *domain, const
case Qgis::FieldDomainMergePolicy::GeometryWeighted: case Qgis::FieldDomainMergePolicy::GeometryWeighted:
metadata += tr( "Use geometry weighted value" ); metadata += tr( "Use geometry weighted value" );
break; break;
case Qgis::FieldDomainMergePolicy::UnsetField:
metadata += tr( "Unset field" );
break;
} }
metadata += QLatin1String( "</table>\n<br><br>" ); metadata += QLatin1String( "</table>\n<br><br>" );

View File

@ -3729,6 +3729,7 @@ class CORE_EXPORT Qgis
DefaultValue, //!< Use default field value DefaultValue, //!< Use default field value
Sum, //!< Sum of values Sum, //!< Sum of values
GeometryWeighted, //!< New values are computed as the weighted average of the source values GeometryWeighted, //!< New values are computed as the weighted average of the source values
UnsetField, //!< Clears the field value so that the data provider backend will populate using any backend triggers or similar logic \since QGIS 3.44
}; };
Q_ENUM( FieldDomainMergePolicy ) Q_ENUM( FieldDomainMergePolicy )

View File

@ -2298,6 +2298,10 @@ OGRFieldDomainH QgsOgrUtils::convertFieldDomain( const QgsFieldDomain *domain )
case Qgis::FieldDomainMergePolicy::Sum: case Qgis::FieldDomainMergePolicy::Sum:
OGR_FldDomain_SetMergePolicy( res, OFDMP_SUM ); OGR_FldDomain_SetMergePolicy( res, OFDMP_SUM );
break; break;
case Qgis::FieldDomainMergePolicy::UnsetField:
// not supported
break;
} }
switch ( domain->splitPolicy() ) switch ( domain->splitPolicy() )