Skip to content
Permalink
Browse files
Refactor enum handling
- Add enums to qgis.h instead of qgscoreenums, so that they belong to
a Qgis namespace
- Split up the various symbol headers into multiple files so that we
can fine-tune their inclusion and forward declare more readily, speeding
up recompilation
- Move QgsSymbol enums to qgis
  • Loading branch information
nyalldawson committed May 18, 2021
1 parent 239092e commit b5dfe8f1557800eaf10e455997a293628d72f0de
Showing 302 changed files with 3,873 additions and 3,111 deletions.
@@ -38,6 +38,8 @@ Constructor for QgsPoint3DSymbol with default QgsMarkerSymbol as the billboardSy
Copy Constructor for QgsPoint3DSymbol
%End

~QgsPoint3DSymbol();

static QgsAbstract3DSymbol *create() /Factory/;
%Docstring
Creates a new QgsPoint3DSymbol.
@@ -1,3 +1,61 @@
# The following has been generated automatically from src/core/qgis.h
QgsMapLayer.LayerType = QgsMapLayerType
# monkey patching scoped based enum
QgsMapLayer.VectorLayer = QgsMapLayerType.VectorLayer
QgsMapLayer.VectorLayer.__doc__ = ""
QgsMapLayer.RasterLayer = QgsMapLayerType.RasterLayer
QgsMapLayer.RasterLayer.__doc__ = ""
QgsMapLayer.PluginLayer = QgsMapLayerType.PluginLayer
QgsMapLayer.PluginLayer.__doc__ = ""
QgsMapLayer.MeshLayer = QgsMapLayerType.MeshLayer
QgsMapLayer.MeshLayer.__doc__ = "Added in 3.2"
QgsMapLayer.VectorTileLayer = QgsMapLayerType.VectorTileLayer
QgsMapLayer.VectorTileLayer.__doc__ = "Added in 3.14"
QgsMapLayer.AnnotationLayer = QgsMapLayerType.AnnotationLayer
QgsMapLayer.AnnotationLayer.__doc__ = "Contains freeform, georeferenced annotations. Added in QGIS 3.16"
QgsMapLayer.PointCloudLayer = QgsMapLayerType.PointCloudLayer
QgsMapLayer.PointCloudLayer.__doc__ = "Added in 3.18"
QgsMapLayerType.__doc__ = 'Types of layers that can be added to a map\n\n.. versionadded:: 3.8\n\n' + '* ``VectorLayer``: ' + QgsMapLayerType.VectorLayer.__doc__ + '\n' + '* ``RasterLayer``: ' + QgsMapLayerType.RasterLayer.__doc__ + '\n' + '* ``PluginLayer``: ' + QgsMapLayerType.PluginLayer.__doc__ + '\n' + '* ``MeshLayer``: ' + QgsMapLayerType.MeshLayer.__doc__ + '\n' + '* ``VectorTileLayer``: ' + QgsMapLayerType.VectorTileLayer.__doc__ + '\n' + '* ``AnnotationLayer``: ' + QgsMapLayerType.AnnotationLayer.__doc__ + '\n' + '* ``PointCloudLayer``: ' + QgsMapLayerType.PointCloudLayer.__doc__
# --
Qgis.DataType.baseClass = Qgis
Qgis.PythonMacroMode.baseClass = Qgis
QgsVectorDataProvider.FeatureCountState = Qgis.FeatureCountState
# monkey patching scoped based enum
QgsVectorDataProvider.Uncounted = Qgis.FeatureCountState.Uncounted
QgsVectorDataProvider.Uncounted.__doc__ = "Feature count not yet computed"
QgsVectorDataProvider.UnknownCount = Qgis.FeatureCountState.UnknownCount
QgsVectorDataProvider.UnknownCount.__doc__ = "Provider returned an unknown feature count"
Qgis.FeatureCountState.__doc__ = 'Enumeration of feature count states\n\n.. versionadded:: 3.20\n\n' + '* ``Uncounted``: ' + Qgis.FeatureCountState.Uncounted.__doc__ + '\n' + '* ``UnknownCount``: ' + Qgis.FeatureCountState.UnknownCount.__doc__
# --
QgsSymbol.SymbolType = Qgis.SymbolType
# monkey patching scoped based enum
QgsSymbol.Marker = Qgis.SymbolType.Marker
QgsSymbol.Marker.__doc__ = "Marker symbol"
QgsSymbol.Line = Qgis.SymbolType.Line
QgsSymbol.Line.__doc__ = "Line symbol"
QgsSymbol.Fill = Qgis.SymbolType.Fill
QgsSymbol.Fill.__doc__ = "Fill symbol"
QgsSymbol.Hybrid = Qgis.SymbolType.Hybrid
QgsSymbol.Hybrid.__doc__ = "Hybrid symbol"
Qgis.SymbolType.__doc__ = 'Symbol types\n\n.. versionadded:: 3.20\n\n' + '* ``Marker``: ' + Qgis.SymbolType.Marker.__doc__ + '\n' + '* ``Line``: ' + Qgis.SymbolType.Line.__doc__ + '\n' + '* ``Fill``: ' + Qgis.SymbolType.Fill.__doc__ + '\n' + '* ``Hybrid``: ' + Qgis.SymbolType.Hybrid.__doc__
# --
QgsSymbol.ScaleMethod = Qgis.ScaleMethod
# monkey patching scoped based enum
QgsSymbol.ScaleArea = Qgis.ScaleMethod.ScaleArea
QgsSymbol.ScaleArea.__doc__ = "Calculate scale by the area"
QgsSymbol.ScaleDiameter = Qgis.ScaleMethod.ScaleDiameter
QgsSymbol.ScaleDiameter.__doc__ = "Calculate scale by the diameter"
Qgis.ScaleMethod.__doc__ = 'Scale methods\n\n.. versionadded:: 3.20\n\n' + '* ``ScaleArea``: ' + Qgis.ScaleMethod.ScaleArea.__doc__ + '\n' + '* ``ScaleDiameter``: ' + Qgis.ScaleMethod.ScaleDiameter.__doc__
# --
QgsSymbol.RenderHint = Qgis.SymbolRenderHint
# monkey patching scoped based enum
QgsSymbol.DynamicRotation = Qgis.SymbolRenderHint.DynamicRotation
QgsSymbol.DynamicRotation.__doc__ = "Rotation of symbol may be changed during rendering and symbol should not be cached"
Qgis.SymbolRenderHint.__doc__ = 'Flags controlling behavior of symbols during rendering\n\n.. versionadded:: 3.20\n\n' + '* ``DynamicRotation``: ' + Qgis.SymbolRenderHint.DynamicRotation.__doc__
# --
QgsSymbol.PreviewFlag = Qgis.SymbolPreviewFlag
# monkey patching scoped based enum
QgsSymbol.FlagIncludeCrosshairsForMarkerSymbols = Qgis.SymbolPreviewFlag.FlagIncludeCrosshairsForMarkerSymbols
QgsSymbol.FlagIncludeCrosshairsForMarkerSymbols.__doc__ = "Include a crosshairs reference image in the background of marker symbol previews"
Qgis.SymbolPreviewFlag.__doc__ = 'Flags for controlling how symbol preview images are generated.\n\n.. versionadded:: 3.20\n\n' + '* ``FlagIncludeCrosshairsForMarkerSymbols``: ' + Qgis.SymbolPreviewFlag.FlagIncludeCrosshairsForMarkerSymbols.__doc__
# --

This file was deleted.

@@ -50,6 +50,8 @@ a :py:func:`~renderAnnotation` override.
Constructor for QgsAnnotation.
%End

~QgsAnnotation();

virtual QgsAnnotation *clone() const = 0 /Factory/;
%Docstring
Clones the annotation, returning a new copy of the annotation
@@ -9,6 +9,7 @@




class QgsBlurEffect : QgsPaintEffect /NoDefaultCtors/
{
%Docstring(signature="appended")
@@ -9,6 +9,7 @@




class QgsShadowEffect : QgsPaintEffect /NoDefaultCtors/
{
%Docstring(signature="appended")
@@ -8,6 +8,7 @@




class QgsColorRampLegendNode : QgsLayerTreeModelLegendNode
{
%Docstring(signature="appended")
@@ -29,7 +29,7 @@ A null QgsLegendPatchShape indicates that the default legend patch shape
should be used instead.
%End

QgsLegendPatchShape( QgsSymbol::SymbolType type,
QgsLegendPatchShape( Qgis::SymbolType type,
const QgsGeometry &geometry,
bool preserveAspectRatio = true );
%Docstring
@@ -50,14 +50,14 @@ Returns ``True`` if the patch shape is a null QgsLegendPatchShape,
which indicates that the default legend patch shape should be used instead.
%End

QgsSymbol::SymbolType symbolType() const;
Qgis::SymbolType symbolType() const;
%Docstring
Returns the symbol type associated with this patch.

.. seealso:: :py:func:`setSymbolType`
%End

void setSymbolType( QgsSymbol::SymbolType type );
void setSymbolType( Qgis::SymbolType type );
%Docstring
Sets the symbol ``type`` associated with this patch.

@@ -111,7 +111,7 @@ The default behavior is to respect the :py:func:`~QgsLegendPatchShape.geometry`'
.. seealso:: :py:func:`setPreserveAspectRatio`
%End

QList< QList< QPolygonF > > toQPolygonF( QgsSymbol::SymbolType type, QSizeF size ) const;
QList< QList< QPolygonF > > toQPolygonF( Qgis::SymbolType type, QSizeF size ) const;
%Docstring
Converts the patch shape to a set of QPolygonF objects representing
how the patch should be drawn for a symbol of the given ``type`` at the specified ``size`` (as
@@ -240,6 +240,7 @@ Constructor for QgsLayoutItemMapGrid.
:param name: friendly display name for grid
:param map: :py:class:`QgsLayoutItemMap` the grid is attached to
%End
~QgsLayoutItemMapGrid();

virtual void draw( QPainter *painter );

@@ -9,6 +9,7 @@




class QgsLayoutItemPolygon: QgsLayoutNodesItem
{
%Docstring(signature="appended")
@@ -33,6 +34,8 @@ Constructor for QgsLayoutItemPolygon for the specified ``polygon``
and ``layout``.
%End

~QgsLayoutItemPolygon();

static QgsLayoutItemPolygon *create( QgsLayout *layout ) /Factory/;
%Docstring
Returns a new polygon item for the specified ``layout``.
@@ -9,6 +9,7 @@




class QgsLayoutItemPolyline: QgsLayoutNodesItem
{
%Docstring(signature="appended")
@@ -33,6 +34,7 @@ Layout item for node based polyline shapes.
%Docstring
Constructor for QgsLayoutItemPolyline for the specified ``layout``.
%End
~QgsLayoutItemPolyline();

QgsLayoutItemPolyline( const QPolygonF &polyline, QgsLayout *layout );
%Docstring
@@ -34,6 +34,8 @@ Layout item for basic filled shapes (e.g. rectangles, ellipses).
Constructor for QgsLayoutItemShape, with the specified parent ``layout``.
%End

~QgsLayoutItemShape();

static QgsLayoutItemShape *create( QgsLayout *layout ) /Factory/;
%Docstring
Returns a new shape item for the specified ``layout``.
@@ -30,6 +30,7 @@ Constructor for QgsPointCloudExtentRenderer.
Optionally the ``symbol`` to use for showing the extent can be specified. If specified, ownership is
transferred to the renderer. If no ``symbol`` is specified a default one will be created instead.
%End
~QgsPointCloudExtentRenderer();

virtual QString type() const;

@@ -18,6 +18,17 @@
int QgisEvent = QEvent::User + 1;
%End

enum class QgsMapLayerType
{
VectorLayer,
RasterLayer,
PluginLayer,
MeshLayer,
VectorTileLayer,
AnnotationLayer,
PointCloudLayer,
};


class Qgis
{
@@ -100,6 +111,40 @@ The development version
NotForThisSession,
};

enum class FeatureCountState
{
Uncounted,
UnknownCount,
};

enum class SymbolType
{
Marker,
Line,
Fill,
Hybrid
};

enum class ScaleMethod
{
ScaleArea,
ScaleDiameter
};

enum class SymbolRenderHint
{
DynamicRotation,
};
typedef QFlags<Qgis::SymbolRenderHint> SymbolRenderHints;


enum class SymbolPreviewFlag
{
FlagIncludeCrosshairsForMarkerSymbols,
};
typedef QFlags<Qgis::SymbolPreviewFlag> SymbolPreviewFlags;


static const double DEFAULT_SEARCH_RADIUS_MM;

static const float DEFAULT_MAPTOPIXEL_THRESHOLD;
@@ -165,6 +210,12 @@ GEOS string version linked
%End
};

QFlags<Qgis::SymbolRenderHint> operator|(Qgis::SymbolRenderHint f1, QFlags<Qgis::SymbolRenderHint> f2);

QFlags<Qgis::SymbolPreviewFlag> operator|(Qgis::SymbolPreviewFlag f1, QFlags<Qgis::SymbolPreviewFlag> f2);






@@ -8,7 +8,6 @@




typedef QList<QgsConditionalStyle> QgsConditionalStyles;


@@ -98,6 +97,7 @@ Conditional styling for a rule.
QgsConditionalStyle();
QgsConditionalStyle( const QgsConditionalStyle &other );
QgsConditionalStyle( const QString &rule );
~QgsConditionalStyle();


bool matches( const QVariant &value, QgsExpressionContext &context ) const;

This file was deleted.

@@ -10,6 +10,7 @@




class QgsArrowSymbolLayer : QgsLineSymbolLayer
{
%Docstring(signature="appended")
@@ -39,6 +40,7 @@ Create a new QgsArrowSymbolLayer
virtual QgsArrowSymbolLayer *clone() const /Factory/;

virtual QgsSymbol *subSymbol();

virtual bool setSubSymbol( QgsSymbol *symbol /Transfer/ );

virtual QSet<QString> usedAttributes( const QgsRenderContext &context ) const;
@@ -42,6 +42,7 @@ The ``render`` argument indicates whether the category should initially be rende
%Docstring
Copy constructor.
%End
~QgsRendererCategory();

QVariant value() const;
%Docstring
@@ -422,7 +423,7 @@ Will return ``None`` if the functionality is disabled.
.. versionadded:: 3.0
%End

int matchToSymbols( QgsStyle *style, QgsSymbol::SymbolType type,
int matchToSymbols( QgsStyle *style, Qgis::SymbolType type,
QVariantList &unmatchedCategories /Out/, QStringList &unmatchedSymbols /Out/, bool caseSensitive = true, bool useTolerantMatch = false );
%Docstring
Replaces category symbols with the symbols from a ``style`` that have a matching

4 comments on commit b5dfe8f

@nirvn

This comment has been minimized.

Copy link
Contributor

@nirvn nirvn replied May 20, 2021

@nyalldawson , @m-kuhn , getting some errors when building on windows (vcpkg):

     7>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29910\include\memory(3283,1): error C2027: use of undefined type 'QgsMarkerSymbol' (compiling source file C:\src\buildtrees\qgis\src\e8deedbb4e-90da080a27.clean\src\core\callouts\qgscallout.cpp) [C:\src\buildtrees\qgis\x64-windows-dbg\src\core\qgis_core.vcxproj]
       C:\src\buildtrees\qgis\src\e8deedbb4e-90da080a27.clean\src\core\symbology\qgsfillsymbollayer.h(35): message : see declaration of 'QgsMarkerSymbol' (compiling source file C:\src\buildtrees\qgis\src\e8deedbb4e-90da080a27.clean\src\core\callouts\qgscallout.cpp) [C:\src\buildtrees\qgis\x64-windows-dbg\src\core\qgis_core.vcxproj]
       C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29910\include\memory(3282): message : while compiling class template member function 'void std::default_delete<QgsMarkerSymbol>::operator ()(_Ty *) noexcept const' [C:\src\buildtrees\qgis\x64-windows-dbg\src\core\qgis_core.vcxproj]
                 with
                 [
                     _Ty=QgsMarkerSymbol
                 ] (compiling source file C:\src\buildtrees\qgis\src\e8deedbb4e-90da080a27.clean\src\core\callouts\qgscallout.cpp)
@nyalldawson

This comment has been minimized.

Copy link
Collaborator Author

@nyalldawson nyalldawson replied May 20, 2021

@nirvn does adding "#include "qgsmarkersymbol.h" to qgscallout.cpp fix it?

@nirvn

This comment has been minimized.

Copy link
Contributor

@nirvn nirvn replied May 20, 2021

@nyalldawson , it errors out on a few dozen files.

@nirvn

This comment has been minimized.

Copy link
Contributor

@nirvn nirvn replied May 20, 2021

List:


  error C2027: use of undefined type 'QgsMarkerSymbol' (compiling source file [...]\src\core\callouts\qgscallout.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\callouts\qgscallout.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\classification\qgsclassificationmethod.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\classification\qgsclassificationmethod.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\classification\qgsclassificationprettybreaks.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\classification\qgsclassificationprettybreaks.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\classification\qgsclassificationstandarddeviation.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\classification\qgsclassificationstandarddeviation.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\classification\qgsclassificationlogarithmic.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\classification\qgsclassificationlogarithmic.cpp) 
  error C2027: use of undefined type 'QgsMarkerSymbol' (compiling source file [...]\src\core\symbology\qgs25drenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgs25drenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgscolorbrewerpalette.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgscolorbrewerpalette.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgscategorizedsymbolrenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgscategorizedsymbolrenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgscptcityarchive.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgscptcityarchive.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgsellipsesymbollayer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgsellipsesymbollayer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgsembeddedsymbolrenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgsembeddedsymbolrenderer.cpp) 
  error C2027: use of undefined type 'QgsMarkerSymbol' (compiling source file [...]\src\core\symbology\qgsfillsymbol.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgsfillsymbol.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgsfillsymbollayer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgsfillsymbollayer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgsheatmaprenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgsheatmaprenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgsgraduatedsymbolrenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgsgraduatedsymbolrenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgsinterpolatedlinerenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgsinterpolatedlinerenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgsinvertedpolygonrenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgsinvertedpolygonrenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgslinesymbol.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgslinesymbol.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgslinesymbollayer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgslinesymbollayer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgsmarkersymbol.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgsmarkersymbol.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgsmasksymbollayer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgsmasksymbollayer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgsmergedfeaturerenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgsmergedfeaturerenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgspointclusterrenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgspointclusterrenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgspointdisplacementrenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgspointdisplacementrenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgspointdistancerenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgspointdistancerenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgsrenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgsrenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgsrendererrange.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgsrendererrange.cpp) 
  error C2027: use of undefined type 'QgsMarkerSymbol' (compiling source file [...]\src\core\symbology\qgsrendererregistry.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgsrendererregistry.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgsstylemodel.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgsstylemodel.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgssvgcache.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgssvgcache.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgssymbollayer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgssymbollayer.cpp) 
  error C2027: use of undefined type 'QgsLineSymbol' (compiling source file [...]\src\core\symbology\qgssymbollayerregistry.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgssymbollayerregistry.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\symbology\qgsvectorfieldsymbollayer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\symbology\qgsvectorfieldsymbollayer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\diagram\qgshistogramdiagram.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\diagram\qgshistogramdiagram.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\diagram\qgsstackedbardiagram.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\diagram\qgsstackedbardiagram.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\effects\qgsblureffect.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\effects\qgsblureffect.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\effects\qgscoloreffect.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\effects\qgscoloreffect.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\effects\qgsgloweffect.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\effects\qgsgloweffect.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\effects\qgspainteffect.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\effects\qgspainteffect.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\effects\qgsshadoweffect.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\effects\qgsshadoweffect.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\effects\qgstransformeffect.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\effects\qgstransformeffect.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\layertree\qgscolorramplegendnode.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\layertree\qgscolorramplegendnode.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\layertree\qgslayertreelayer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\layertree\qgslayertreelayer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\layertree\qgslayertreemodel.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\layertree\qgslayertreemodel.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\layertree\qgslayertreemodellegendnode.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\layertree\qgslayertreemodellegendnode.cpp) 
  error C2027: use of undefined type 'QgsSymbol' (compiling source file [...]\src\core\layertree\qgslayertreefilterproxymodel.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\layertree\qgslayertreefilterproxymodel.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\layertree\qgslegendpatchshape.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\layertree\qgslegendpatchshape.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\annotations\qgsannotationlineitem.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\annotations\qgsannotationlineitem.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\annotations\qgsannotationmarkeritem.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\annotations\qgsannotationmarkeritem.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\annotations\qgsannotationmanager.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\annotations\qgsannotationmanager.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\annotations\qgssvgannotation.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\annotations\qgssvgannotation.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\expression\qgsexpressioncontextutils.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\expression\qgsexpressioncontextutils.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\expression\qgsexpressionfunction.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\expression\qgsexpressionfunction.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\processing\qgsprocessingparameters.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\processing\qgsprocessingparameters.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\processing\models\qgsprocessingmodelcomponent.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\processing\models\qgsprocessingmodelcomponent.cpp) 
  error C2027: use of undefined type 'QFontMetrics' (compiling source file [...]\src\core\providers\arcgis\qgsarcgisrestquery.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\providers\arcgis\qgsarcgisrestquery.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\providers\gdal\qgsgdaldataitems.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\providers\gdal\qgsgdaldataitems.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\providers\ogr\qgsogrdataitems.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\providers\ogr\qgsogrdataitems.cpp) 
  error C2027: use of undefined type 'QgsMarkerSymbol' (compiling source file [...]\src\core\scalebar\qgshollowscalebarrenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\scalebar\qgshollowscalebarrenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\scalebar\qgsscalebarrenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\scalebar\qgsscalebarrenderer.cpp) 
  error C2027: use of undefined type 'QgsMarkerSymbol' (compiling source file [...]\src\core\scalebar\qgsscalebarsettings.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\scalebar\qgsscalebarsettings.cpp) 
  error C2027: use of undefined type 'QgsLineSymbol' (compiling source file [...]\src\core\textrenderer\qgstextbackgroundsettings.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\textrenderer\qgstextbackgroundsettings.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\qgsapplication.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\qgsapplication.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\qgscolorramp.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\qgscolorramp.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\qgscolorscheme.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\qgscolorscheme.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\qgsconditionalstyle.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\qgsconditionalstyle.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\qgsdatadefinedsizelegend.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\qgsdatadefinedsizelegend.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\qgsdiagramrenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\qgsdiagramrenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\qgsmaphittest.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\qgsmaphittest.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\qgsmaplayerlegend.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\qgsmaplayerlegend.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\qgsmaprendererjob.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\qgsmaprendererjob.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\qgsproperty.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\qgsproperty.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\qgspropertytransformer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\qgspropertytransformer.cpp) 
  error C2027: use of undefined type 'QgsSymbol' (compiling source file [...]\src\core\qgsmapthemecollection.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\qgsmapthemecollection.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\qgsxmlutils.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\qgsxmlutils.cpp) 
  error C2027: use of undefined type 'QgsMarkerSymbol' (compiling source file [...]\src\core\dxf\qgsdxfexport.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\dxf\qgsdxfexport.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\layout\qgsabstractreportsection.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\layout\qgsabstractreportsection.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\layout\qgslayout.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\layout\qgslayout.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\layout\qgslayoutitem.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\layout\qgslayoutitem.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\layout\qgslayoutitemlegend.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\layout\qgslayoutitemlegend.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\layout\qgslayoutitemmap.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\layout\qgslayoutitemmap.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\layout\qgslayoutitemmapgrid.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\layout\qgslayoutitemmapgrid.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\layout\qgslayoutitemmarker.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\layout\qgslayoutitemmarker.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\layout\qgslayoutitemnodeitem.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\layout\qgslayoutitemnodeitem.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\layout\qgslayoutitempicture.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\layout\qgslayoutitempicture.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\layout\qgslayoutitempolyline.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\layout\qgslayoutitempolyline.cpp) 
  error C2027: use of undefined type 'QgsSymbol' (compiling source file [...]\src\core\layout\qgslayoutitemregistry.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\layout\qgslayoutitemregistry.cpp) 
  error C2027: use of undefined type 'QgsMarkerSymbol' (compiling source file [...]\src\core\layout\qgslayoutitemscalebar.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\layout\qgslayoutitemscalebar.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\layout\qgslayoutmanager.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\layout\qgslayoutmanager.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\layout\qgslayouttable.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\layout\qgslayouttable.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\layout\qgsprintlayout.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\layout\qgsprintlayout.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\project\qgsproject.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\project\qgsproject.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\raster\qgscolorrampshader.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\raster\qgscolorrampshader.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\raster\qgsrastercontourrenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\raster\qgsrastercontourrenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\raster\qgsrasterlayer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\raster\qgsrasterlayer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\raster\qgsrastershader.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\raster\qgsrastershader.cpp) 
  error C2027: use of undefined type 'QgsSymbol' (compiling source file [...]\src\core\raster\qgsmultibandcolorrenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\raster\qgsmultibandcolorrenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\raster\qgspalettedrasterrenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\raster\qgspalettedrasterrenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\raster\qgsrasterrenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\raster\qgsrasterrenderer.cpp) 
  error C2027: use of undefined type 'QgsSymbol' (compiling source file [...]\src\core\raster\qgssinglebandgrayrenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\raster\qgssinglebandgrayrenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\raster\qgssinglebandpseudocolorrenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\raster\qgssinglebandpseudocolorrenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\mesh\qgsmeshlayer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\mesh\qgsmeshlayer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\mesh\qgsmeshlayerrenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\mesh\qgsmeshlayerrenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\mesh\qgsmeshrenderersettings.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\mesh\qgsmeshrenderersettings.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\pointcloud\qgspointcloudattributebyramprenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\pointcloud\qgspointcloudattributebyramprenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\pointcloud\qgspointcloudclassifiedrenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\pointcloud\qgspointcloudclassifiedrenderer.cpp) 
  error C2027: use of undefined type 'QgsLineSymbol' (compiling source file [...]\src\core\pointcloud\qgspointcloudextentrenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\pointcloud\qgspointcloudextentrenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\pointcloud\qgspointcloudlayerrenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\pointcloud\qgspointcloudlayerrenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\pointcloud\qgspointcloudrenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\pointcloud\qgspointcloudrenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\labeling\qgslabelingenginesettings.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\labeling\qgslabelingenginesettings.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\labeling\qgsrulebasedlabeling.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\labeling\qgsrulebasedlabeling.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\labeling\qgspallabeling.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\labeling\qgspallabeling.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\labeling\qgsvectorlayerlabeling.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\labeling\qgsvectorlayerlabeling.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\vector\qgsvectorlayer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\vector\qgsvectorlayer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\vector\qgsvectorlayerrenderer.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\vector\qgsvectorlayerrenderer.cpp) 
  error C2027: use of undefined type 'QgsFillSymbol' (compiling source file [...]\src\core\vector\qgsvectorlayerutils.cpp) 
 : error C2338: can't delete an incomplete type (compiling source file [...]\src\core\vector\qgsvectorlayerutils.cpp) 
Please sign in to comment.