mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -05:00 
			
		
		
		
	Move simplification enums to Qgis, promote to enum class
This commit is contained in:
		
							parent
							
								
									e13412e49b
								
							
						
					
					
						commit
						43e7d18cd8
					
				@ -2545,6 +2545,44 @@ Qgis.TextCharacterVerticalAlignment.SubScript.__doc__ = "Characters are placed b
 | 
			
		||||
Qgis.TextCharacterVerticalAlignment.__doc__ = "Text vertical alignment for characters.\n\nThis enum controls vertical alignment of individual characters within a block\nof text.\n\n.. versionadded:: 3.30\n\n" + '* ``Normal``: ' + Qgis.TextCharacterVerticalAlignment.Normal.__doc__ + '\n' + '* ``SuperScript``: ' + Qgis.TextCharacterVerticalAlignment.SuperScript.__doc__ + '\n' + '* ``SubScript``: ' + Qgis.TextCharacterVerticalAlignment.SubScript.__doc__
 | 
			
		||||
# --
 | 
			
		||||
Qgis.TextCharacterVerticalAlignment.baseClass = Qgis
 | 
			
		||||
QgsVectorSimplifyMethod.SimplifyAlgorithm = Qgis.VectorSimplificationAlgorithm
 | 
			
		||||
# monkey patching scoped based enum
 | 
			
		||||
QgsVectorSimplifyMethod.Distance = Qgis.VectorSimplificationAlgorithm.Distance
 | 
			
		||||
QgsVectorSimplifyMethod.Distance.is_monkey_patched = True
 | 
			
		||||
QgsVectorSimplifyMethod.Distance.__doc__ = "The simplification uses the distance between points to remove duplicate points"
 | 
			
		||||
QgsVectorSimplifyMethod.SnapToGrid = Qgis.VectorSimplificationAlgorithm.SnapToGrid
 | 
			
		||||
QgsVectorSimplifyMethod.SnapToGrid.is_monkey_patched = True
 | 
			
		||||
QgsVectorSimplifyMethod.SnapToGrid.__doc__ = "The simplification uses a grid (similar to ST_SnapToGrid) to remove duplicate points"
 | 
			
		||||
QgsVectorSimplifyMethod.Visvalingam = Qgis.VectorSimplificationAlgorithm.Visvalingam
 | 
			
		||||
QgsVectorSimplifyMethod.Visvalingam.is_monkey_patched = True
 | 
			
		||||
QgsVectorSimplifyMethod.Visvalingam.__doc__ = "The simplification gives each point in a line an importance weighting, so that least important points are removed first"
 | 
			
		||||
QgsVectorSimplifyMethod.SnappedToGridGlobal = Qgis.VectorSimplificationAlgorithm.SnappedToGridGlobal
 | 
			
		||||
QgsVectorSimplifyMethod.SnappedToGridGlobal.is_monkey_patched = True
 | 
			
		||||
QgsVectorSimplifyMethod.SnappedToGridGlobal.__doc__ = "Snap to a global grid based on the tolerance. Good for consistent results for incoming vertices, regardless of their feature"
 | 
			
		||||
Qgis.VectorSimplificationAlgorithm.__doc__ = "Simplification algorithms for vector features.\n\n.. note::\n\n   Prior to QGIS 3.28 this was available as :py:class:`QgsVectorSimplifyMethod`.SimplifyAlgorithm\n\n.. versionadded:: 3.28\n\n" + '* ``Distance``: ' + Qgis.VectorSimplificationAlgorithm.Distance.__doc__ + '\n' + '* ``SnapToGrid``: ' + Qgis.VectorSimplificationAlgorithm.SnapToGrid.__doc__ + '\n' + '* ``Visvalingam``: ' + Qgis.VectorSimplificationAlgorithm.Visvalingam.__doc__ + '\n' + '* ``SnappedToGridGlobal``: ' + Qgis.VectorSimplificationAlgorithm.SnappedToGridGlobal.__doc__
 | 
			
		||||
# --
 | 
			
		||||
Qgis.VectorSimplificationAlgorithm.baseClass = Qgis
 | 
			
		||||
QgsVectorSimplifyMethod.SimplifyHint = Qgis.VectorRenderingSimplificationFlag
 | 
			
		||||
# monkey patching scoped based enum
 | 
			
		||||
QgsVectorSimplifyMethod.NoSimplification = Qgis.VectorRenderingSimplificationFlag.NoSimplification
 | 
			
		||||
QgsVectorSimplifyMethod.NoSimplification.is_monkey_patched = True
 | 
			
		||||
QgsVectorSimplifyMethod.NoSimplification.__doc__ = "No simplification can be applied"
 | 
			
		||||
QgsVectorSimplifyMethod.GeometrySimplification = Qgis.VectorRenderingSimplificationFlag.GeometrySimplification
 | 
			
		||||
QgsVectorSimplifyMethod.GeometrySimplification.is_monkey_patched = True
 | 
			
		||||
QgsVectorSimplifyMethod.GeometrySimplification.__doc__ = "The geometries can be simplified using the current map2pixel context state"
 | 
			
		||||
QgsVectorSimplifyMethod.AntialiasingSimplification = Qgis.VectorRenderingSimplificationFlag.AntialiasingSimplification
 | 
			
		||||
QgsVectorSimplifyMethod.AntialiasingSimplification.is_monkey_patched = True
 | 
			
		||||
QgsVectorSimplifyMethod.AntialiasingSimplification.__doc__ = "The geometries can be rendered with 'AntiAliasing' disabled because of it is '1-pixel size'"
 | 
			
		||||
QgsVectorSimplifyMethod.FullSimplification = Qgis.VectorRenderingSimplificationFlag.FullSimplification
 | 
			
		||||
QgsVectorSimplifyMethod.FullSimplification.is_monkey_patched = True
 | 
			
		||||
QgsVectorSimplifyMethod.FullSimplification.__doc__ = "All simplification hints can be applied ( Geometry + AA-disabling )"
 | 
			
		||||
Qgis.VectorRenderingSimplificationFlag.__doc__ = "Simplification flags for vector feature rendering.\n\n.. note::\n\n   Prior to QGIS 3.36 this was available as :py:class:`QgsVectorSimplifyMethod`.SimplifyHint\n\n.. versionadded:: 3.36\n\n" + '* ``NoSimplification``: ' + Qgis.VectorRenderingSimplificationFlag.NoSimplification.__doc__ + '\n' + '* ``GeometrySimplification``: ' + Qgis.VectorRenderingSimplificationFlag.GeometrySimplification.__doc__ + '\n' + '* ``AntialiasingSimplification``: ' + Qgis.VectorRenderingSimplificationFlag.AntialiasingSimplification.__doc__ + '\n' + '* ``FullSimplification``: ' + Qgis.VectorRenderingSimplificationFlag.FullSimplification.__doc__
 | 
			
		||||
# --
 | 
			
		||||
Qgis.VectorRenderingSimplificationFlag.baseClass = Qgis
 | 
			
		||||
Qgis.VectorRenderingSimplificationFlags = lambda flags=0: Qgis.VectorRenderingSimplificationFlag(flags)
 | 
			
		||||
QgsVectorSimplifyMethod.SimplifyHints = Qgis.VectorRenderingSimplificationFlags
 | 
			
		||||
Qgis.VectorRenderingSimplificationFlags.baseClass = Qgis
 | 
			
		||||
VectorRenderingSimplificationFlags = Qgis  # dirty hack since SIP seems to introduce the flags in module
 | 
			
		||||
# monkey patching scoped based enum
 | 
			
		||||
Qgis.RenderSubcomponentProperty.Generic.__doc__ = "Generic subcomponent property"
 | 
			
		||||
Qgis.RenderSubcomponentProperty.ShadowOffset.__doc__ = "Shadow offset"
 | 
			
		||||
@ -3683,7 +3721,7 @@ Qgis.LayerTreeFilterFlags.baseClass = Qgis
 | 
			
		||||
LayerTreeFilterFlags = Qgis  # dirty hack since SIP seems to introduce the flags in module
 | 
			
		||||
# monkey patching scoped based enum
 | 
			
		||||
Qgis.LegendJsonRenderFlag.ShowRuleDetails.__doc__ = "If set, the rule expression of a rule based renderer legend item will be added to the JSON"
 | 
			
		||||
Qgis.LegendJsonRenderFlag.__doc__ = "Legend JSON export flags.\n\nFlags to control JSON attributes when exporting a legend in JSON format.\n\n.. versionadded:: 3.36\n\n" + '* ``ShowRuleDetails``: ' + Qgis.LegendJsonRenderFlag.ShowRuleDetails.__doc__
 | 
			
		||||
Qgis.LegendJsonRenderFlag.__doc__ = "Legend JSON export flags.\n\nFlags to co\nQ_DECLARE_OPERATORS_FOR_FLAGS( :py:class:`QgsVectorSimplifyMethod`.SimplifyHints )ntrol JSON attributes when exporting a legend in JSON format.\n\n.. versionadded:: 3.36\n\n" + '* ``ShowRuleDetails``: ' + Qgis.LegendJsonRenderFlag.ShowRuleDetails.__doc__
 | 
			
		||||
# --
 | 
			
		||||
Qgis.LegendJsonRenderFlag.baseClass = Qgis
 | 
			
		||||
Qgis.LegendJsonRenderFlags = lambda flags=0: Qgis.LegendJsonRenderFlag(flags)
 | 
			
		||||
 | 
			
		||||
@ -1,24 +0,0 @@
 | 
			
		||||
# The following has been generated automatically from src/core/qgsvectorsimplifymethod.h
 | 
			
		||||
QgsVectorSimplifyMethod.NoSimplification = QgsVectorSimplifyMethod.SimplifyHint.NoSimplification
 | 
			
		||||
QgsVectorSimplifyMethod.GeometrySimplification = QgsVectorSimplifyMethod.SimplifyHint.GeometrySimplification
 | 
			
		||||
QgsVectorSimplifyMethod.AntialiasingSimplification = QgsVectorSimplifyMethod.SimplifyHint.AntialiasingSimplification
 | 
			
		||||
QgsVectorSimplifyMethod.FullSimplification = QgsVectorSimplifyMethod.SimplifyHint.FullSimplification
 | 
			
		||||
QgsVectorSimplifyMethod.SimplifyHint.baseClass = QgsVectorSimplifyMethod
 | 
			
		||||
QgsVectorSimplifyMethod.SimplifyHints = lambda flags=0: QgsVectorSimplifyMethod.SimplifyHint(flags)
 | 
			
		||||
QgsVectorSimplifyMethod.SimplifyHints.baseClass = QgsVectorSimplifyMethod
 | 
			
		||||
SimplifyHints = QgsVectorSimplifyMethod  # dirty hack since SIP seems to introduce the flags in module
 | 
			
		||||
QgsVectorSimplifyMethod.Distance = QgsVectorSimplifyMethod.SimplifyAlgorithm.Distance
 | 
			
		||||
QgsVectorSimplifyMethod.SnapToGrid = QgsVectorSimplifyMethod.SimplifyAlgorithm.SnapToGrid
 | 
			
		||||
QgsVectorSimplifyMethod.Visvalingam = QgsVectorSimplifyMethod.SimplifyAlgorithm.Visvalingam
 | 
			
		||||
QgsVectorSimplifyMethod.SnappedToGridGlobal = QgsVectorSimplifyMethod.SimplifyAlgorithm.SnappedToGridGlobal
 | 
			
		||||
QgsVectorSimplifyMethod.SimplifyAlgorithm.baseClass = QgsVectorSimplifyMethod
 | 
			
		||||
from enum import Enum
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _force_int(v): return int(v.value) if isinstance(v, Enum) else v
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
QgsVectorSimplifyMethod.SimplifyHint.__bool__ = lambda flag: bool(_force_int(flag))
 | 
			
		||||
QgsVectorSimplifyMethod.SimplifyHint.__eq__ = lambda flag1, flag2: _force_int(flag1) == _force_int(flag2)
 | 
			
		||||
QgsVectorSimplifyMethod.SimplifyHint.__and__ = lambda flag1, flag2: _force_int(flag1) & _force_int(flag2)
 | 
			
		||||
QgsVectorSimplifyMethod.SimplifyHint.__or__ = lambda flag1, flag2: QgsVectorSimplifyMethod.SimplifyHint(_force_int(flag1) | _force_int(flag2))
 | 
			
		||||
@ -1466,6 +1466,25 @@ The development version
 | 
			
		||||
      SubScript,
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    enum class VectorSimplificationAlgorithm /BaseType=IntEnum/
 | 
			
		||||
      {
 | 
			
		||||
      Distance,
 | 
			
		||||
      SnapToGrid,
 | 
			
		||||
      Visvalingam,
 | 
			
		||||
      SnappedToGridGlobal,
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    enum class VectorRenderingSimplificationFlag /BaseType=IntFlag/
 | 
			
		||||
    {
 | 
			
		||||
      NoSimplification,
 | 
			
		||||
      GeometrySimplification,
 | 
			
		||||
      AntialiasingSimplification,
 | 
			
		||||
      FullSimplification,
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    typedef QFlags<Qgis::VectorRenderingSimplificationFlag> VectorRenderingSimplificationFlags;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    enum class RenderSubcomponentProperty /BaseType=IntEnum/
 | 
			
		||||
    {
 | 
			
		||||
      Generic,
 | 
			
		||||
@ -3011,6 +3030,7 @@ QFlags<Qgis::ProcessingParameterFlag> operator|(Qgis::ProcessingParameterFlag f1
 | 
			
		||||
 | 
			
		||||
QFlags<Qgis::DataItemProviderCapability> operator|(Qgis::DataItemProviderCapability f1, QFlags<Qgis::DataItemProviderCapability> f2);
 | 
			
		||||
 | 
			
		||||
QFlags<Qgis::VectorRenderingSimplificationFlag> operator|(Qgis::VectorRenderingSimplificationFlag f1, QFlags<Qgis::VectorRenderingSimplificationFlag> f2);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -27,38 +27,20 @@ This class contains information how to simplify geometries fetched from a vector
 | 
			
		||||
construct a default object
 | 
			
		||||
%End
 | 
			
		||||
 | 
			
		||||
    enum SimplifyHint /BaseType=IntEnum/
 | 
			
		||||
    {
 | 
			
		||||
      NoSimplification,
 | 
			
		||||
      GeometrySimplification,
 | 
			
		||||
      AntialiasingSimplification,
 | 
			
		||||
      FullSimplification,
 | 
			
		||||
    };
 | 
			
		||||
    typedef QFlags<QgsVectorSimplifyMethod::SimplifyHint> SimplifyHints;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    void setSimplifyHints( SimplifyHints simplifyHints );
 | 
			
		||||
    void setSimplifyHints( Qgis::VectorRenderingSimplificationFlags simplifyHints );
 | 
			
		||||
%Docstring
 | 
			
		||||
Sets the simplification hints of the vector layer managed
 | 
			
		||||
%End
 | 
			
		||||
    SimplifyHints simplifyHints() const;
 | 
			
		||||
    Qgis::VectorRenderingSimplificationFlags simplifyHints() const;
 | 
			
		||||
%Docstring
 | 
			
		||||
Gets the simplification hints of the vector layer managed
 | 
			
		||||
%End
 | 
			
		||||
 | 
			
		||||
    enum SimplifyAlgorithm /BaseType=IntEnum/
 | 
			
		||||
    {
 | 
			
		||||
      Distance,
 | 
			
		||||
      SnapToGrid,
 | 
			
		||||
      Visvalingam,
 | 
			
		||||
      SnappedToGridGlobal,
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    void setSimplifyAlgorithm( SimplifyAlgorithm simplifyAlgorithm );
 | 
			
		||||
    void setSimplifyAlgorithm( Qgis::VectorSimplificationAlgorithm simplifyAlgorithm );
 | 
			
		||||
%Docstring
 | 
			
		||||
Sets the local simplification algorithm of the vector layer managed
 | 
			
		||||
%End
 | 
			
		||||
    SimplifyAlgorithm simplifyAlgorithm() const;
 | 
			
		||||
    Qgis::VectorSimplificationAlgorithm simplifyAlgorithm() const;
 | 
			
		||||
%Docstring
 | 
			
		||||
Gets the local simplification algorithm of the vector layer managed
 | 
			
		||||
%End
 | 
			
		||||
@ -101,8 +83,6 @@ Gets the maximum scale at which the layer should be simplified
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
QFlags<QgsVectorSimplifyMethod::SimplifyHint> operator|(QgsVectorSimplifyMethod::SimplifyHint f1, QFlags<QgsVectorSimplifyMethod::SimplifyHint> f2);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/************************************************************************
 | 
			
		||||
 * This file has been generated automatically from                      *
 | 
			
		||||
 | 
			
		||||
@ -2461,7 +2461,7 @@ Sets the simplification settings for fast rendering of features
 | 
			
		||||
Returns the simplification settings for fast rendering of features
 | 
			
		||||
%End
 | 
			
		||||
 | 
			
		||||
    bool simplifyDrawingCanbeApplied( const QgsRenderContext &renderContext, QgsVectorSimplifyMethod::SimplifyHint simplifyHint ) const;
 | 
			
		||||
    bool simplifyDrawingCanbeApplied( const QgsRenderContext &renderContext, Qgis::VectorRenderingSimplificationFlag simplifyHint ) const;
 | 
			
		||||
%Docstring
 | 
			
		||||
Returns whether the VectorLayer can apply the specified simplification hint
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -2500,6 +2500,43 @@ Qgis.TextCharacterVerticalAlignment.SubScript.__doc__ = "Characters are placed b
 | 
			
		||||
Qgis.TextCharacterVerticalAlignment.__doc__ = "Text vertical alignment for characters.\n\nThis enum controls vertical alignment of individual characters within a block\nof text.\n\n.. versionadded:: 3.30\n\n" + '* ``Normal``: ' + Qgis.TextCharacterVerticalAlignment.Normal.__doc__ + '\n' + '* ``SuperScript``: ' + Qgis.TextCharacterVerticalAlignment.SuperScript.__doc__ + '\n' + '* ``SubScript``: ' + Qgis.TextCharacterVerticalAlignment.SubScript.__doc__
 | 
			
		||||
# --
 | 
			
		||||
Qgis.TextCharacterVerticalAlignment.baseClass = Qgis
 | 
			
		||||
QgsVectorSimplifyMethod.SimplifyAlgorithm = Qgis.VectorSimplificationAlgorithm
 | 
			
		||||
# monkey patching scoped based enum
 | 
			
		||||
QgsVectorSimplifyMethod.Distance = Qgis.VectorSimplificationAlgorithm.Distance
 | 
			
		||||
QgsVectorSimplifyMethod.Distance.is_monkey_patched = True
 | 
			
		||||
QgsVectorSimplifyMethod.Distance.__doc__ = "The simplification uses the distance between points to remove duplicate points"
 | 
			
		||||
QgsVectorSimplifyMethod.SnapToGrid = Qgis.VectorSimplificationAlgorithm.SnapToGrid
 | 
			
		||||
QgsVectorSimplifyMethod.SnapToGrid.is_monkey_patched = True
 | 
			
		||||
QgsVectorSimplifyMethod.SnapToGrid.__doc__ = "The simplification uses a grid (similar to ST_SnapToGrid) to remove duplicate points"
 | 
			
		||||
QgsVectorSimplifyMethod.Visvalingam = Qgis.VectorSimplificationAlgorithm.Visvalingam
 | 
			
		||||
QgsVectorSimplifyMethod.Visvalingam.is_monkey_patched = True
 | 
			
		||||
QgsVectorSimplifyMethod.Visvalingam.__doc__ = "The simplification gives each point in a line an importance weighting, so that least important points are removed first"
 | 
			
		||||
QgsVectorSimplifyMethod.SnappedToGridGlobal = Qgis.VectorSimplificationAlgorithm.SnappedToGridGlobal
 | 
			
		||||
QgsVectorSimplifyMethod.SnappedToGridGlobal.is_monkey_patched = True
 | 
			
		||||
QgsVectorSimplifyMethod.SnappedToGridGlobal.__doc__ = "Snap to a global grid based on the tolerance. Good for consistent results for incoming vertices, regardless of their feature"
 | 
			
		||||
Qgis.VectorSimplificationAlgorithm.__doc__ = "Simplification algorithms for vector features.\n\n.. note::\n\n   Prior to QGIS 3.28 this was available as :py:class:`QgsVectorSimplifyMethod`.SimplifyAlgorithm\n\n.. versionadded:: 3.28\n\n" + '* ``Distance``: ' + Qgis.VectorSimplificationAlgorithm.Distance.__doc__ + '\n' + '* ``SnapToGrid``: ' + Qgis.VectorSimplificationAlgorithm.SnapToGrid.__doc__ + '\n' + '* ``Visvalingam``: ' + Qgis.VectorSimplificationAlgorithm.Visvalingam.__doc__ + '\n' + '* ``SnappedToGridGlobal``: ' + Qgis.VectorSimplificationAlgorithm.SnappedToGridGlobal.__doc__
 | 
			
		||||
# --
 | 
			
		||||
Qgis.VectorSimplificationAlgorithm.baseClass = Qgis
 | 
			
		||||
QgsVectorSimplifyMethod.SimplifyHint = Qgis.VectorRenderingSimplificationFlag
 | 
			
		||||
# monkey patching scoped based enum
 | 
			
		||||
QgsVectorSimplifyMethod.NoSimplification = Qgis.VectorRenderingSimplificationFlag.NoSimplification
 | 
			
		||||
QgsVectorSimplifyMethod.NoSimplification.is_monkey_patched = True
 | 
			
		||||
QgsVectorSimplifyMethod.NoSimplification.__doc__ = "No simplification can be applied"
 | 
			
		||||
QgsVectorSimplifyMethod.GeometrySimplification = Qgis.VectorRenderingSimplificationFlag.GeometrySimplification
 | 
			
		||||
QgsVectorSimplifyMethod.GeometrySimplification.is_monkey_patched = True
 | 
			
		||||
QgsVectorSimplifyMethod.GeometrySimplification.__doc__ = "The geometries can be simplified using the current map2pixel context state"
 | 
			
		||||
QgsVectorSimplifyMethod.AntialiasingSimplification = Qgis.VectorRenderingSimplificationFlag.AntialiasingSimplification
 | 
			
		||||
QgsVectorSimplifyMethod.AntialiasingSimplification.is_monkey_patched = True
 | 
			
		||||
QgsVectorSimplifyMethod.AntialiasingSimplification.__doc__ = "The geometries can be rendered with 'AntiAliasing' disabled because of it is '1-pixel size'"
 | 
			
		||||
QgsVectorSimplifyMethod.FullSimplification = Qgis.VectorRenderingSimplificationFlag.FullSimplification
 | 
			
		||||
QgsVectorSimplifyMethod.FullSimplification.is_monkey_patched = True
 | 
			
		||||
QgsVectorSimplifyMethod.FullSimplification.__doc__ = "All simplification hints can be applied ( Geometry + AA-disabling )"
 | 
			
		||||
Qgis.VectorRenderingSimplificationFlag.__doc__ = "Simplification flags for vector feature rendering.\n\n.. note::\n\n   Prior to QGIS 3.36 this was available as :py:class:`QgsVectorSimplifyMethod`.SimplifyHint\n\n.. versionadded:: 3.36\n\n" + '* ``NoSimplification``: ' + Qgis.VectorRenderingSimplificationFlag.NoSimplification.__doc__ + '\n' + '* ``GeometrySimplification``: ' + Qgis.VectorRenderingSimplificationFlag.GeometrySimplification.__doc__ + '\n' + '* ``AntialiasingSimplification``: ' + Qgis.VectorRenderingSimplificationFlag.AntialiasingSimplification.__doc__ + '\n' + '* ``FullSimplification``: ' + Qgis.VectorRenderingSimplificationFlag.FullSimplification.__doc__
 | 
			
		||||
# --
 | 
			
		||||
Qgis.VectorRenderingSimplificationFlag.baseClass = Qgis
 | 
			
		||||
QgsVectorSimplifyMethod.SimplifyHints = Qgis.VectorRenderingSimplificationFlags
 | 
			
		||||
Qgis.VectorRenderingSimplificationFlags.baseClass = Qgis
 | 
			
		||||
VectorRenderingSimplificationFlags = Qgis  # dirty hack since SIP seems to introduce the flags in module
 | 
			
		||||
# monkey patching scoped based enum
 | 
			
		||||
Qgis.RenderSubcomponentProperty.Generic.__doc__ = "Generic subcomponent property"
 | 
			
		||||
Qgis.RenderSubcomponentProperty.ShadowOffset.__doc__ = "Shadow offset"
 | 
			
		||||
@ -3620,7 +3657,7 @@ Qgis.LayerTreeFilterFlags.baseClass = Qgis
 | 
			
		||||
LayerTreeFilterFlags = Qgis  # dirty hack since SIP seems to introduce the flags in module
 | 
			
		||||
# monkey patching scoped based enum
 | 
			
		||||
Qgis.LegendJsonRenderFlag.ShowRuleDetails.__doc__ = "If set, the rule expression of a rule based renderer legend item will be added to the JSON"
 | 
			
		||||
Qgis.LegendJsonRenderFlag.__doc__ = "Legend JSON export flags.\n\nFlags to control JSON attributes when exporting a legend in JSON format.\n\n.. versionadded:: 3.36\n\n" + '* ``ShowRuleDetails``: ' + Qgis.LegendJsonRenderFlag.ShowRuleDetails.__doc__
 | 
			
		||||
Qgis.LegendJsonRenderFlag.__doc__ = "Legend JSON export flags.\n\nFlags to co\nQ_DECLARE_OPERATORS_FOR_FLAGS( :py:class:`QgsVectorSimplifyMethod`.SimplifyHints )ntrol JSON attributes when exporting a legend in JSON format.\n\n.. versionadded:: 3.36\n\n" + '* ``ShowRuleDetails``: ' + Qgis.LegendJsonRenderFlag.ShowRuleDetails.__doc__
 | 
			
		||||
# --
 | 
			
		||||
Qgis.LegendJsonRenderFlag.baseClass = Qgis
 | 
			
		||||
Qgis.LegendJsonRenderFlags.baseClass = Qgis
 | 
			
		||||
@ -4949,3 +4986,4 @@ Qgis.ProcessingFeatureSourceFlag.__or__ = lambda flag1, flag2: Qgis.ProcessingFe
 | 
			
		||||
Qgis.ProcessingParameterTypeFlag.__or__ = lambda flag1, flag2: Qgis.ProcessingParameterTypeFlags(_force_int(flag1) | _force_int(flag2))
 | 
			
		||||
Qgis.ProcessingParameterFlag.__or__ = lambda flag1, flag2: Qgis.ProcessingParameterFlags(_force_int(flag1) | _force_int(flag2))
 | 
			
		||||
Qgis.DataItemProviderCapability.__or__ = lambda flag1, flag2: Qgis.DataItemProviderCapabilities(_force_int(flag1) | _force_int(flag2))
 | 
			
		||||
Qgis.VectorRenderingSimplificationFlag.__or__ = lambda flag1, flag2: Qgis.VectorRenderingSimplificationFlags(_force_int(flag1) | _force_int(flag2))
 | 
			
		||||
 | 
			
		||||
@ -1,5 +0,0 @@
 | 
			
		||||
# The following has been generated automatically from src/core/qgsvectorsimplifymethod.h
 | 
			
		||||
QgsVectorSimplifyMethod.SimplifyHint.baseClass = QgsVectorSimplifyMethod
 | 
			
		||||
QgsVectorSimplifyMethod.SimplifyHints.baseClass = QgsVectorSimplifyMethod
 | 
			
		||||
SimplifyHints = QgsVectorSimplifyMethod  # dirty hack since SIP seems to introduce the flags in module
 | 
			
		||||
QgsVectorSimplifyMethod.SimplifyAlgorithm.baseClass = QgsVectorSimplifyMethod
 | 
			
		||||
@ -1466,6 +1466,25 @@ The development version
 | 
			
		||||
      SubScript,
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    enum class VectorSimplificationAlgorithm
 | 
			
		||||
      {
 | 
			
		||||
      Distance,
 | 
			
		||||
      SnapToGrid,
 | 
			
		||||
      Visvalingam,
 | 
			
		||||
      SnappedToGridGlobal,
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    enum class VectorRenderingSimplificationFlag
 | 
			
		||||
    {
 | 
			
		||||
      NoSimplification,
 | 
			
		||||
      GeometrySimplification,
 | 
			
		||||
      AntialiasingSimplification,
 | 
			
		||||
      FullSimplification,
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    typedef QFlags<Qgis::VectorRenderingSimplificationFlag> VectorRenderingSimplificationFlags;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    enum class RenderSubcomponentProperty
 | 
			
		||||
    {
 | 
			
		||||
      Generic,
 | 
			
		||||
@ -3011,6 +3030,7 @@ QFlags<Qgis::ProcessingParameterFlag> operator|(Qgis::ProcessingParameterFlag f1
 | 
			
		||||
 | 
			
		||||
QFlags<Qgis::DataItemProviderCapability> operator|(Qgis::DataItemProviderCapability f1, QFlags<Qgis::DataItemProviderCapability> f2);
 | 
			
		||||
 | 
			
		||||
QFlags<Qgis::VectorRenderingSimplificationFlag> operator|(Qgis::VectorRenderingSimplificationFlag f1, QFlags<Qgis::VectorRenderingSimplificationFlag> f2);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -27,38 +27,20 @@ This class contains information how to simplify geometries fetched from a vector
 | 
			
		||||
construct a default object
 | 
			
		||||
%End
 | 
			
		||||
 | 
			
		||||
    enum SimplifyHint
 | 
			
		||||
    {
 | 
			
		||||
      NoSimplification,
 | 
			
		||||
      GeometrySimplification,
 | 
			
		||||
      AntialiasingSimplification,
 | 
			
		||||
      FullSimplification,
 | 
			
		||||
    };
 | 
			
		||||
    typedef QFlags<QgsVectorSimplifyMethod::SimplifyHint> SimplifyHints;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    void setSimplifyHints( SimplifyHints simplifyHints );
 | 
			
		||||
    void setSimplifyHints( Qgis::VectorRenderingSimplificationFlags simplifyHints );
 | 
			
		||||
%Docstring
 | 
			
		||||
Sets the simplification hints of the vector layer managed
 | 
			
		||||
%End
 | 
			
		||||
    SimplifyHints simplifyHints() const;
 | 
			
		||||
    Qgis::VectorRenderingSimplificationFlags simplifyHints() const;
 | 
			
		||||
%Docstring
 | 
			
		||||
Gets the simplification hints of the vector layer managed
 | 
			
		||||
%End
 | 
			
		||||
 | 
			
		||||
    enum SimplifyAlgorithm
 | 
			
		||||
    {
 | 
			
		||||
      Distance,
 | 
			
		||||
      SnapToGrid,
 | 
			
		||||
      Visvalingam,
 | 
			
		||||
      SnappedToGridGlobal,
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    void setSimplifyAlgorithm( SimplifyAlgorithm simplifyAlgorithm );
 | 
			
		||||
    void setSimplifyAlgorithm( Qgis::VectorSimplificationAlgorithm simplifyAlgorithm );
 | 
			
		||||
%Docstring
 | 
			
		||||
Sets the local simplification algorithm of the vector layer managed
 | 
			
		||||
%End
 | 
			
		||||
    SimplifyAlgorithm simplifyAlgorithm() const;
 | 
			
		||||
    Qgis::VectorSimplificationAlgorithm simplifyAlgorithm() const;
 | 
			
		||||
%Docstring
 | 
			
		||||
Gets the local simplification algorithm of the vector layer managed
 | 
			
		||||
%End
 | 
			
		||||
@ -101,8 +83,6 @@ Gets the maximum scale at which the layer should be simplified
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
QFlags<QgsVectorSimplifyMethod::SimplifyHint> operator|(QgsVectorSimplifyMethod::SimplifyHint f1, QFlags<QgsVectorSimplifyMethod::SimplifyHint> f2);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/************************************************************************
 | 
			
		||||
 * This file has been generated automatically from                      *
 | 
			
		||||
 | 
			
		||||
@ -2461,7 +2461,7 @@ Sets the simplification settings for fast rendering of features
 | 
			
		||||
Returns the simplification settings for fast rendering of features
 | 
			
		||||
%End
 | 
			
		||||
 | 
			
		||||
    bool simplifyDrawingCanbeApplied( const QgsRenderContext &renderContext, QgsVectorSimplifyMethod::SimplifyHint simplifyHint ) const;
 | 
			
		||||
    bool simplifyDrawingCanbeApplied( const QgsRenderContext &renderContext, Qgis::VectorRenderingSimplificationFlag simplifyHint ) const;
 | 
			
		||||
%Docstring
 | 
			
		||||
Returns whether the VectorLayer can apply the specified simplification hint
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -17,7 +17,6 @@
 | 
			
		||||
#include "qgsvectorrenderingoptions.h"
 | 
			
		||||
#include "qgssettings.h"
 | 
			
		||||
#include "qgsapplication.h"
 | 
			
		||||
#include "qgsvectorsimplifymethod.h"
 | 
			
		||||
#include "qgsvectorlayer.h"
 | 
			
		||||
#include "qgssettingsentryenumflag.h"
 | 
			
		||||
 | 
			
		||||
@ -34,7 +33,7 @@ QgsVectorRenderingOptionsWidget::QgsVectorRenderingOptionsWidget( QWidget *paren
 | 
			
		||||
  QgsSettings settings;
 | 
			
		||||
 | 
			
		||||
  // Default simplify drawing configuration
 | 
			
		||||
  mSimplifyDrawingGroupBox->setChecked( settings.enumValue( QStringLiteral( "/qgis/simplifyDrawingHints" ), QgsVectorSimplifyMethod::GeometrySimplification ) != QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  mSimplifyDrawingGroupBox->setChecked( settings.enumValue( QStringLiteral( "/qgis/simplifyDrawingHints" ), Qgis::VectorRenderingSimplificationFlag::GeometrySimplification ) != Qgis::VectorRenderingSimplificationFlag::NoSimplification );
 | 
			
		||||
  mSimplifyDrawingSpinBox->setValue( QgsVectorLayer::settingsSimplifyDrawingTol->value() );
 | 
			
		||||
  mSimplifyDrawingAtProvider->setChecked( !QgsVectorLayer::settingsSimplifyLocal->value() );
 | 
			
		||||
 | 
			
		||||
@ -62,10 +61,10 @@ QgsVectorRenderingOptionsWidget::QgsVectorRenderingOptionsWidget( QWidget *paren
 | 
			
		||||
  mSimplifyMaximumScaleComboBox->setScale( QgsVectorLayer::settingsSimplifyMaxScale->value() );
 | 
			
		||||
 | 
			
		||||
  // Default local simplification algorithm
 | 
			
		||||
  mSimplifyAlgorithmComboBox->addItem( tr( "Distance" ), static_cast<int>( QgsVectorSimplifyMethod::Distance ) );
 | 
			
		||||
  mSimplifyAlgorithmComboBox->addItem( tr( "SnapToGrid" ), static_cast<int>( QgsVectorSimplifyMethod::SnapToGrid ) );
 | 
			
		||||
  mSimplifyAlgorithmComboBox->addItem( tr( "Visvalingam" ), static_cast<int>( QgsVectorSimplifyMethod::Visvalingam ) );
 | 
			
		||||
  mSimplifyAlgorithmComboBox->setCurrentIndex( mSimplifyAlgorithmComboBox->findData( QgsVectorLayer::settingsSimplifyAlgorithm->value() ) );
 | 
			
		||||
  mSimplifyAlgorithmComboBox->addItem( tr( "Distance" ), QVariant::fromValue( Qgis::VectorSimplificationAlgorithm::Distance ) );
 | 
			
		||||
  mSimplifyAlgorithmComboBox->addItem( tr( "SnapToGrid" ), QVariant::fromValue( Qgis::VectorSimplificationAlgorithm::SnapToGrid ) );
 | 
			
		||||
  mSimplifyAlgorithmComboBox->addItem( tr( "Visvalingam" ), QVariant::fromValue( Qgis::VectorSimplificationAlgorithm::Visvalingam ) );
 | 
			
		||||
  mSimplifyAlgorithmComboBox->setCurrentIndex( mSimplifyAlgorithmComboBox->findData( QVariant::fromValue( QgsVectorLayer::settingsSimplifyAlgorithm->value() ) ) );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QString QgsVectorRenderingOptionsWidget::helpKey() const
 | 
			
		||||
@ -78,14 +77,15 @@ void QgsVectorRenderingOptionsWidget::apply()
 | 
			
		||||
  QgsSettings settings;
 | 
			
		||||
 | 
			
		||||
  // Default simplify drawing configuration
 | 
			
		||||
  QgsVectorSimplifyMethod::SimplifyHints simplifyHints = QgsVectorSimplifyMethod::NoSimplification;
 | 
			
		||||
  Qgis::VectorRenderingSimplificationFlags simplifyHints = Qgis::VectorRenderingSimplificationFlag::NoSimplification;
 | 
			
		||||
  if ( mSimplifyDrawingGroupBox->isChecked() )
 | 
			
		||||
  {
 | 
			
		||||
    simplifyHints |= QgsVectorSimplifyMethod::GeometrySimplification;
 | 
			
		||||
    if ( mSimplifyDrawingSpinBox->value() > 1 ) simplifyHints |= QgsVectorSimplifyMethod::AntialiasingSimplification;
 | 
			
		||||
    simplifyHints |= Qgis::VectorRenderingSimplificationFlag::GeometrySimplification;
 | 
			
		||||
    if ( mSimplifyDrawingSpinBox->value() > 1 )
 | 
			
		||||
      simplifyHints |= Qgis::VectorRenderingSimplificationFlag::AntialiasingSimplification;
 | 
			
		||||
  }
 | 
			
		||||
  QgsVectorLayer::settingsSimplifyDrawingHints->setValue( simplifyHints );
 | 
			
		||||
  QgsVectorLayer::settingsSimplifyAlgorithm->setValue( mSimplifyAlgorithmComboBox->currentData().value<QgsVectorSimplifyMethod::SimplifyAlgorithm>() );
 | 
			
		||||
  QgsVectorLayer::settingsSimplifyAlgorithm->setValue( mSimplifyAlgorithmComboBox->currentData().value<Qgis::VectorSimplificationAlgorithm>() );
 | 
			
		||||
  QgsVectorLayer::settingsSimplifyDrawingTol->setValue( mSimplifyDrawingSpinBox->value() );
 | 
			
		||||
  QgsVectorLayer::settingsSimplifyLocal->setValue( !mSimplifyDrawingAtProvider->isChecked() );
 | 
			
		||||
  QgsVectorLayer::settingsSimplifyMaxScale->setValue( mSimplifyMaximumScaleComboBox->scale() );
 | 
			
		||||
 | 
			
		||||
@ -525,10 +525,10 @@ void QgsMapSaveDialog::onAccepted()
 | 
			
		||||
        if ( mSimplifyGeometriesCheckbox->isChecked() )
 | 
			
		||||
        {
 | 
			
		||||
          QgsVectorSimplifyMethod simplifyMethod;
 | 
			
		||||
          simplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::GeometrySimplification );
 | 
			
		||||
          simplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlag::GeometrySimplification );
 | 
			
		||||
          simplifyMethod.setForceLocalOptimization( true );
 | 
			
		||||
          // we use SnappedToGridGlobal, because it avoids gaps and slivers between previously adjacent polygons
 | 
			
		||||
          simplifyMethod.setSimplifyAlgorithm( QgsVectorSimplifyMethod::SnappedToGridGlobal );
 | 
			
		||||
          simplifyMethod.setSimplifyAlgorithm( Qgis::VectorSimplificationAlgorithm::SnappedToGridGlobal );
 | 
			
		||||
          simplifyMethod.setThreshold( 0.1f ); // (pixels). We are quite conservative here. This could possibly be bumped all the way up to 1. But let's play it safe.
 | 
			
		||||
          ms.setSimplifyMethod( simplifyMethod );
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -2241,7 +2241,7 @@ std::unique_ptr<QgsLabelFeature> QgsPalLayerSettings::registerFeatureWithDetails
 | 
			
		||||
  // simplify?
 | 
			
		||||
  const QgsVectorSimplifyMethod &simplifyMethod = context.vectorSimplifyMethod();
 | 
			
		||||
  std::unique_ptr<QgsGeometry> scopedClonedGeom;
 | 
			
		||||
  if ( simplifyMethod.simplifyHints() != QgsVectorSimplifyMethod::NoSimplification && simplifyMethod.forceLocalOptimization() )
 | 
			
		||||
  if ( simplifyMethod.simplifyHints() != Qgis::VectorRenderingSimplificationFlags( Qgis::VectorRenderingSimplificationFlag::NoSimplification ) && simplifyMethod.forceLocalOptimization() )
 | 
			
		||||
  {
 | 
			
		||||
    unsigned int simplifyHints = simplifyMethod.simplifyHints() | QgsMapToPixelSimplifier::SimplifyEnvelope;
 | 
			
		||||
    QgsMapToPixelSimplifier::SimplifyAlgorithm simplifyAlgorithm = static_cast< QgsMapToPixelSimplifier::SimplifyAlgorithm >( simplifyMethod.simplifyAlgorithm() );
 | 
			
		||||
@ -3060,7 +3060,7 @@ std::unique_ptr<QgsLabelFeature> QgsPalLayerSettings::registerObstacleFeature( c
 | 
			
		||||
  // simplify?
 | 
			
		||||
  const QgsVectorSimplifyMethod &simplifyMethod = context.vectorSimplifyMethod();
 | 
			
		||||
  std::unique_ptr<QgsGeometry> scopedClonedGeom;
 | 
			
		||||
  if ( simplifyMethod.simplifyHints() != QgsVectorSimplifyMethod::NoSimplification && simplifyMethod.forceLocalOptimization() )
 | 
			
		||||
  if ( simplifyMethod.simplifyHints() != Qgis::VectorRenderingSimplificationFlags( Qgis::VectorRenderingSimplificationFlag::NoSimplification ) && simplifyMethod.forceLocalOptimization() )
 | 
			
		||||
  {
 | 
			
		||||
    int simplifyHints = simplifyMethod.simplifyHints() | QgsMapToPixelSimplifier::SimplifyEnvelope;
 | 
			
		||||
    QgsMapToPixelSimplifier::SimplifyAlgorithm simplifyAlgorithm = static_cast< QgsMapToPixelSimplifier::SimplifyAlgorithm >( simplifyMethod.simplifyAlgorithm() );
 | 
			
		||||
 | 
			
		||||
@ -1900,10 +1900,10 @@ QgsLayoutExporter::ExportResult QgsLayoutExporter::handleLayeredExport( const QL
 | 
			
		||||
QgsVectorSimplifyMethod QgsLayoutExporter::createExportSimplifyMethod()
 | 
			
		||||
{
 | 
			
		||||
  QgsVectorSimplifyMethod simplifyMethod;
 | 
			
		||||
  simplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::GeometrySimplification );
 | 
			
		||||
  simplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlag::GeometrySimplification );
 | 
			
		||||
  simplifyMethod.setForceLocalOptimization( true );
 | 
			
		||||
  // we use SnappedToGridGlobal, because it avoids gaps and slivers between previously adjacent polygons
 | 
			
		||||
  simplifyMethod.setSimplifyAlgorithm( QgsVectorSimplifyMethod::SnappedToGridGlobal );
 | 
			
		||||
  simplifyMethod.setSimplifyAlgorithm( Qgis::VectorSimplificationAlgorithm::SnappedToGridGlobal );
 | 
			
		||||
  simplifyMethod.setThreshold( 0.1f ); // (pixels). We are quite conservative here. This could possibly be bumped all the way up to 1. But let's play it safe.
 | 
			
		||||
  return simplifyMethod;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1720,7 +1720,7 @@ QgsMapSettings QgsLayoutItemMap::mapSettings( const QgsRectangle &extent, QSizeF
 | 
			
		||||
  if ( !mLayout->renderContext().isPreviewRender() )
 | 
			
		||||
  {
 | 
			
		||||
    //if outputting layout, we disable optimisations like layer simplification by default, UNLESS the context specifically tells us to use them
 | 
			
		||||
    jobMapSettings.setFlag( Qgis::MapSettingsFlag::UseRenderingOptimization, mLayout->renderContext().simplifyMethod().simplifyHints() != QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
    jobMapSettings.setFlag( Qgis::MapSettingsFlag::UseRenderingOptimization, mLayout->renderContext().simplifyMethod().simplifyHints() != Qgis::VectorRenderingSimplificationFlags( Qgis::VectorRenderingSimplificationFlag::NoSimplification ) );
 | 
			
		||||
    jobMapSettings.setSimplifyMethod( mLayout->renderContext().simplifyMethod() );
 | 
			
		||||
    jobMapSettings.setRendererUsage( Qgis::RendererUsage::Export );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@ -22,7 +22,7 @@ QgsLayoutRenderContext::QgsLayoutRenderContext( QgsLayout *layout )
 | 
			
		||||
  , mFlags( FlagAntialiasing | FlagUseAdvancedEffects )
 | 
			
		||||
  , mLayout( layout )
 | 
			
		||||
{
 | 
			
		||||
  mSimplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  mSimplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlag::NoSimplification );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QgsLayoutRenderContext::setFlags( const QgsLayoutRenderContext::Flags flags )
 | 
			
		||||
 | 
			
		||||
@ -2531,6 +2531,48 @@ class CORE_EXPORT Qgis
 | 
			
		||||
    };
 | 
			
		||||
    Q_ENUM( TextCharacterVerticalAlignment )
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Simplification algorithms for vector features.
 | 
			
		||||
     *
 | 
			
		||||
     * \note Prior to QGIS 3.28 this was available as QgsVectorSimplifyMethod::SimplifyAlgorithm
 | 
			
		||||
     *
 | 
			
		||||
     * \since QGIS 3.28
 | 
			
		||||
     */
 | 
			
		||||
    enum class VectorSimplificationAlgorithm SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsVectorSimplifyMethod, SimplifyAlgorithm ) : int
 | 
			
		||||
      {
 | 
			
		||||
      Distance = 0, //!< The simplification uses the distance between points to remove duplicate points
 | 
			
		||||
      SnapToGrid = 1, //!< The simplification uses a grid (similar to ST_SnapToGrid) to remove duplicate points
 | 
			
		||||
      Visvalingam = 2, //!< The simplification gives each point in a line an importance weighting, so that least important points are removed first
 | 
			
		||||
      SnappedToGridGlobal = 3, //!< Snap to a global grid based on the tolerance. Good for consistent results for incoming vertices, regardless of their feature
 | 
			
		||||
    };
 | 
			
		||||
    Q_ENUM( VectorSimplificationAlgorithm )
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Simplification flags for vector feature rendering.
 | 
			
		||||
     *
 | 
			
		||||
     * \note Prior to QGIS 3.36 this was available as QgsVectorSimplifyMethod::SimplifyHint
 | 
			
		||||
     *
 | 
			
		||||
     * \since QGIS 3.36
 | 
			
		||||
     */
 | 
			
		||||
    enum class VectorRenderingSimplificationFlag SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsVectorSimplifyMethod, SimplifyHint ) : int SIP_ENUM_BASETYPE( IntFlag )
 | 
			
		||||
    {
 | 
			
		||||
      NoSimplification           = 0, //!< No simplification can be applied
 | 
			
		||||
      GeometrySimplification     = 1, //!< The geometries can be simplified using the current map2pixel context state
 | 
			
		||||
      AntialiasingSimplification = 2, //!< The geometries can be rendered with 'AntiAliasing' disabled because of it is '1-pixel size'
 | 
			
		||||
      FullSimplification         = 3, //!< All simplification hints can be applied ( Geometry + AA-disabling )
 | 
			
		||||
    };
 | 
			
		||||
    Q_ENUM( VectorRenderingSimplificationFlag )
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Simplification flags for vector feature rendering.
 | 
			
		||||
     *
 | 
			
		||||
     * \note Prior to QGIS 3.36 this was available as QgsVectorSimplifyMethod::SimplifyHints
 | 
			
		||||
     *
 | 
			
		||||
     * \since QGIS 3.36
 | 
			
		||||
     */
 | 
			
		||||
    Q_DECLARE_FLAGS( VectorRenderingSimplificationFlags, VectorRenderingSimplificationFlag ) SIP_MONKEYPATCH_FLAGS_UNNEST( QgsVectorSimplifyMethod, SimplifyHints )
 | 
			
		||||
    Q_FLAG( VectorRenderingSimplificationFlags )
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Rendering subcomponent properties.
 | 
			
		||||
     *
 | 
			
		||||
@ -3894,7 +3936,8 @@ class CORE_EXPORT Qgis
 | 
			
		||||
    /**
 | 
			
		||||
     * Legend JSON export flags.
 | 
			
		||||
     *
 | 
			
		||||
     * Flags to control JSON attributes when exporting a legend in JSON format.
 | 
			
		||||
     * Flags to co
 | 
			
		||||
    *    Q_DECLARE_OPERATORS_FOR_FLAGS( QgsVectorSimplifyMethod::SimplifyHints )ntrol JSON attributes when exporting a legend in JSON format.
 | 
			
		||||
     *
 | 
			
		||||
     * \since QGIS 3.36
 | 
			
		||||
     */
 | 
			
		||||
@ -5156,7 +5199,7 @@ Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::ProcessingFeatureSourceFlags )
 | 
			
		||||
Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::ProcessingParameterTypeFlags )
 | 
			
		||||
Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::ProcessingParameterFlags )
 | 
			
		||||
Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::DataItemProviderCapabilities )
 | 
			
		||||
 | 
			
		||||
Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::VectorRenderingSimplificationFlags )
 | 
			
		||||
 | 
			
		||||
// hack to workaround warnings when casting void pointers
 | 
			
		||||
// retrieved from QLibrary::resolve to function pointers.
 | 
			
		||||
 | 
			
		||||
@ -42,7 +42,7 @@ QgsMapSettings::QgsMapSettings()
 | 
			
		||||
  , mSegmentationTolerance( M_PI_2 / 90 )
 | 
			
		||||
{
 | 
			
		||||
  mScaleCalculator.setMapUnits( Qgis::DistanceUnit::Unknown );
 | 
			
		||||
  mSimplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  mSimplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlag::NoSimplification );
 | 
			
		||||
 | 
			
		||||
  updateDerived();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -31,7 +31,7 @@
 | 
			
		||||
QgsRenderContext::QgsRenderContext()
 | 
			
		||||
  : mFlags( Qgis::RenderContextFlag::DrawEditingInfo | Qgis::RenderContextFlag::UseAdvancedEffects | Qgis::RenderContextFlag::DrawSelection | Qgis::RenderContextFlag::UseRenderingOptimization )
 | 
			
		||||
{
 | 
			
		||||
  mVectorSimplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  mVectorSimplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlag::NoSimplification );
 | 
			
		||||
  // For RenderMetersInMapUnits support, when rendering in Degrees, the Ellipsoid must be set
 | 
			
		||||
  // - for Previews/Icons the default Extent can be used
 | 
			
		||||
  mDistanceArea.setEllipsoid( mDistanceArea.sourceCrs().ellipsoidAcronym() );
 | 
			
		||||
 | 
			
		||||
@ -17,7 +17,7 @@
 | 
			
		||||
#include "qgsvectorsimplifymethod.h"
 | 
			
		||||
 | 
			
		||||
QgsVectorSimplifyMethod::QgsVectorSimplifyMethod()
 | 
			
		||||
  : mSimplifyHints( Qgis::DEFAULT_MAPTOPIXEL_THRESHOLD > 1 ? QgsVectorSimplifyMethod::FullSimplification : QgsVectorSimplifyMethod::GeometrySimplification )
 | 
			
		||||
  : mSimplifyHints( Qgis::DEFAULT_MAPTOPIXEL_THRESHOLD > 1 ? Qgis::VectorRenderingSimplificationFlag::FullSimplification : Qgis::VectorRenderingSimplificationFlag::GeometrySimplification )
 | 
			
		||||
  , mThreshold( Qgis::DEFAULT_MAPTOPIXEL_THRESHOLD )
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -21,6 +21,7 @@
 | 
			
		||||
 | 
			
		||||
#include "qgis_core.h"
 | 
			
		||||
#include "qgis_sip.h"
 | 
			
		||||
#include "qgis.h"
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \ingroup core
 | 
			
		||||
@ -33,37 +34,15 @@ class CORE_EXPORT QgsVectorSimplifyMethod
 | 
			
		||||
    //! construct a default object
 | 
			
		||||
    QgsVectorSimplifyMethod();
 | 
			
		||||
 | 
			
		||||
    //! Simplification flags for fast rendering of features
 | 
			
		||||
    enum SimplifyHint SIP_ENUM_BASETYPE( IntFlag )
 | 
			
		||||
    {
 | 
			
		||||
      NoSimplification           = 0, //!< No simplification can be applied
 | 
			
		||||
      GeometrySimplification     = 1, //!< The geometries can be simplified using the current map2pixel context state
 | 
			
		||||
      AntialiasingSimplification = 2, //!< The geometries can be rendered with 'AntiAliasing' disabled because of it is '1-pixel size'
 | 
			
		||||
      FullSimplification         = 3, //!< All simplification hints can be applied ( Geometry + AA-disabling )
 | 
			
		||||
    };
 | 
			
		||||
    Q_ENUM( SimplifyHint )
 | 
			
		||||
    Q_DECLARE_FLAGS( SimplifyHints, SimplifyHint )
 | 
			
		||||
    Q_FLAG( SimplifyHints )
 | 
			
		||||
 | 
			
		||||
    //! Sets the simplification hints of the vector layer managed
 | 
			
		||||
    void setSimplifyHints( SimplifyHints simplifyHints ) { mSimplifyHints = simplifyHints; }
 | 
			
		||||
    void setSimplifyHints( Qgis::VectorRenderingSimplificationFlags simplifyHints ) { mSimplifyHints = simplifyHints; }
 | 
			
		||||
    //! Gets the simplification hints of the vector layer managed
 | 
			
		||||
    inline SimplifyHints simplifyHints() const { return mSimplifyHints; }
 | 
			
		||||
 | 
			
		||||
    //! Types of local simplification algorithms that can be used
 | 
			
		||||
    enum SimplifyAlgorithm
 | 
			
		||||
    {
 | 
			
		||||
      Distance    = 0, //!< The simplification uses the distance between points to remove duplicate points
 | 
			
		||||
      SnapToGrid  = 1, //!< The simplification uses a grid (similar to ST_SnapToGrid) to remove duplicate points
 | 
			
		||||
      Visvalingam = 2, //!< The simplification gives each point in a line an importance weighting, so that least important points are removed first
 | 
			
		||||
      SnappedToGridGlobal = 3, //!< Snap to a global grid based on the tolerance. Good for consistent results for incoming vertices, regardless of their feature
 | 
			
		||||
    };
 | 
			
		||||
    Q_ENUM( SimplifyAlgorithm )
 | 
			
		||||
    inline Qgis::VectorRenderingSimplificationFlags simplifyHints() const { return mSimplifyHints; }
 | 
			
		||||
 | 
			
		||||
    //! Sets the local simplification algorithm of the vector layer managed
 | 
			
		||||
    void setSimplifyAlgorithm( SimplifyAlgorithm simplifyAlgorithm ) { mSimplifyAlgorithm = simplifyAlgorithm; }
 | 
			
		||||
    void setSimplifyAlgorithm( Qgis::VectorSimplificationAlgorithm simplifyAlgorithm ) { mSimplifyAlgorithm = simplifyAlgorithm; }
 | 
			
		||||
    //! Gets the local simplification algorithm of the vector layer managed
 | 
			
		||||
    inline SimplifyAlgorithm simplifyAlgorithm() const { return mSimplifyAlgorithm; }
 | 
			
		||||
    inline Qgis::VectorSimplificationAlgorithm simplifyAlgorithm() const { return mSimplifyAlgorithm; }
 | 
			
		||||
 | 
			
		||||
    //! Sets the tolerance of simplification in map units. Represents the maximum distance in map units between two coordinates which can be considered equal
 | 
			
		||||
    void setTolerance( double tolerance ) { mTolerance = tolerance; }
 | 
			
		||||
@ -87,9 +66,9 @@ class CORE_EXPORT QgsVectorSimplifyMethod
 | 
			
		||||
 | 
			
		||||
  private:
 | 
			
		||||
    //! Simplification hints for fast rendering of features of the vector layer managed
 | 
			
		||||
    SimplifyHints mSimplifyHints;
 | 
			
		||||
    Qgis::VectorRenderingSimplificationFlags mSimplifyHints;
 | 
			
		||||
    //! Simplification algorithm
 | 
			
		||||
    SimplifyAlgorithm mSimplifyAlgorithm = QgsVectorSimplifyMethod::Distance;
 | 
			
		||||
    Qgis::VectorSimplificationAlgorithm mSimplifyAlgorithm = Qgis::VectorSimplificationAlgorithm::Distance;
 | 
			
		||||
    //! Simplification tolerance, it represents the maximum distance between two coordinates which can be considered equal
 | 
			
		||||
    double mTolerance = 1;
 | 
			
		||||
    //! Simplification threshold
 | 
			
		||||
@ -100,6 +79,5 @@ class CORE_EXPORT QgsVectorSimplifyMethod
 | 
			
		||||
    float mMaximumScale = 1;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
Q_DECLARE_OPERATORS_FOR_FLAGS( QgsVectorSimplifyMethod::SimplifyHints )
 | 
			
		||||
 | 
			
		||||
#endif // QGSVECTORSIMPLIFYMETHOD_H
 | 
			
		||||
 | 
			
		||||
@ -14,7 +14,6 @@
 | 
			
		||||
 ***************************************************************************/
 | 
			
		||||
 | 
			
		||||
#include "qgslinesymbollayer.h"
 | 
			
		||||
#include "qgscurve.h"
 | 
			
		||||
#include "qgscurvepolygon.h"
 | 
			
		||||
#include "qgsdxfexport.h"
 | 
			
		||||
#include "qgssymbollayerutils.h"
 | 
			
		||||
@ -451,7 +450,7 @@ void QgsSimpleLineSymbolLayer::renderPolyline( const QPolygonF &pts, QgsSymbolRe
 | 
			
		||||
  // Disable 'Antialiasing' if the geometry was generalized in the current RenderContext (We known that it must have least #2 points).
 | 
			
		||||
  std::unique_ptr< QgsScopedQPainterState > painterState;
 | 
			
		||||
  if ( points.size() <= 2 &&
 | 
			
		||||
       ( context.renderContext().vectorSimplifyMethod().simplifyHints() & QgsVectorSimplifyMethod::AntialiasingSimplification ) &&
 | 
			
		||||
       ( context.renderContext().vectorSimplifyMethod().simplifyHints() & Qgis::VectorRenderingSimplificationFlag::AntialiasingSimplification ) &&
 | 
			
		||||
       QgsAbstractGeometrySimplifier::isGeneralizableByDeviceBoundingBox( points, context.renderContext().vectorSimplifyMethod().threshold() ) &&
 | 
			
		||||
       ( p->renderHints() & QPainter::Antialiasing ) )
 | 
			
		||||
  {
 | 
			
		||||
 | 
			
		||||
@ -864,7 +864,7 @@ void QgsFillSymbolLayer::_renderPolygon( QPainter *p, const QPolygonF &points, c
 | 
			
		||||
 | 
			
		||||
  // Disable 'Antialiasing' if the geometry was generalized in the current RenderContext (We known that it must have least #5 points).
 | 
			
		||||
  if ( points.size() <= 5 &&
 | 
			
		||||
       ( context.renderContext().vectorSimplifyMethod().simplifyHints() & QgsVectorSimplifyMethod::AntialiasingSimplification ) &&
 | 
			
		||||
       ( context.renderContext().vectorSimplifyMethod().simplifyHints() & Qgis::VectorRenderingSimplificationFlag::AntialiasingSimplification ) &&
 | 
			
		||||
       QgsAbstractGeometrySimplifier::isGeneralizableByDeviceBoundingBox( points, context.renderContext().vectorSimplifyMethod().threshold() ) &&
 | 
			
		||||
       ( p->renderHints() & QPainter::Antialiasing ) )
 | 
			
		||||
  {
 | 
			
		||||
 | 
			
		||||
@ -114,8 +114,8 @@
 | 
			
		||||
const QgsSettingsEntryDouble *QgsVectorLayer::settingsSimplifyDrawingTol = new QgsSettingsEntryDouble( QStringLiteral( "simplifyDrawingTol" ), QgsSettingsTree::sTreeQgis, Qgis::DEFAULT_MAPTOPIXEL_THRESHOLD );
 | 
			
		||||
const QgsSettingsEntryBool *QgsVectorLayer::settingsSimplifyLocal = new QgsSettingsEntryBool( QStringLiteral( "simplifyLocal" ), QgsSettingsTree::sTreeQgis, true );
 | 
			
		||||
const QgsSettingsEntryDouble *QgsVectorLayer::settingsSimplifyMaxScale = new QgsSettingsEntryDouble( QStringLiteral( "simplifyMaxScale" ), QgsSettingsTree::sTreeQgis, 1.0 );
 | 
			
		||||
const QgsSettingsEntryEnumFlag<QgsVectorSimplifyMethod::SimplifyHints> *QgsVectorLayer::settingsSimplifyDrawingHints = new QgsSettingsEntryEnumFlag<QgsVectorSimplifyMethod::SimplifyHints>( QStringLiteral( "simplifyDrawingHints" ), QgsSettingsTree::sTreeQgis, QgsVectorSimplifyMethod::SimplifyHint::NoSimplification );
 | 
			
		||||
const QgsSettingsEntryEnumFlag<QgsVectorSimplifyMethod::SimplifyAlgorithm> *QgsVectorLayer::settingsSimplifyAlgorithm = new QgsSettingsEntryEnumFlag<QgsVectorSimplifyMethod::SimplifyAlgorithm>( QStringLiteral( "simplifyAlgorithm" ), QgsSettingsTree::sTreeQgis, QgsVectorSimplifyMethod::SimplifyAlgorithm::Distance );
 | 
			
		||||
const QgsSettingsEntryEnumFlag<Qgis::VectorRenderingSimplificationFlags> *QgsVectorLayer::settingsSimplifyDrawingHints = new QgsSettingsEntryEnumFlag<Qgis::VectorRenderingSimplificationFlags>( QStringLiteral( "simplifyDrawingHints" ), QgsSettingsTree::sTreeQgis, Qgis::VectorRenderingSimplificationFlag::NoSimplification );
 | 
			
		||||
const QgsSettingsEntryEnumFlag<Qgis::VectorSimplificationAlgorithm> *QgsVectorLayer::settingsSimplifyAlgorithm = new QgsSettingsEntryEnumFlag<Qgis::VectorSimplificationAlgorithm>( QStringLiteral( "simplifyAlgorithm" ), QgsSettingsTree::sTreeQgis, Qgis::VectorSimplificationAlgorithm::Distance );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef TESTPROVIDERLIB
 | 
			
		||||
@ -1303,7 +1303,7 @@ bool QgsVectorLayer::setSubsetString( const QString &subset )
 | 
			
		||||
  return res;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool QgsVectorLayer::simplifyDrawingCanbeApplied( const QgsRenderContext &renderContext, QgsVectorSimplifyMethod::SimplifyHint simplifyHint ) const
 | 
			
		||||
bool QgsVectorLayer::simplifyDrawingCanbeApplied( const QgsRenderContext &renderContext, Qgis::VectorRenderingSimplificationFlag simplifyHint ) const
 | 
			
		||||
{
 | 
			
		||||
  // non fatal for now -- the "rasterize" processing algorithm is not thread safe and calls this
 | 
			
		||||
  QGIS_PROTECT_QOBJECT_THREAD_ACCESS_NON_FATAL
 | 
			
		||||
@ -2889,8 +2889,8 @@ bool QgsVectorLayer::readStyle( const QDomNode &node, QString &errorMessage,
 | 
			
		||||
      QDomElement e = node.toElement();
 | 
			
		||||
 | 
			
		||||
      // get the simplification drawing settings
 | 
			
		||||
      mSimplifyMethod.setSimplifyHints( static_cast< QgsVectorSimplifyMethod::SimplifyHints >( e.attribute( QStringLiteral( "simplifyDrawingHints" ), QStringLiteral( "1" ) ).toInt() ) );
 | 
			
		||||
      mSimplifyMethod.setSimplifyAlgorithm( static_cast< QgsVectorSimplifyMethod::SimplifyAlgorithm >( e.attribute( QStringLiteral( "simplifyAlgorithm" ), QStringLiteral( "0" ) ).toInt() ) );
 | 
			
		||||
      mSimplifyMethod.setSimplifyHints( static_cast< Qgis::VectorRenderingSimplificationFlags >( e.attribute( QStringLiteral( "simplifyDrawingHints" ), QStringLiteral( "1" ) ).toInt() ) );
 | 
			
		||||
      mSimplifyMethod.setSimplifyAlgorithm( static_cast< Qgis::VectorSimplificationAlgorithm >( e.attribute( QStringLiteral( "simplifyAlgorithm" ), QStringLiteral( "0" ) ).toInt() ) );
 | 
			
		||||
      mSimplifyMethod.setThreshold( e.attribute( QStringLiteral( "simplifyDrawingTol" ), QStringLiteral( "1" ) ).toFloat() );
 | 
			
		||||
      mSimplifyMethod.setForceLocalOptimization( e.attribute( QStringLiteral( "simplifyLocal" ), QStringLiteral( "1" ) ).toInt() );
 | 
			
		||||
      mSimplifyMethod.setMaximumScale( e.attribute( QStringLiteral( "simplifyMaxScale" ), QStringLiteral( "1" ) ).toFloat() );
 | 
			
		||||
@ -3248,8 +3248,8 @@ bool QgsVectorLayer::writeStyle( QDomNode &node, QDomDocument &doc, QString &err
 | 
			
		||||
    // save the simplification drawing settings
 | 
			
		||||
    if ( categories.testFlag( Rendering ) )
 | 
			
		||||
    {
 | 
			
		||||
      mapLayerNode.setAttribute( QStringLiteral( "simplifyDrawingHints" ), QString::number( mSimplifyMethod.simplifyHints() ) );
 | 
			
		||||
      mapLayerNode.setAttribute( QStringLiteral( "simplifyAlgorithm" ), QString::number( mSimplifyMethod.simplifyAlgorithm() ) );
 | 
			
		||||
      mapLayerNode.setAttribute( QStringLiteral( "simplifyDrawingHints" ), QString::number( static_cast< int >( mSimplifyMethod.simplifyHints() ) ) );
 | 
			
		||||
      mapLayerNode.setAttribute( QStringLiteral( "simplifyAlgorithm" ), QString::number( static_cast< int >( mSimplifyMethod.simplifyAlgorithm() ) ) );
 | 
			
		||||
      mapLayerNode.setAttribute( QStringLiteral( "simplifyDrawingTol" ), QString::number( mSimplifyMethod.threshold() ) );
 | 
			
		||||
      mapLayerNode.setAttribute( QStringLiteral( "simplifyLocal" ), mSimplifyMethod.forceLocalOptimization() ? 1 : 0 );
 | 
			
		||||
      mapLayerNode.setAttribute( QStringLiteral( "simplifyMaxScale" ), QString::number( mSimplifyMethod.maximumScale() ) );
 | 
			
		||||
 | 
			
		||||
@ -34,7 +34,6 @@
 | 
			
		||||
#include "qgsfields.h"
 | 
			
		||||
#include "qgsvectordataprovider.h"
 | 
			
		||||
#include "qgsvectorlayertoolscontext.h"
 | 
			
		||||
#include "qgsvectorsimplifymethod.h"
 | 
			
		||||
#include "qgseditformconfig.h"
 | 
			
		||||
#include "qgsattributetableconfig.h"
 | 
			
		||||
#include "qgsaggregatecalculator.h"
 | 
			
		||||
@ -43,6 +42,7 @@
 | 
			
		||||
#include "qgsexpressioncontextscopegenerator.h"
 | 
			
		||||
#include "qgsexpressioncontext.h"
 | 
			
		||||
#include "qgsabstractprofilesource.h"
 | 
			
		||||
#include "qgsvectorsimplifymethod.h"
 | 
			
		||||
 | 
			
		||||
class QPainter;
 | 
			
		||||
class QImage;
 | 
			
		||||
@ -414,8 +414,8 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer, public QgsExpressionConte
 | 
			
		||||
 | 
			
		||||
    static const QgsSettingsEntryDouble *settingsSimplifyMaxScale SIP_SKIP;
 | 
			
		||||
    static const QgsSettingsEntryDouble *settingsSimplifyDrawingTol SIP_SKIP;
 | 
			
		||||
    static const QgsSettingsEntryEnumFlag<QgsVectorSimplifyMethod::SimplifyAlgorithm> *settingsSimplifyAlgorithm SIP_SKIP;
 | 
			
		||||
    static const QgsSettingsEntryEnumFlag<QgsVectorSimplifyMethod::SimplifyHints> *settingsSimplifyDrawingHints SIP_SKIP;
 | 
			
		||||
    static const QgsSettingsEntryEnumFlag<Qgis::VectorSimplificationAlgorithm> *settingsSimplifyAlgorithm SIP_SKIP;
 | 
			
		||||
    static const QgsSettingsEntryEnumFlag<Qgis::VectorRenderingSimplificationFlags> *settingsSimplifyDrawingHints SIP_SKIP;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Setting options for loading vector layers.
 | 
			
		||||
@ -2330,7 +2330,7 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer, public QgsExpressionConte
 | 
			
		||||
     * Returns whether the VectorLayer can apply the specified simplification hint
 | 
			
		||||
     * \note Do not use in 3rd party code - may be removed in future version!
 | 
			
		||||
     */
 | 
			
		||||
    bool simplifyDrawingCanbeApplied( const QgsRenderContext &renderContext, QgsVectorSimplifyMethod::SimplifyHint simplifyHint ) const;
 | 
			
		||||
    bool simplifyDrawingCanbeApplied( const QgsRenderContext &renderContext, Qgis::VectorRenderingSimplificationFlag simplifyHint ) const;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Returns the conditional styles that are set for this layer. Style information is
 | 
			
		||||
 | 
			
		||||
@ -133,16 +133,16 @@ QgsVectorLayerRenderer::QgsVectorLayerRenderer( QgsVectorLayer *layer, QgsRender
 | 
			
		||||
 | 
			
		||||
  // if there's already a simplification method specified via the context, we respect that. Otherwise, we fall back
 | 
			
		||||
  // to the layer's individual setting
 | 
			
		||||
  if ( renderContext()->vectorSimplifyMethod().simplifyHints() != QgsVectorSimplifyMethod::NoSimplification )
 | 
			
		||||
  if ( renderContext()->vectorSimplifyMethod().simplifyHints() != Qgis::VectorRenderingSimplificationFlags( Qgis::VectorRenderingSimplificationFlag::NoSimplification ) )
 | 
			
		||||
  {
 | 
			
		||||
    mSimplifyMethod = renderContext()->vectorSimplifyMethod();
 | 
			
		||||
    mSimplifyGeometry = renderContext()->vectorSimplifyMethod().simplifyHints() & QgsVectorSimplifyMethod::GeometrySimplification ||
 | 
			
		||||
                        renderContext()->vectorSimplifyMethod().simplifyHints() & QgsVectorSimplifyMethod::FullSimplification;
 | 
			
		||||
    mSimplifyGeometry = renderContext()->vectorSimplifyMethod().simplifyHints() & Qgis::VectorRenderingSimplificationFlag::GeometrySimplification ||
 | 
			
		||||
                        renderContext()->vectorSimplifyMethod().simplifyHints() & Qgis::VectorRenderingSimplificationFlag::FullSimplification;
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
  {
 | 
			
		||||
    mSimplifyMethod = layer->simplifyMethod();
 | 
			
		||||
    mSimplifyGeometry = layer->simplifyDrawingCanbeApplied( *renderContext(), QgsVectorSimplifyMethod::GeometrySimplification );
 | 
			
		||||
    mSimplifyGeometry = layer->simplifyDrawingCanbeApplied( *renderContext(), Qgis::VectorRenderingSimplificationFlag::GeometrySimplification );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  mVertexMarkerOnlyForSelection = QgsSettingsRegistryCore::settingsDigitizingMarkerOnlyForSelected->value();
 | 
			
		||||
@ -442,14 +442,14 @@ bool QgsVectorLayerRenderer::renderInternal( QgsFeatureRenderer *renderer, int r
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
      QgsVectorSimplifyMethod vectorMethod;
 | 
			
		||||
      vectorMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
      vectorMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlag::NoSimplification );
 | 
			
		||||
      context.setVectorSimplifyMethod( vectorMethod );
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
  {
 | 
			
		||||
    QgsVectorSimplifyMethod vectorMethod;
 | 
			
		||||
    vectorMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
    vectorMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlag::NoSimplification );
 | 
			
		||||
    context.setVectorSimplifyMethod( vectorMethod );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -22,9 +22,6 @@
 | 
			
		||||
#include "qgssettingsenumflageditorwidgetwrapper.h"
 | 
			
		||||
#include "qgssettingsentry.h"
 | 
			
		||||
 | 
			
		||||
#include "qgsvectorsimplifymethod.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if defined( HAVE_QTSERIALPORT )
 | 
			
		||||
#include <QSerialPort>
 | 
			
		||||
#endif
 | 
			
		||||
@ -57,8 +54,8 @@ QgsSettingsEditorWidgetRegistry::QgsSettingsEditorWidgetRegistry()
 | 
			
		||||
  addWrapper( new QgsSettingsEnumEditorWidgetWrapper<Qgis::SnappingType>() );
 | 
			
		||||
  addWrapper( new QgsSettingsEnumEditorWidgetWrapper<Qgis::TilePixelRatio>() );
 | 
			
		||||
 | 
			
		||||
  addWrapper( new QgsSettingsEnumEditorWidgetWrapper<QgsVectorSimplifyMethod::SimplifyAlgorithm>() );
 | 
			
		||||
  addWrapper( new QgsSettingsEnumEditorWidgetWrapper<QgsVectorSimplifyMethod::SimplifyHints>() );
 | 
			
		||||
  addWrapper( new QgsSettingsEnumEditorWidgetWrapper<Qgis::VectorSimplificationAlgorithm>() );
 | 
			
		||||
  addWrapper( new QgsSettingsEnumEditorWidgetWrapper<Qgis::VectorRenderingSimplificationFlags>() );
 | 
			
		||||
  addWrapper( new QgsSettingsEnumEditorWidgetWrapper<Qt::TimeSpec>() );
 | 
			
		||||
 | 
			
		||||
  // flags
 | 
			
		||||
 | 
			
		||||
@ -21,7 +21,6 @@
 | 
			
		||||
 | 
			
		||||
#include "qgsactionmanager.h"
 | 
			
		||||
#include "qgsjoindialog.h"
 | 
			
		||||
#include "qgssldexportcontext.h"
 | 
			
		||||
#include "qgsvectorlayerselectionproperties.h"
 | 
			
		||||
#include "qgswmsdimensiondialog.h"
 | 
			
		||||
#include "qgsapplication.h"
 | 
			
		||||
@ -620,7 +619,7 @@ void QgsVectorLayerProperties::syncToLayer()
 | 
			
		||||
 | 
			
		||||
  // get simplify drawing configuration
 | 
			
		||||
  const QgsVectorSimplifyMethod &simplifyMethod = mLayer->simplifyMethod();
 | 
			
		||||
  mSimplifyDrawingGroupBox->setChecked( simplifyMethod.simplifyHints() != QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  mSimplifyDrawingGroupBox->setChecked( simplifyMethod.simplifyHints() != Qgis::VectorRenderingSimplificationFlags( Qgis::VectorRenderingSimplificationFlag::NoSimplification ) );
 | 
			
		||||
  mSimplifyDrawingSpinBox->setValue( simplifyMethod.threshold() );
 | 
			
		||||
  mSimplifyDrawingSpinBox->setClearValue( 1.0 );
 | 
			
		||||
 | 
			
		||||
@ -693,10 +692,10 @@ void QgsVectorLayerProperties::syncToLayer()
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Default local simplification algorithm
 | 
			
		||||
  mSimplifyAlgorithmComboBox->addItem( tr( "Distance" ), QgsVectorSimplifyMethod::Distance );
 | 
			
		||||
  mSimplifyAlgorithmComboBox->addItem( tr( "SnapToGrid" ), QgsVectorSimplifyMethod::SnapToGrid );
 | 
			
		||||
  mSimplifyAlgorithmComboBox->addItem( tr( "Visvalingam" ), QgsVectorSimplifyMethod::Visvalingam );
 | 
			
		||||
  mSimplifyAlgorithmComboBox->setCurrentIndex( mSimplifyAlgorithmComboBox->findData( simplifyMethod.simplifyAlgorithm() ) );
 | 
			
		||||
  mSimplifyAlgorithmComboBox->addItem( tr( "Distance" ), QVariant::fromValue( Qgis::VectorSimplificationAlgorithm::Distance ) );
 | 
			
		||||
  mSimplifyAlgorithmComboBox->addItem( tr( "SnapToGrid" ), QVariant::fromValue( Qgis::VectorSimplificationAlgorithm::SnapToGrid ) );
 | 
			
		||||
  mSimplifyAlgorithmComboBox->addItem( tr( "Visvalingam" ), QVariant::fromValue( Qgis::VectorSimplificationAlgorithm::Visvalingam ) );
 | 
			
		||||
  mSimplifyAlgorithmComboBox->setCurrentIndex( mSimplifyAlgorithmComboBox->findData( QVariant::fromValue( simplifyMethod.simplifyAlgorithm() ) ) );
 | 
			
		||||
 | 
			
		||||
  QStringList myScalesList = Qgis::defaultProjectScales().split( ',' );
 | 
			
		||||
  myScalesList.append( QStringLiteral( "1:1" ) );
 | 
			
		||||
@ -883,15 +882,16 @@ void QgsVectorLayerProperties::apply()
 | 
			
		||||
  mLayer->setLegendUrlFormat( mLayerLegendUrlFormatComboBox->currentText() );
 | 
			
		||||
 | 
			
		||||
  //layer simplify drawing configuration
 | 
			
		||||
  QgsVectorSimplifyMethod::SimplifyHints simplifyHints = QgsVectorSimplifyMethod::NoSimplification;
 | 
			
		||||
  Qgis::VectorRenderingSimplificationFlags simplifyHints = Qgis::VectorRenderingSimplificationFlag::NoSimplification;
 | 
			
		||||
  if ( mSimplifyDrawingGroupBox->isChecked() )
 | 
			
		||||
  {
 | 
			
		||||
    simplifyHints |= QgsVectorSimplifyMethod::GeometrySimplification;
 | 
			
		||||
    if ( mSimplifyDrawingSpinBox->value() > 1 ) simplifyHints |= QgsVectorSimplifyMethod::AntialiasingSimplification;
 | 
			
		||||
    simplifyHints |= Qgis::VectorRenderingSimplificationFlag::GeometrySimplification;
 | 
			
		||||
    if ( mSimplifyDrawingSpinBox->value() > 1 )
 | 
			
		||||
      simplifyHints |= Qgis::VectorRenderingSimplificationFlag::AntialiasingSimplification;
 | 
			
		||||
  }
 | 
			
		||||
  QgsVectorSimplifyMethod simplifyMethod = mLayer->simplifyMethod();
 | 
			
		||||
  simplifyMethod.setSimplifyHints( simplifyHints );
 | 
			
		||||
  simplifyMethod.setSimplifyAlgorithm( static_cast< QgsVectorSimplifyMethod::SimplifyAlgorithm >( mSimplifyAlgorithmComboBox->currentData().toInt() ) );
 | 
			
		||||
  simplifyMethod.setSimplifyAlgorithm( mSimplifyAlgorithmComboBox->currentData().value< Qgis::VectorSimplificationAlgorithm >() );
 | 
			
		||||
  simplifyMethod.setThreshold( mSimplifyDrawingSpinBox->value() );
 | 
			
		||||
  simplifyMethod.setForceLocalOptimization( !mSimplifyDrawingAtProvider->isChecked() );
 | 
			
		||||
  simplifyMethod.setMaximumScale( mSimplifyMaximumScaleComboBox->scale() );
 | 
			
		||||
 | 
			
		||||
@ -80,7 +80,7 @@ void TestQgs25DRenderer::initTestCase()
 | 
			
		||||
                                     myPolyFileInfo.completeBaseName(), QStringLiteral( "ogr" ) );
 | 
			
		||||
 | 
			
		||||
  QgsVectorSimplifyMethod simplifyMethod;
 | 
			
		||||
  simplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  simplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
  mpPolysLayer->setSimplifyMethod( simplifyMethod );
 | 
			
		||||
 | 
			
		||||
  //need a very high height to check for stacking
 | 
			
		||||
 | 
			
		||||
@ -97,7 +97,7 @@ void TestQgsBlendModes::initTestCase()
 | 
			
		||||
                                     myPolyFileInfo.completeBaseName(), QStringLiteral( "ogr" ) );
 | 
			
		||||
 | 
			
		||||
  QgsVectorSimplifyMethod simplifyMethod;
 | 
			
		||||
  simplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  simplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
 | 
			
		||||
  mpPolysLayer->setSimplifyMethod( simplifyMethod );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -91,7 +91,7 @@ void TestQgsCentroidFillSymbol::initTestCase()
 | 
			
		||||
                                     myPolyFileInfo.completeBaseName(), QStringLiteral( "ogr" ) );
 | 
			
		||||
 | 
			
		||||
  QgsVectorSimplifyMethod simplifyMethod;
 | 
			
		||||
  simplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  simplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
  mpPolysLayer->setSimplifyMethod( simplifyMethod );
 | 
			
		||||
 | 
			
		||||
  //setup gradient fill
 | 
			
		||||
 | 
			
		||||
@ -96,7 +96,7 @@ void TestQgsGradients::initTestCase()
 | 
			
		||||
                                     myPolyFileInfo.completeBaseName(), QStringLiteral( "ogr" ) );
 | 
			
		||||
 | 
			
		||||
  QgsVectorSimplifyMethod simplifyMethod;
 | 
			
		||||
  simplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  simplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
  mpPolysLayer->setSimplifyMethod( simplifyMethod );
 | 
			
		||||
 | 
			
		||||
  // We only need maprender instead of mapcanvas
 | 
			
		||||
@ -389,7 +389,7 @@ void TestQgsGradients::gradientSymbolFromQml()
 | 
			
		||||
 | 
			
		||||
  QVERIFY( setQml( "gradient" ) );
 | 
			
		||||
  QgsVectorSimplifyMethod simplifyMethod;
 | 
			
		||||
  simplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  simplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
  mpPolysLayer->setSimplifyMethod( simplifyMethod );
 | 
			
		||||
  QVERIFY( imageCheck( "gradient_from_qml" ) );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -84,7 +84,7 @@ void TestQgsInvertedPolygon::initTestCase()
 | 
			
		||||
  mpPolysLayer = new QgsVectorLayer( myPolyFileInfo.filePath(),
 | 
			
		||||
                                     myPolyFileInfo.completeBaseName(), QStringLiteral( "ogr" ) );
 | 
			
		||||
  QgsVectorSimplifyMethod simplifyMethod;
 | 
			
		||||
  simplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  simplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
  mpPolysLayer->setSimplifyMethod( simplifyMethod );
 | 
			
		||||
 | 
			
		||||
  mMapSettings.setLayers( QList<QgsMapLayer *>() << mpPolysLayer );
 | 
			
		||||
 | 
			
		||||
@ -33,10 +33,8 @@
 | 
			
		||||
#include <qgslinesymbol.h>
 | 
			
		||||
#include <qgslinesymbollayer.h>
 | 
			
		||||
#include <qgssymbol.h>
 | 
			
		||||
#include "qgslayoutitemmap.h"
 | 
			
		||||
#include "qgsmultirenderchecker.h"
 | 
			
		||||
#include "qgsexpressioncontextutils.h"
 | 
			
		||||
#include "qgslayout.h"
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \ingroup UnitTests
 | 
			
		||||
@ -82,7 +80,7 @@ void TestQgsLayeredSymbolLevel::initTestCase()
 | 
			
		||||
                                     myRoadsFileInfo.completeBaseName(), QStringLiteral( "ogr" ) );
 | 
			
		||||
 | 
			
		||||
  QgsVectorSimplifyMethod simplifyMethod;
 | 
			
		||||
  simplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  simplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
  mpRoadsLayer->setSimplifyMethod( simplifyMethod );
 | 
			
		||||
 | 
			
		||||
  mMapSettings.setLayers( QList<QgsMapLayer *>() << mpRoadsLayer );
 | 
			
		||||
 | 
			
		||||
@ -96,7 +96,7 @@ void TestQgsLayoutAtlas::initTestCase()
 | 
			
		||||
                                      QStringLiteral( "ogr" ) );
 | 
			
		||||
 | 
			
		||||
  QgsVectorSimplifyMethod simplifyMethod;
 | 
			
		||||
  simplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  simplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
  mVectorLayer->setSimplifyMethod( simplifyMethod );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -253,11 +253,11 @@ void TestQgsLayoutContext::simplifyMethod()
 | 
			
		||||
  QgsLayout l( QgsProject::instance() );
 | 
			
		||||
  QgsLayoutRenderContext context( &l );
 | 
			
		||||
  // must default to no simplification
 | 
			
		||||
  QCOMPARE( context.simplifyMethod().simplifyHints(), QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  QCOMPARE( context.simplifyMethod().simplifyHints(), Qgis::VectorRenderingSimplificationFlag::NoSimplification );
 | 
			
		||||
  QgsVectorSimplifyMethod simplify;
 | 
			
		||||
  simplify.setSimplifyHints( QgsVectorSimplifyMethod::GeometrySimplification );
 | 
			
		||||
  simplify.setSimplifyHints( Qgis::VectorRenderingSimplificationFlag::GeometrySimplification );
 | 
			
		||||
  context.setSimplifyMethod( simplify );
 | 
			
		||||
  QCOMPARE( context.simplifyMethod().simplifyHints(), QgsVectorSimplifyMethod::GeometrySimplification );
 | 
			
		||||
  QCOMPARE( context.simplifyMethod().simplifyHints(), Qgis::VectorRenderingSimplificationFlag::GeometrySimplification );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QGSTEST_MAIN( TestQgsLayoutContext )
 | 
			
		||||
 | 
			
		||||
@ -32,7 +32,6 @@
 | 
			
		||||
#include "qgsrenderedfeaturehandlerinterface.h"
 | 
			
		||||
#include "qgspallabeling.h"
 | 
			
		||||
#include "qgsvectorlayerlabeling.h"
 | 
			
		||||
#include "qgstemporalrangeobject.h"
 | 
			
		||||
#include "qgsfontutils.h"
 | 
			
		||||
#include "qgsannotationlayer.h"
 | 
			
		||||
#include "qgsannotationmarkeritem.h"
 | 
			
		||||
@ -880,23 +879,23 @@ void TestQgsLayoutMap::testSimplificationMethod()
 | 
			
		||||
  l.renderContext().mIsPreviewRender = false;
 | 
			
		||||
  QgsMapSettings settings = map->mapSettings( map->extent(), map->rect().size(), 300, false );
 | 
			
		||||
  // should default to no simplification during exports
 | 
			
		||||
  QCOMPARE( settings.simplifyMethod().simplifyHints(), QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  QCOMPARE( settings.simplifyMethod().simplifyHints(), Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
  QVERIFY( !( settings.flags() & Qgis::MapSettingsFlag::UseRenderingOptimization ) );
 | 
			
		||||
  // set a simplification method to use
 | 
			
		||||
  QgsVectorSimplifyMethod method;
 | 
			
		||||
  method.setSimplifyHints( QgsVectorSimplifyMethod::GeometrySimplification );
 | 
			
		||||
  method.setSimplifyHints( Qgis::VectorRenderingSimplificationFlag::GeometrySimplification );
 | 
			
		||||
  l.renderContext().setSimplifyMethod( method );
 | 
			
		||||
 | 
			
		||||
  // should still have no simplification override for preview renders
 | 
			
		||||
  l.renderContext().mIsPreviewRender = true;
 | 
			
		||||
  settings = map->mapSettings( map->extent(), map->rect().size(), 300, false );
 | 
			
		||||
  QCOMPARE( settings.simplifyMethod().simplifyHints(), QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  QCOMPARE( settings.simplifyMethod().simplifyHints(), Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
  QVERIFY( settings.flags() & Qgis::MapSettingsFlag::UseRenderingOptimization );
 | 
			
		||||
 | 
			
		||||
  // for exports, we respect the layout context's simplify method
 | 
			
		||||
  l.renderContext().mIsPreviewRender = false;
 | 
			
		||||
  settings = map->mapSettings( map->extent(), map->rect().size(), 300, false );
 | 
			
		||||
  QCOMPARE( settings.simplifyMethod().simplifyHints(), QgsVectorSimplifyMethod::GeometrySimplification );
 | 
			
		||||
  QCOMPARE( settings.simplifyMethod().simplifyHints(), Qgis::VectorRenderingSimplificationFlag::GeometrySimplification );
 | 
			
		||||
  QVERIFY( settings.flags() & Qgis::MapSettingsFlag::UseRenderingOptimization );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -107,7 +107,7 @@ void TestQgsLineFillSymbol::initTestCase()
 | 
			
		||||
                                     myPolyFileInfo.completeBaseName(), QStringLiteral( "ogr" ) );
 | 
			
		||||
 | 
			
		||||
  QgsVectorSimplifyMethod simplifyMethod;
 | 
			
		||||
  simplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  simplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
  mpPolysLayer->setSimplifyMethod( simplifyMethod );
 | 
			
		||||
 | 
			
		||||
  //setup gradient fill
 | 
			
		||||
@ -170,7 +170,7 @@ void TestQgsLineFillSymbol::viewportLineFillSymbol()
 | 
			
		||||
  QVERIFY( layer->isValid() );
 | 
			
		||||
 | 
			
		||||
  QgsVectorSimplifyMethod simplifyMethod;
 | 
			
		||||
  simplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  simplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
  layer->setSimplifyMethod( simplifyMethod );
 | 
			
		||||
 | 
			
		||||
  //setup gradient fill
 | 
			
		||||
 | 
			
		||||
@ -116,11 +116,11 @@ void TestQgsMapSettings::testGettersSetters()
 | 
			
		||||
  QCOMPARE( ms.textRenderFormat(), Qgis::TextRenderFormat::AlwaysOutlines );
 | 
			
		||||
 | 
			
		||||
  // must default to no simplification
 | 
			
		||||
  QCOMPARE( ms.simplifyMethod().simplifyHints(), QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  QCOMPARE( ms.simplifyMethod().simplifyHints(), Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
  QgsVectorSimplifyMethod simplify;
 | 
			
		||||
  simplify.setSimplifyHints( QgsVectorSimplifyMethod::GeometrySimplification );
 | 
			
		||||
  simplify.setSimplifyHints( Qgis::VectorRenderingSimplificationFlag::GeometrySimplification );
 | 
			
		||||
  ms.setSimplifyMethod( simplify );
 | 
			
		||||
  QCOMPARE( ms.simplifyMethod().simplifyHints(), QgsVectorSimplifyMethod::GeometrySimplification );
 | 
			
		||||
  QCOMPARE( ms.simplifyMethod().simplifyHints(), Qgis::VectorRenderingSimplificationFlag::GeometrySimplification );
 | 
			
		||||
 | 
			
		||||
  QVERIFY( ms.zRange().isInfinite() );
 | 
			
		||||
  ms.setZRange( QgsDoubleRange( 1, 10 ) );
 | 
			
		||||
 | 
			
		||||
@ -783,7 +783,7 @@ void TestQgsPaintEffect::layerEffectPolygon()
 | 
			
		||||
  QgsVectorLayer *polysLayer = new QgsVectorLayer( polyFileInfo.filePath(),
 | 
			
		||||
      polyFileInfo.completeBaseName(), QStringLiteral( "ogr" ) );
 | 
			
		||||
  QgsVectorSimplifyMethod simplifyMethod;
 | 
			
		||||
  simplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  simplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
  polysLayer->setSimplifyMethod( simplifyMethod );
 | 
			
		||||
 | 
			
		||||
  QgsMapSettings ms;
 | 
			
		||||
@ -813,7 +813,7 @@ void TestQgsPaintEffect::layerEffectLine()
 | 
			
		||||
  QgsVectorLayer *lineLayer = new QgsVectorLayer( lineFileInfo.filePath(),
 | 
			
		||||
      lineFileInfo.completeBaseName(), QStringLiteral( "ogr" ) );
 | 
			
		||||
  QgsVectorSimplifyMethod simplifyMethod;
 | 
			
		||||
  simplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  simplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
  lineLayer->setSimplifyMethod( simplifyMethod );
 | 
			
		||||
 | 
			
		||||
  QgsMapSettings ms;
 | 
			
		||||
@ -871,7 +871,7 @@ void TestQgsPaintEffect::vectorLayerEffect()
 | 
			
		||||
  QgsVectorLayer *polysLayer = new QgsVectorLayer( polyFileInfo.filePath(),
 | 
			
		||||
      polyFileInfo.completeBaseName(), QStringLiteral( "ogr" ) );
 | 
			
		||||
  QgsVectorSimplifyMethod simplifyMethod;
 | 
			
		||||
  simplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  simplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
  polysLayer->setSimplifyMethod( simplifyMethod );
 | 
			
		||||
 | 
			
		||||
  QgsMapSettings ms;
 | 
			
		||||
@ -905,7 +905,7 @@ void TestQgsPaintEffect::mapUnits()
 | 
			
		||||
  QgsVectorLayer *lineLayer = new QgsVectorLayer( lineFileInfo.filePath(),
 | 
			
		||||
      lineFileInfo.completeBaseName(), QStringLiteral( "ogr" ) );
 | 
			
		||||
  QgsVectorSimplifyMethod simplifyMethod;
 | 
			
		||||
  simplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  simplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
  lineLayer->setSimplifyMethod( simplifyMethod );
 | 
			
		||||
 | 
			
		||||
  QgsMapSettings ms;
 | 
			
		||||
@ -940,7 +940,7 @@ void TestQgsPaintEffect::layout()
 | 
			
		||||
  QgsVectorLayer *lineLayer = new QgsVectorLayer( lineFileInfo.filePath(),
 | 
			
		||||
      lineFileInfo.completeBaseName(), QStringLiteral( "ogr" ) );
 | 
			
		||||
  QgsVectorSimplifyMethod simplifyMethod;
 | 
			
		||||
  simplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  simplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
  lineLayer->setSimplifyMethod( simplifyMethod );
 | 
			
		||||
 | 
			
		||||
  QgsSimpleLineSymbolLayer *line = new QgsSimpleLineSymbolLayer;
 | 
			
		||||
 | 
			
		||||
@ -110,7 +110,7 @@ void TestQgsPointPatternFillSymbol::initTestCase()
 | 
			
		||||
                                     myPolyFileInfo.completeBaseName(), QStringLiteral( "ogr" ) );
 | 
			
		||||
 | 
			
		||||
  QgsVectorSimplifyMethod simplifyMethod;
 | 
			
		||||
  simplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  simplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
  mpPolysLayer->setSimplifyMethod( simplifyMethod );
 | 
			
		||||
 | 
			
		||||
  // Register the layer with the registry
 | 
			
		||||
@ -199,7 +199,7 @@ void TestQgsPointPatternFillSymbol::viewportPointPatternFillSymbol()
 | 
			
		||||
  QVERIFY( layer->isValid() );
 | 
			
		||||
 | 
			
		||||
  QgsVectorSimplifyMethod simplifyMethod;
 | 
			
		||||
  simplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  simplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
  layer->setSimplifyMethod( simplifyMethod );
 | 
			
		||||
 | 
			
		||||
  //setup gradient fill
 | 
			
		||||
@ -225,7 +225,7 @@ void TestQgsPointPatternFillSymbol::viewportPointPatternFillSymbolVector()
 | 
			
		||||
  QVERIFY( layer->isValid() );
 | 
			
		||||
 | 
			
		||||
  QgsVectorSimplifyMethod simplifyMethod;
 | 
			
		||||
  simplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  simplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
  layer->setSimplifyMethod( simplifyMethod );
 | 
			
		||||
 | 
			
		||||
  //setup gradient fill
 | 
			
		||||
 | 
			
		||||
@ -92,7 +92,7 @@ void TestQgsRasterFill::initTestCase()
 | 
			
		||||
                                     myPolyFileInfo.completeBaseName(), QStringLiteral( "ogr" ) );
 | 
			
		||||
 | 
			
		||||
  QgsVectorSimplifyMethod simplifyMethod;
 | 
			
		||||
  simplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  simplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
  mpPolysLayer->setSimplifyMethod( simplifyMethod );
 | 
			
		||||
 | 
			
		||||
  // Register the layer with the registry
 | 
			
		||||
 | 
			
		||||
@ -93,7 +93,7 @@ void TestQgsShapeburst::initTestCase()
 | 
			
		||||
                                     myPolyFileInfo.completeBaseName(), QStringLiteral( "ogr" ) );
 | 
			
		||||
 | 
			
		||||
  QgsVectorSimplifyMethod simplifyMethod;
 | 
			
		||||
  simplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  simplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
  mpPolysLayer->setSimplifyMethod( simplifyMethod );
 | 
			
		||||
 | 
			
		||||
  // Register the layer with the registry
 | 
			
		||||
@ -188,7 +188,7 @@ void TestQgsShapeburst::shapeburstSymbolFromQml()
 | 
			
		||||
{
 | 
			
		||||
  QVERIFY( setQml( "shapeburst" ) );
 | 
			
		||||
  QgsVectorSimplifyMethod simplifyMethod;
 | 
			
		||||
  simplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification );
 | 
			
		||||
  simplifyMethod.setSimplifyHints( Qgis::VectorRenderingSimplificationFlags() );
 | 
			
		||||
  mpPolysLayer->setSimplifyMethod( simplifyMethod );
 | 
			
		||||
  QVERIFY( imageCheck( "shapeburst_from_qml" ) );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user