Give up on enum class

Python says no.
This commit is contained in:
Nyall Dawson 2020-04-02 16:35:59 +10:00
parent f13e91fb76
commit a7610c5682
5 changed files with 5 additions and 13 deletions

View File

@ -1,6 +0,0 @@
# The following has been generated automatically from src/core/processing/qgsprocessingparameters.h
# monkey patching scoped based enum
QgsProcessingFeatureSourceDefinition.Flag.FlagOverrideDefaultGeometryCheck.__doc__ = "If set, the default geometry check method (as dictated by QgsProcessingContext) will be overridden for this source"
QgsProcessingFeatureSourceDefinition.Flag.FlagCreateIndividualOutputPerInputFeature.__doc__ = "If set, every feature processed from this source will be placed into its own individually created output destination. Support for this flag depends on how an algorithm is executed."
QgsProcessingFeatureSourceDefinition.Flag.__doc__ = 'Flags which control source behavior.\n\n.. versionadded:: 3.14\n\n' + '* ``FlagOverrideDefaultGeometryCheck``: ' + QgsProcessingFeatureSourceDefinition.Flag.FlagOverrideDefaultGeometryCheck.__doc__ + '\n' + '* ``FlagCreateIndividualOutputPerInputFeature``: ' + QgsProcessingFeatureSourceDefinition.Flag.FlagCreateIndividualOutputPerInputFeature.__doc__
# --

View File

@ -25,7 +25,7 @@ Encapsulates settings relating to a feature source input to a processing algorit
%End
public:
enum class Flag
enum Flag
{
FlagOverrideDefaultGeometryCheck,
FlagCreateIndividualOutputPerInputFeature,

View File

@ -210,7 +210,7 @@ class AlgorithmDialog(QgsProcessingAlgorithmDialogBase):
self.iterateParam = None
for param in self.algorithm().parameterDefinitions():
if isinstance(parameters.get(param.name(), None), QgsProcessingFeatureSourceDefinition) and parameters[param.name()].flags & QgsProcessingFeatureSourceDefinition.Flag.FlagCreateIndividualOutputPerInputFeature.value:
if isinstance(parameters.get(param.name(), None), QgsProcessingFeatureSourceDefinition) and parameters[param.name()].flags & QgsProcessingFeatureSourceDefinition.FlagCreateIndividualOutputPerInputFeature:
self.iterateParam = param.name()
break

View File

@ -59,7 +59,7 @@ class CORE_EXPORT QgsProcessingFeatureSourceDefinition
* Flags which control source behavior.
* \since QGIS 3.14
*/
enum class Flag : int
enum Flag
{
FlagOverrideDefaultGeometryCheck = 1 << 0, //!< If set, the default geometry check method (as dictated by QgsProcessingContext) will be overridden for this source
FlagCreateIndividualOutputPerInputFeature = 1 << 1, //!< If set, every feature processed from this source will be placed into its own individually created output destination. Support for this flag depends on how an algorithm is executed.

View File

@ -253,7 +253,7 @@ class TestQgsXmlUtils(unittest.TestCase):
definition = QgsProcessingFeatureSourceDefinition(QgsProperty.fromValue('my source'))
definition.selectedFeaturesOnly = True
definition.featureLimit = 27
definition.flags = QgsProcessingFeatureSourceDefinition.Flag.FlagCreateIndividualOutputPerInputFeature
definition.flags = QgsProcessingFeatureSourceDefinition.FlagCreateIndividualOutputPerInputFeature
definition.geometryCheck = QgsFeatureRequest.GeometrySkipInvalid
elem = QgsXmlUtils.writeVariant(definition, doc)
@ -261,9 +261,7 @@ class TestQgsXmlUtils(unittest.TestCase):
self.assertEqual(c.source.staticValue(), 'my source')
self.assertTrue(c.selectedFeaturesOnly)
self.assertEqual(c.featureLimit, 27)
self.assertTrue(c.flags & QgsProcessingFeatureSourceDefinition.Flag.FlagCreateIndividualOutputPerInputFeature.value)
self.assertFalse(int(
c.flags & QgsProcessingFeatureSourceDefinition.Flag.FlagOverrideDefaultGeometryCheck.value))
self.assertEqual(c.flags, QgsProcessingFeatureSourceDefinition.FlagCreateIndividualOutputPerInputFeature)
self.assertEqual(c.geometryCheck, QgsFeatureRequest.GeometrySkipInvalid)
def test_output_layer_definition(self):