QGIS API Documentation  3.37.0-Master (a5b4d9743e8)
qgis.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgis.h - QGIS namespace
3  -------------------
4  begin : Sat Jun 30 2002
5  copyright : (C) 2002 by Gary E.Sherman
6  email : sherman at mrcc.com
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef QGIS_H
19 #define QGIS_H
20 
21 
22 #include <QMetaEnum>
23 #include <cfloat>
24 #include <memory>
25 #include <cmath>
26 
27 #include "qgis_core.h"
28 #include "qgis_sip.h"
29 
30 #ifdef SIP_RUN
31 % ModuleHeaderCode
32 #include <qgis.h>
33 % End
34 
35 % ModuleCode
36 int QgisEvent = QEvent::User + 1;
37 % End
38 #endif
39 
40 #ifndef SIP_RUN
41 // qHash implementation for scoped enum type
42 // https://gitlab.com/frostasm/programming-knowledge-base/-/snippets/20120
43 #define QHASH_FOR_CLASS_ENUM(T) \
44  inline uint qHash(const T &t, uint seed) { \
45  return ::qHash(static_cast<typename std::underlying_type<T>::type>(t), seed); \
46  }
47 #endif
48 
53 class CORE_EXPORT Qgis
54 {
55  Q_GADGET
56  Q_CLASSINFO( "RegisterEnumClassesUnscoped", "false" )
57 
58  public:
59 
65  static QString version();
66 
72  static int versionInt();
73 
79  static QString releaseName();
80 
82  static const char *QGIS_DEV_VERSION;
83 
89  static QString devVersion();
90 
91  // Enumerations
92  //
93 
99  {
100  Info = 0,
101  Warning = 1,
102  Critical = 2,
103  Success = 3,
104  NoLevel = 4,
105  };
106  Q_ENUM( MessageLevel )
107 
108 
114  {
115  Vector SIP_MONKEYPATCH_COMPAT_NAME( VectorLayer ),
116  Raster SIP_MONKEYPATCH_COMPAT_NAME( RasterLayer ),
117  Plugin SIP_MONKEYPATCH_COMPAT_NAME( PluginLayer ),
118  Mesh SIP_MONKEYPATCH_COMPAT_NAME( MeshLayer ),
119  VectorTile SIP_MONKEYPATCH_COMPAT_NAME( VectorTileLayer ),
120  Annotation SIP_MONKEYPATCH_COMPAT_NAME( AnnotationLayer ),
121  PointCloud SIP_MONKEYPATCH_COMPAT_NAME( PointCloudLayer ),
122  Group SIP_MONKEYPATCH_COMPAT_NAME( GroupLayer ),
123  TiledScene,
124  };
125  Q_ENUM( LayerType )
126 
127 
133  {
134  RasterLayer = 1,
135  NoGeometry = 2,
136  PointLayer = 4,
137  LineLayer = 8,
138  PolygonLayer = 16,
139  HasGeometry = PointLayer | LineLayer | PolygonLayer,
140  VectorLayer = NoGeometry | HasGeometry,
141  PluginLayer = 32,
142  WritableLayer = 64,
143  MeshLayer = 128,
144  VectorTileLayer = 256,
145  PointCloudLayer = 512,
146  AnnotationLayer = 1024,
147  TiledSceneLayer = 2048,
148  All = RasterLayer | VectorLayer | PluginLayer | MeshLayer | VectorTileLayer | PointCloudLayer | AnnotationLayer | TiledSceneLayer,
149  SpatialLayer = RasterLayer | HasGeometry | PluginLayer | MeshLayer | VectorTileLayer | PointCloudLayer | AnnotationLayer | TiledSceneLayer
150  };
151  Q_DECLARE_FLAGS( LayerFilters, LayerFilter )
152  Q_FLAG( LayerFilters )
153 
154 
182  {
183  Unknown = 0,
184  Point = 1,
185  LineString = 2,
186  Polygon = 3,
187  Triangle = 17,
188  MultiPoint = 4,
189  MultiLineString = 5,
190  MultiPolygon = 6,
191  GeometryCollection = 7,
192  CircularString = 8,
193  CompoundCurve = 9,
194  CurvePolygon = 10,
195  MultiCurve = 11,
196  MultiSurface = 12,
197  NoGeometry = 100,
198  PointZ = 1001,
199  LineStringZ = 1002,
200  PolygonZ = 1003,
201  TriangleZ = 1017,
202  MultiPointZ = 1004,
203  MultiLineStringZ = 1005,
204  MultiPolygonZ = 1006,
205  GeometryCollectionZ = 1007,
206  CircularStringZ = 1008,
207  CompoundCurveZ = 1009,
208  CurvePolygonZ = 1010,
209  MultiCurveZ = 1011,
210  MultiSurfaceZ = 1012,
211  PointM = 2001,
212  LineStringM = 2002,
213  PolygonM = 2003,
214  TriangleM = 2017,
215  MultiPointM = 2004,
216  MultiLineStringM = 2005,
217  MultiPolygonM = 2006,
218  GeometryCollectionM = 2007,
219  CircularStringM = 2008,
220  CompoundCurveM = 2009,
221  CurvePolygonM = 2010,
222  MultiCurveM = 2011,
223  MultiSurfaceM = 2012,
224  PointZM = 3001,
225  LineStringZM = 3002,
226  PolygonZM = 3003,
227  MultiPointZM = 3004,
228  MultiLineStringZM = 3005,
229  MultiPolygonZM = 3006,
230  GeometryCollectionZM = 3007,
231  CircularStringZM = 3008,
232  CompoundCurveZM = 3009,
233  CurvePolygonZM = 3010,
234  MultiCurveZM = 3011,
235  MultiSurfaceZM = 3012,
236  TriangleZM = 3017,
237  Point25D = 0x80000001,
238  LineString25D,
239  Polygon25D,
240  MultiPoint25D,
241  MultiLineString25D,
242  MultiPolygon25D
243  };
244  Q_ENUM( WkbType )
245 
246 
255  {
256  Point SIP_MONKEYPATCH_COMPAT_NAME( PointGeometry ),
257  Line SIP_MONKEYPATCH_COMPAT_NAME( LineGeometry ),
258  Polygon SIP_MONKEYPATCH_COMPAT_NAME( PolygonGeometry ),
259  Unknown SIP_MONKEYPATCH_COMPAT_NAME( UnknownGeometry ),
260  Null SIP_MONKEYPATCH_COMPAT_NAME( NullGeometry ),
261  };
262  Q_ENUM( GeometryType )
263 
264 
269  {
270  UnknownDataType = 0,
271  Byte = 1,
272  Int8 = 14,
273  UInt16 = 2,
274  Int16 = 3,
275  UInt32 = 4,
276  Int32 = 5,
277  Float32 = 6,
278  Float64 = 7,
279  CInt16 = 8,
280  CInt32 = 9,
281  CFloat32 = 10,
282  CFloat64 = 11,
283  ARGB32 = 12,
284  ARGB32_Premultiplied = 13
285  };
286  Q_ENUM( DataType )
287 
288 
293  enum class CaptureTechnique : int
294  {
295  StraightSegments,
296  CircularString,
297  Streaming,
298  Shape,
299  };
300  Q_ENUM( CaptureTechnique )
301 
302 
307  enum class VectorLayerTypeFlag : int SIP_ENUM_BASETYPE( IntFlag )
308  {
309  SqlQuery = 1 << 0
310  };
311  Q_ENUM( VectorLayerTypeFlag )
314  Q_FLAG( VectorLayerTypeFlags )
315 
321  {
322  Never = 0,
323  Ask = 1,
324  SessionOnly = 2,
325  Always = 3,
326  NotForThisSession,
327  };
328  Q_ENUM( PythonMacroMode )
329 
330 
336  {
337  Uncounted = -2,
338  UnknownCount = -1,
339  };
340  Q_ENUM( FeatureCountState )
341 
342 
349  {
350  Unknown SIP_MONKEYPATCH_COMPAT_NAME( SpatialIndexUnknown ) = 0,
351  NotPresent SIP_MONKEYPATCH_COMPAT_NAME( SpatialIndexNotPresent ) = 1,
352  Present SIP_MONKEYPATCH_COMPAT_NAME( SpatialIndexPresent ) = 2,
353  };
354  Q_ENUM( SpatialIndexPresence )
355 
356 
368  {
369  NoFeaturesAvailable = 0,
370  FeaturesAvailable,
371  FeaturesMaybeAvailable
372  };
373  Q_ENUM( FeatureAvailability )
374 
375 
381  {
382  EditAlias = 1 << 0,
383  EditComment = 1 << 1,
384  };
385 
386  Q_ENUM( VectorDataProviderAttributeEditCapability )
387 
388 
395 
401  {
402  Marker,
403  Line,
404  Fill,
405  Hybrid
406  };
407  Q_ENUM( SymbolType )
408 
409 
415  {
416  ScaleArea,
417  ScaleDiameter
418  };
419  Q_ENUM( ScaleMethod )
420 
421 
426  {
427  Custom,
428  Variant,
429  String,
430  StringList,
431  VariantMap,
432  Bool,
433  Integer,
434  Double,
435  EnumFlag,
436  Color
437  };
438  Q_ENUM( SettingsType )
439 
440 
445  {
446  Root,
447  Standard,
448  NamedList,
449  };
450  Q_ENUM( SettingsTreeNodeType )
451 
452 
456  enum class SettingsTreeNodeOption : int SIP_ENUM_BASETYPE( IntFlag )
457  {
458  NamedListSelectedItemSetting = 1 << 0,
459  };
460 
461  Q_ENUM( SettingsTreeNodeOption )
463  Q_FLAG( SettingsTreeNodeOptions )
464 
473  {
474  Invalid SIP_MONKEYPATCH_COMPAT_NAME( InvalidProperty ),
475  Static SIP_MONKEYPATCH_COMPAT_NAME( StaticProperty ),
476  Field SIP_MONKEYPATCH_COMPAT_NAME( FieldBasedProperty ),
477  Expression SIP_MONKEYPATCH_COMPAT_NAME( ExpressionBasedProperty ),
478  };
479  Q_ENUM( PropertyType )
480 
481 
486  enum class SldExportOption : int SIP_ENUM_BASETYPE( IntFlag )
487  {
488  NoOptions = 0,
489  Svg = 1 << 0,
490  Png = 1 << 1,
491  };
492  Q_ENUM( SldExportOption )
493  Q_DECLARE_FLAGS( SldExportOptions, SldExportOption )
494  Q_FLAG( SldExportOptions )
495 
501  enum class SldExportVendorExtension : int SIP_ENUM_BASETYPE( IntFlag )
502  {
503  NoVendorExtension = 0,
504  GeoServerVendorExtension = 1 << 1,
505  DeegreeVendorExtension = 1 << 2,
506  };
507  Q_ENUM( SldExportVendorExtension )
508 
509 
510 
514  enum class SettingsOption : int SIP_ENUM_BASETYPE( IntFlag )
515  {
516  SaveFormerValue = 1 << 1, //<! Save the former value of the settings
517  SaveEnumFlagAsInt = 1 << 2,
518  };
519  Q_ENUM( SettingsOption )
520  Q_DECLARE_FLAGS( SettingsOptions, SettingsOption )
521  Q_FLAG( SettingsOptions )
522 
528  {
529  ActiveLayer = 1,
530  AllLayers = 2,
531  AdvancedConfiguration = 3,
532  };
533  Q_ENUM( SnappingMode )
534 
535 
540  {
541  NoSnap SIP_MONKEYPATCH_COMPAT_NAME( NoSnapFlag ) = 0,
542  Vertex SIP_MONKEYPATCH_COMPAT_NAME( VertexFlag ) = 1 << 0,
543  Segment SIP_MONKEYPATCH_COMPAT_NAME( SegmentFlag ) = 1 << 1,
544  Area SIP_MONKEYPATCH_COMPAT_NAME( AreaFlag ) = 1 << 2,
545  Centroid SIP_MONKEYPATCH_COMPAT_NAME( CentroidFlag ) = 1 << 3,
546  MiddleOfSegment SIP_MONKEYPATCH_COMPAT_NAME( MiddleOfSegmentFlag ) = 1 << 4,
547  LineEndpoint SIP_MONKEYPATCH_COMPAT_NAME( LineEndpointFlag ) = 1 << 5,
548  };
549  Q_ENUM( SnappingType )
552  Q_FLAG( SnappingTypes )
553 
560  {
561  DynamicRotation = 2,
562  };
563  Q_ENUM( SymbolRenderHint )
566  Q_FLAG( SymbolRenderHints )
567 
573  enum class SymbolRotationMode : int
574  {
575  RespectMapRotation,
576  IgnoreMapRotation,
577  };
578  Q_ENUM( SymbolRotationMode )
579 
580 
585  enum class SymbolFlag : int SIP_ENUM_BASETYPE( IntFlag )
586  {
587  RendererShouldUseSymbolLevels = 1 << 0,
588  };
589  Q_ENUM( SymbolFlag )
591  Q_DECLARE_FLAGS( SymbolFlags, SymbolFlag )
592  Q_FLAG( SymbolFlags )
593 
600  {
601  FlagIncludeCrosshairsForMarkerSymbols = 1 << 0,
602  };
603  Q_ENUM( SymbolPreviewFlag )
606  Q_FLAG( SymbolPreviewFlags )
607 
617  enum class SymbolLayerFlag : int SIP_ENUM_BASETYPE( IntFlag )
618  {
619  DisableFeatureClipping = 1 << 0,
620  };
621  Q_ENUM( SymbolLayerFlag )
623  Q_DECLARE_FLAGS( SymbolLayerFlags, SymbolLayerFlag )
624  Q_FLAG( SymbolLayerFlags )
625 
635  enum class SymbolLayerUserFlag : int SIP_ENUM_BASETYPE( IntFlag )
636  {
637  DisableSelectionRecoloring = 1 << 0,
638  };
639  Q_ENUM( SymbolLayerUserFlag )
640 
641 
647  Q_FLAG( SymbolLayerUserFlags )
648 
655  {
656  Collection,
657  Directory,
658  Layer,
659  Error,
660  Favorites,
661  Project,
662  Custom,
663  Fields,
664  Field,
665  };
666  Q_ENUM( BrowserItemType )
667 
668 
674  {
675  NotPopulated,
676  Populating,
677  Populated,
678  };
679  Q_ENUM( BrowserItemState )
680 
681 
687  {
688  NoCapabilities = 0,
689  SetCrs = 1 << 0,
690  Fertile = 1 << 1,
691  Fast = 1 << 2,
692  Collapse = 1 << 3,
693  Rename = 1 << 4,
694  Delete = 1 << 5,
695  ItemRepresentsFile = 1 << 6,
696  RefreshChildrenWhenItemIsRefreshed = 1 << 7,
697  };
698  Q_ENUM( BrowserItemCapability )
701  Q_FLAG( BrowserItemCapabilities )
702 
711  {
712  NoCapabilities SIP_MONKEYPATCH_COMPAT_NAME( NoDataCapabilities ) = 0,
713  Files SIP_MONKEYPATCH_COMPAT_NAME( File ) = 1,
714  Directories SIP_MONKEYPATCH_COMPAT_NAME( Dir ) = 1 << 1,
715  Databases SIP_MONKEYPATCH_COMPAT_NAME( Database ) = 1 << 2,
716  NetworkSources SIP_MONKEYPATCH_COMPAT_NAME( Net ) = 1 << 3,
717  };
718  Q_ENUM( DataItemProviderCapability )
719 
720 
729 
736  {
737  NoType,
738  Vector,
739  Raster,
740  Point,
741  Line,
742  Polygon,
743  TableLayer,
744  Database,
745  Table,
746  Plugin,
747  Mesh,
748  VectorTile,
749  PointCloud,
750  TiledScene,
751  };
752  Q_ENUM( BrowserLayerType )
753 
754 
759  enum class BrowserDirectoryMonitoring : int
760  {
761  Default,
762  NeverMonitor,
763  AlwaysMonitor,
764  };
765  Q_ENUM( BrowserDirectoryMonitoring )
766 
767 
771  enum class HttpMethod : int
772  {
773  Get = 0,
774  Post = 1
775  };
776  Q_ENUM( HttpMethod )
777 
778 
784  {
785  Success SIP_MONKEYPATCH_COMPAT_NAME( NoError ) = 0,
786  ErrorCreatingDataSource SIP_MONKEYPATCH_COMPAT_NAME( ErrCreateDataSource ),
787  ErrorCreatingLayer SIP_MONKEYPATCH_COMPAT_NAME( ErrCreateLayer ),
788  ErrorAttributeTypeUnsupported SIP_MONKEYPATCH_COMPAT_NAME( ErrAttributeTypeUnsupported ),
789  ErrorAttributeCreationFailed SIP_MONKEYPATCH_COMPAT_NAME( ErrAttributeCreationFailed ),
790  ErrorProjectingFeatures SIP_MONKEYPATCH_COMPAT_NAME( ErrProjection ),
791  ErrorFeatureWriteFailed SIP_MONKEYPATCH_COMPAT_NAME( ErrFeatureWriteFailed ),
792  ErrorInvalidLayer SIP_MONKEYPATCH_COMPAT_NAME( ErrInvalidLayer ),
793  ErrorInvalidProvider SIP_MONKEYPATCH_COMPAT_NAME( ErrInvalidProvider ),
794  ErrorProviderUnsupportedFeature SIP_MONKEYPATCH_COMPAT_NAME( ErrProviderUnsupportedFeature ),
795  ErrorConnectionFailed SIP_MONKEYPATCH_COMPAT_NAME( ErrConnectionFailed ),
796  UserCanceled SIP_MONKEYPATCH_COMPAT_NAME( ErrUserCanceled ),
797  };
798  Q_ENUM( VectorExportResult )
799 
800 
804  enum class VectorFileWriterCapability : int SIP_ENUM_BASETYPE( IntFlag )
805  {
806  FieldAliases = 1 << 0,
807  FieldComments = 1 << 2,
808  };
809  Q_ENUM( VectorFileWriterCapability )
810 
811 
817 
823  {
824  SubsetStringFilter = 1 << 1,
825  GeometryColumn = 1 << 2,
826  PrimaryKeys = 1 << 3,
827  UnstableFeatureIds = 1 << 4
828  };
829  Q_ENUM( SqlLayerDefinitionCapability )
833 
839  enum class SqlKeywordCategory : int
840  {
841  Keyword,
842  Constant,
843  Function,
844  Geospatial,
845  Operator,
846  Math,
847  Aggregate,
848  String,
849  Identifier
850  };
851  Q_ENUM( SqlKeywordCategory )
852 
853 
857  enum class DriveType : int
858  {
859  Unknown,
860  Invalid,
861  Removable,
862  Fixed,
863  Remote,
864  CdRom,
865  RamDisk,
866  Cloud,
867  };
868  Q_ENUM( DriveType )
869 
870 
875  {
876  Deferred SIP_MONKEYPATCH_COMPAT_NAME( DownloadLater ),
877  Immediate SIP_MONKEYPATCH_COMPAT_NAME( DownloadImmediately ),
878  };
879  Q_ENUM( ActionStart )
880 
881 
886  enum class UnplacedLabelVisibility : int
887  {
888  FollowEngineSetting,
889  NeverShow,
890  };
891  Q_ENUM( UnplacedLabelVisibility )
892 
893 
898  enum class LabelOverlapHandling : int
899  {
900  PreventOverlap,
901  AllowOverlapIfRequired,
902  AllowOverlapAtNoCost,
903  };
904  Q_ENUM( LabelOverlapHandling )
905 
906 
914  {
915  AroundPoint,
916  OverPoint,
917  Line,
918  Curved,
919  Horizontal,
920  Free,
921  OrderedPositionsAroundPoint,
922  PerimeterCurved,
923  OutsidePolygons,
924  };
925  Q_ENUM( LabelPlacement )
926 
927 
935  {
936  TopLeft,
937  TopSlightlyLeft,
938  TopMiddle,
939  TopSlightlyRight,
940  TopRight,
941  MiddleLeft,
942  MiddleRight,
943  BottomLeft,
944  BottomSlightlyLeft,
945  BottomMiddle,
946  BottomSlightlyRight,
947  BottomRight,
948  };
949  Q_ENUM( LabelPredefinedPointPosition )
950 
951 
960  {
961  FromPoint,
962  FromSymbolBounds,
963  };
964  Q_ENUM( LabelOffsetType )
965 
966 
974  {
975  AboveLeft SIP_MONKEYPATCH_COMPAT_NAME( QuadrantAboveLeft ),
976  Above SIP_MONKEYPATCH_COMPAT_NAME( QuadrantAbove ),
977  AboveRight SIP_MONKEYPATCH_COMPAT_NAME( QuadrantAboveRight ),
978  Left SIP_MONKEYPATCH_COMPAT_NAME( QuadrantLeft ),
979  Over SIP_MONKEYPATCH_COMPAT_NAME( QuadrantOver ),
980  Right SIP_MONKEYPATCH_COMPAT_NAME( QuadrantRight ),
981  BelowLeft SIP_MONKEYPATCH_COMPAT_NAME( QuadrantBelowLeft ),
982  Below SIP_MONKEYPATCH_COMPAT_NAME( QuadrantBelow ),
983  BelowRight SIP_MONKEYPATCH_COMPAT_NAME( QuadrantBelowRight ),
984  };
985  Q_ENUM( LabelQuadrantPosition )
986 
987 
994  {
995  OnLine = 1,
996  AboveLine = 2,
997  BelowLine = 4,
998  MapOrientation = 8,
999  };
1000  Q_ENUM( LabelLinePlacementFlag )
1001 
1002 
1010  Q_FLAG( LabelLinePlacementFlags )
1011 
1019  {
1020  AllowPlacementOutsideOfPolygon = 1 << 0,
1021  AllowPlacementInsideOfPolygon = 1 << 1,
1022  };
1023  Q_ENUM( LabelPolygonPlacementFlag )
1024 
1025 
1032  Q_FLAG( LabelPolygonPlacementFlags )
1033 
1042  {
1043  FlipUpsideDownLabels SIP_MONKEYPATCH_COMPAT_NAME( Upright ),
1044  AllowUpsideDownWhenRotationIsDefined SIP_MONKEYPATCH_COMPAT_NAME( ShowDefined ),
1045  AlwaysAllowUpsideDown SIP_MONKEYPATCH_COMPAT_NAME( ShowAll )
1046  };
1047  Q_ENUM( UpsideDownLabelHandling )
1048 
1049 
1057  {
1058  Left SIP_MONKEYPATCH_COMPAT_NAME( MultiLeft ) = 0,
1059  Center SIP_MONKEYPATCH_COMPAT_NAME( MultiCenter ),
1060  Right SIP_MONKEYPATCH_COMPAT_NAME( MultiRight ),
1061  FollowPlacement SIP_MONKEYPATCH_COMPAT_NAME( MultiFollowPlacement ),
1062  Justify SIP_MONKEYPATCH_COMPAT_NAME( MultiJustify ),
1063  };
1064  Q_ENUM( LabelMultiLineAlignment )
1065 
1066 
1073  {
1074  Vector SIP_MONKEYPATCH_COMPAT_NAME( FilterVector ) = 1,
1075  Raster SIP_MONKEYPATCH_COMPAT_NAME( FilterRaster ),
1076  Mesh SIP_MONKEYPATCH_COMPAT_NAME( FilterMesh ),
1077  MeshDataset SIP_MONKEYPATCH_COMPAT_NAME( FilterMeshDataset ),
1078  PointCloud SIP_MONKEYPATCH_COMPAT_NAME( FilterPointCloud ),
1079  VectorTile,
1080  TiledScene,
1081  };
1082  Q_ENUM( FileFilterType )
1083 
1084 
1089  enum class SublayerQueryFlag : int SIP_ENUM_BASETYPE( IntFlag )
1090  {
1091  FastScan = 1 << 0,
1092  ResolveGeometryType = 1 << 1,
1093  CountFeatures = 1 << 2,
1094  IncludeSystemTables = 1 << 3,
1095  };
1098  Q_ENUM( SublayerQueryFlag )
1099  Q_FLAG( SublayerQueryFlags )
1100 
1101 
1106  enum class SublayerFlag : int SIP_ENUM_BASETYPE( IntFlag )
1107  {
1108  SystemTable = 1 << 0,
1109  };
1111  Q_DECLARE_FLAGS( SublayerFlags, SublayerFlag )
1112  Q_ENUM( SublayerFlag )
1113  Q_FLAG( SublayerFlags )
1114 
1115 
1121  {
1122  Unknown SIP_MONKEYPATCH_COMPAT_NAME( UnknownRole ) = 0,
1123  Provider SIP_MONKEYPATCH_COMPAT_NAME( ProviderRole ) = 1,
1124  Renderer SIP_MONKEYPATCH_COMPAT_NAME( RendererRole ) = 2,
1125  Brightness SIP_MONKEYPATCH_COMPAT_NAME( BrightnessRole ) = 3,
1126  Resampler SIP_MONKEYPATCH_COMPAT_NAME( ResamplerRole ) = 4,
1127  Projector SIP_MONKEYPATCH_COMPAT_NAME( ProjectorRole ) = 5,
1128  Nuller SIP_MONKEYPATCH_COMPAT_NAME( NullerRole ) = 6,
1129  HueSaturation SIP_MONKEYPATCH_COMPAT_NAME( HueSaturationRole ) = 7,
1130  };
1131  Q_ENUM( RasterPipeInterfaceRole )
1132 
1133 
1138  {
1140  ResampleFilter,
1142  Provider
1143  };
1144  Q_ENUM( RasterResamplingStage )
1145 
1146 
1151  enum class RasterRendererFlag : int SIP_ENUM_BASETYPE( IntFlag )
1152  {
1153  InternalLayerOpacityHandling = 1 << 0,
1154  };
1155 
1162 
1163  Q_ENUM( RasterRendererFlag )
1164  Q_FLAG( RasterRendererFlags )
1165 
1166 
1172  {
1173  Generic = 0,
1174  PixelCount = 1,
1175  Name = 2,
1176  Min = 3,
1177  Max = 4,
1178  MinMax = 5,
1179  Red = 6,
1180  Green = 7,
1181  Blue = 8,
1182  Alpha = 9,
1183  RedMin = 10,
1184  GreenMin = 11,
1185  BlueMin = 12,
1186  AlphaMin = 13,
1187  RedMax = 14,
1188  GreenMax = 15,
1189  BlueMax = 16,
1190  AlphaMax = 17,
1191  MaxCount
1192  };
1193  Q_ENUM( RasterAttributeTableFieldUsage )
1194 
1195 
1200  enum class RasterAttributeTableType : int
1201  {
1202  Thematic = 0,
1203  Athematic = 1
1204  };
1205  Q_ENUM( RasterAttributeTableType )
1206 
1207 
1214  {
1215  Raw = 0,
1216  RenderedImage SIP_MONKEYPATCH_COMPAT_NAME( Image ) = 1
1217  };
1218  Q_ENUM( RasterExportType )
1219 
1220 
1227  {
1228  Success SIP_MONKEYPATCH_COMPAT_NAME( NoError ) = 0,
1229  SourceProviderError = 1,
1230  DestinationProviderError SIP_MONKEYPATCH_COMPAT_NAME( DestProviderError ) = 2,
1231  CreateDatasourceError = 3,
1232  WriteError = 4,
1233  NoDataConflict = 5,
1234  Canceled SIP_MONKEYPATCH_COMPAT_NAME( WriteCanceled ) = 6,
1235  };
1236  Q_ENUM( RasterFileWriterResult )
1237 
1238 
1243  enum class MeshEditingErrorType : int
1244  {
1245  NoError,
1246  InvalidFace,
1247  TooManyVerticesInFace,
1248  FlatFace,
1249  UniqueSharedVertex,
1250  InvalidVertex,
1251  ManifoldFace,
1252  };
1253  Q_ENUM( MeshEditingErrorType )
1254 
1255 
1260  enum class FilePathType : int
1261  {
1262  Absolute,
1263  Relative,
1264  };
1265  Q_ENUM( FilePathType )
1266 
1267 
1272  enum class SublayerPromptMode : int
1273  {
1274  AlwaysAsk,
1275  AskExcludingRasterBands,
1276  NeverAskSkip,
1277  NeverAskLoadAll,
1278  };
1279  Q_ENUM( SublayerPromptMode )
1280 
1281 
1288  enum class FieldConfigurationFlag : int SIP_ENUM_BASETYPE( IntFlag )
1289  {
1290  NoFlag = 0,
1291  NotSearchable = 1 << 1,
1292  HideFromWms = 1 << 2,
1293  HideFromWfs = 1 << 3,
1294  };
1295  Q_ENUM( FieldConfigurationFlag )
1296 
1297 
1305  Q_FLAG( FieldConfigurationFlags )
1306 
1312  enum class FieldMetadataProperty : int
1313  {
1314  GeometryCrs = 0x1000,
1315  GeometryWkbType = 0x1001,
1316  CustomProperty = 0x100000,
1317  };
1318  Q_ENUM( FieldMetadataProperty )
1319 
1320 
1325  enum class SelectionRenderingMode : int
1326  {
1327  Default,
1328  CustomColor,
1329  CustomSymbol,
1330  };
1331  Q_ENUM( SelectionRenderingMode )
1332 
1333 
1339  {
1340  SetSelection,
1341  AddToSelection,
1342  IntersectSelection,
1343  RemoveFromSelection,
1344  };
1345  Q_ENUM( SelectBehavior )
1346 
1347 
1353  {
1354  Intersect,
1355  Within,
1356  };
1357  Q_ENUM( SelectGeometryRelationship )
1358 
1359 
1364  enum class SelectionFlag : int SIP_ENUM_BASETYPE( IntFlag )
1365  {
1366  SingleFeatureSelection = 1 << 0,
1367  ToggleSelection = 1 << 1,
1368  };
1369 
1375  Q_DECLARE_FLAGS( SelectionFlags, SelectionFlag )
1376 
1377  Q_ENUM( SelectionFlag )
1378  Q_FLAG( SelectionFlags )
1379 
1380 
1386  {
1387  Success = 0,
1388  EmptyGeometry = 1,
1389  EditFailed = 2,
1390  FetchFeatureFailed = 3,
1391  InvalidLayer = 4,
1392  };
1393  Q_ENUM( VectorEditResult )
1394 
1395 
1401  {
1402  SemiTransparentCircle,
1403  Cross,
1404  NoMarker,
1405  };
1406  Q_ENUM( VertexMarkerType )
1407 
1408 
1412  enum class ContentStatus : int
1413  {
1414  NotStarted,
1415  Running,
1416  Finished,
1417  Failed,
1418  Canceled,
1419  };
1420  Q_ENUM( ContentStatus )
1421 
1422 
1427  enum class GpsConnectionType : int
1428  {
1429  Automatic,
1430  Internal,
1431  Serial,
1432  Gpsd,
1433  };
1434  Q_ENUM( GpsConnectionType )
1435 
1436 
1441  enum class DeviceConnectionStatus SIP_MONKEYPATCH_SCOPEENUM_UNNEST( Qgis, GpsConnectionStatus ) : int
1442  {
1443  Disconnected,
1444  Connecting,
1445  Connected,
1446  };
1447  Q_ENUM( DeviceConnectionStatus )
1448 
1449 
1457  {
1458  NoData,
1459  NoFix,
1460  Fix2D,
1461  Fix3D
1462  };
1464 
1465 
1472  {
1473  Unknown,
1474  Gps,
1475  Glonass,
1476  Galileo,
1477  BeiDou,
1478  Qzss,
1479  Navic,
1480  Sbas,
1481  };
1483 
1490  {
1491  Unknown = -1,
1492  Invalid,
1493  GPS,
1494  DGPS,
1495  PPS,
1496  RTK,
1497  FloatRTK,
1498  Estimated,
1499  Manual,
1500  Simulation,
1501  };
1502  Q_ENUM( GpsQualityIndicator )
1503 
1504 
1509  enum class GpsInformationComponent : int SIP_ENUM_BASETYPE( IntFlag )
1510  {
1511  Location = 1 << 0,
1512  Altitude = 1 << 1,
1513  GroundSpeed = 1 << 2,
1514  Bearing = 1 << 3,
1515  TotalTrackLength = 1 << 4,
1516  TrackDistanceFromStart = 1 << 5,
1517  Pdop = 1 << 6,
1518  Hdop = 1 << 7,
1519  Vdop = 1 << 8,
1520  HorizontalAccuracy = 1 << 9,
1521  VerticalAccuracy = 1 << 10,
1522  HvAccuracy = 1 << 11,
1523  SatellitesUsed = 1 << 12,
1524  Timestamp = 1 << 13,
1525  TrackStartTime = 1 << 14,
1526  TrackEndTime = 1 << 15,
1527  TrackDistanceSinceLastPoint = 1 << 16,
1528  TrackTimeSinceLastPoint = 1 << 17,
1529  GeoidalSeparation = 1 << 18,
1530  EllipsoidAltitude = 1 << 19,
1531  };
1532 
1539  Q_ENUM( GpsInformationComponent )
1540  Q_FLAG( GpsInformationComponents )
1541 
1542 
1547  enum class BabelFormatCapability : int SIP_ENUM_BASETYPE( IntFlag )
1548  {
1549  Import = 1 << 0,
1550  Export = 1 << 1,
1551  Waypoints = 1 << 2,
1552  Routes = 1 << 3,
1553  Tracks = 1 << 4,
1554  };
1557  Q_ENUM( BabelFormatCapability )
1558  Q_FLAG( BabelFormatCapabilities )
1559 
1560 
1566  enum class BabelCommandFlag : int SIP_ENUM_BASETYPE( IntFlag )
1567  {
1568  QuoteFilePaths = 1 << 0,
1569  };
1572  Q_ENUM( BabelCommandFlag )
1573  Q_FLAG( BabelCommandFlags )
1574 
1575 
1580  enum class GpsFeatureType : int
1581  {
1582  Waypoint,
1583  Route,
1584  Track,
1585  };
1586  Q_ENUM( GpsFeatureType )
1587 
1588 
1596  {
1597  Success = 0,
1598  NothingHappened = 1000,
1599  InvalidBaseGeometry,
1600  InvalidInputGeometryType,
1601  SelectionIsEmpty,
1602  SelectionIsGreaterThanOne,
1603  GeometryEngineError,
1604  LayerNotEditable,
1605  // Add part issues
1606  AddPartSelectedGeometryNotFound,
1607  AddPartNotMultiGeometry,
1608  // Add ring issues
1609  AddRingNotClosed,
1610  AddRingNotValid,
1611  AddRingCrossesExistingRings,
1612  AddRingNotInExistingFeature,
1613  // Split features
1614  SplitCannotSplitPoint,
1615  GeometryTypeHasChanged,
1616  };
1617  Q_ENUM( GeometryOperationResult )
1618 
1619 
1625  {
1626  AllowSelfTouchingHoles SIP_MONKEYPATCH_COMPAT_NAME( FlagAllowSelfTouchingHoles ) = 1 << 0,
1627  };
1630  Q_ENUM( GeometryValidityFlag )
1631  Q_FLAG( GeometryValidityFlags )
1632 
1633 
1638  {
1639  QgisInternal SIP_MONKEYPATCH_COMPAT_NAME( ValidatorQgisInternal ),
1640  Geos SIP_MONKEYPATCH_COMPAT_NAME( ValidatorGeos ),
1641  };
1642  Q_ENUM( GeometryValidationEngine )
1643 
1644 
1650  {
1651  Left SIP_MONKEYPATCH_COMPAT_NAME( SideLeft ) = 0,
1652  Right SIP_MONKEYPATCH_COMPAT_NAME( SideRight ),
1653  };
1654  Q_ENUM( BufferSide )
1655 
1656 
1662  {
1663  Round SIP_MONKEYPATCH_COMPAT_NAME( CapRound ) = 1,
1664  Flat SIP_MONKEYPATCH_COMPAT_NAME( CapFlat ),
1665  Square SIP_MONKEYPATCH_COMPAT_NAME( CapSquare ),
1666  };
1667  Q_ENUM( EndCapStyle )
1668 
1669 
1675  {
1676  Round SIP_MONKEYPATCH_COMPAT_NAME( JoinStyleRound ) = 1,
1677  Miter SIP_MONKEYPATCH_COMPAT_NAME( JoinStyleMiter ),
1678  Bevel SIP_MONKEYPATCH_COMPAT_NAME( JoinStyleBevel ),
1679  };
1680  Q_ENUM( JoinStyle )
1681 
1682 
1687  enum class CoverageValidityResult : int
1688  {
1689  Invalid = 0,
1690  Valid = 1,
1691  Error = 2,
1692  };
1693  Q_ENUM( CoverageValidityResult )
1694 
1695 
1700  enum class MakeValidMethod : int
1701  {
1702  Linework = 0,
1703  Structure = 1,
1704  };
1705  Q_ENUM( MakeValidMethod )
1706 
1707 
1715  {
1716  NoFlags = 0,
1717  NoGeometry = 1,
1718  SubsetOfAttributes = 2,
1719  ExactIntersect = 4,
1720  IgnoreStaticNodesDuringExpressionCompilation = 8,
1721  EmbeddedSymbols = 16,
1722  };
1723  Q_ENUM( FeatureRequestFlag )
1724 
1725 
1733  Q_FLAG( FeatureRequestFlags )
1734 
1743  {
1744  NoFilter SIP_MONKEYPATCH_COMPAT_NAME( FilterNone ),
1745  Fid SIP_MONKEYPATCH_COMPAT_NAME( FilterFid ),
1746  Expression SIP_MONKEYPATCH_COMPAT_NAME( FilterExpression ),
1747  Fids SIP_MONKEYPATCH_COMPAT_NAME( FilterFids )
1748  };
1749  Q_ENUM( FeatureRequestFilterType )
1750 
1751 
1759  {
1760  NoCheck SIP_MONKEYPATCH_COMPAT_NAME( GeometryNoCheck ) = 0,
1761  SkipInvalid SIP_MONKEYPATCH_COMPAT_NAME( GeometrySkipInvalid ) = 1,
1762  AbortOnInvalid SIP_MONKEYPATCH_COMPAT_NAME( GeometryAbortOnInvalid ) = 2,
1763  };
1764  Q_ENUM( InvalidGeometryCheck )
1765 
1766 
1771  enum class SpatialFilterType : int
1772  {
1773  NoFilter,
1774  BoundingBox,
1775  DistanceWithin,
1776  };
1777  Q_ENUM( SpatialFilterType )
1778 
1779 
1784  enum class FileOperationFlag : int SIP_ENUM_BASETYPE( IntFlag )
1785  {
1786  IncludeMetadataFile = 1 << 0,
1787  IncludeStyleFile = 1 << 1,
1788  };
1791  Q_ENUM( FileOperationFlag )
1792  Q_FLAG( FileOperationFlags )
1793 
1794 
1799  enum class MapLayerProperty : int SIP_ENUM_BASETYPE( IntFlag )
1800  {
1801  UsersCannotToggleEditing = 1 << 0,
1802  IsBasemapLayer = 1 << 1,
1803  };
1806  Q_ENUM( MapLayerProperty )
1807  Q_FLAG( MapLayerProperties )
1808 
1809 
1814  enum class AutoRefreshMode : int
1815  {
1816  Disabled = 0,
1817  ReloadData = 1,
1818  RedrawOnly = 2,
1819  };
1820  Q_ENUM( AutoRefreshMode )
1821 
1822 
1827  enum class DataProviderFlag : int SIP_ENUM_BASETYPE( IntFlag )
1828  {
1829  IsBasemapSource = 1 << 1,
1830  FastExtent2D = 1 << 2,
1831  FastExtent3D = 1 << 3,
1832  };
1835  Q_ENUM( DataProviderFlag )
1836  Q_FLAG( DataProviderFlags )
1837 
1838 
1845  enum class CrsType : int
1846  {
1847  Unknown,
1848  Geodetic,
1849  Geocentric,
1850  Geographic2d,
1851  Geographic3d,
1852  Vertical,
1853  Projected,
1854  Compound,
1855  Temporal,
1856  Engineering,
1857  Bound,
1858  Other,
1859  DerivedProjected,
1860  };
1861  Q_ENUM( CrsType )
1862 
1863 
1870  enum class CrsAxisDirection : int
1871  {
1872  North,
1873  NorthNorthEast,
1874  NorthEast,
1875  EastNorthEast,
1876  East,
1877  EastSouthEast,
1878  SouthEast,
1879  SouthSouthEast,
1880  South,
1881  SouthSouthWest,
1882  SouthWest,
1883  WestSouthWest,
1884  West,
1885  WestNorthWest,
1886  NorthWest,
1887  NorthNorthWest,
1888  GeocentricX,
1889  GeocentricY,
1890  GeocentricZ,
1891  Up,
1892  Down,
1893  Forward,
1894  Aft,
1895  Port,
1896  Starboard,
1897  Clockwise,
1898  CounterClockwise,
1899  ColumnPositive,
1900  ColumnNegative,
1901  RowPositive,
1902  RowNegative,
1903  DisplayRight,
1904  DisplayLeft,
1905  DisplayUp,
1906  DisplayDown,
1907  Future,
1908  Past,
1909  Towards,
1910  AwayFrom,
1911  Unspecified,
1912  };
1913  Q_ENUM( CrsAxisDirection )
1914 
1915 
1920  enum class CoordinateOrder : int
1921  {
1922  Default,
1923  XY,
1924  YX,
1925  };
1926  Q_ENUM( CoordinateOrder )
1927 
1928 
1936  {
1937  ShortString,
1938  MediumString,
1939  FullString,
1940  };
1941  Q_ENUM( CrsIdentifierType )
1942 
1943 
1951  {
1952  Wkt1Gdal SIP_MONKEYPATCH_COMPAT_NAME( WKT1_GDAL ),
1953  Wkt1Esri SIP_MONKEYPATCH_COMPAT_NAME( WKT1_ESRI ),
1954  Wkt2_2015 SIP_MONKEYPATCH_COMPAT_NAME( WKT2_2015 ),
1955  Wkt2_2015Simplified SIP_MONKEYPATCH_COMPAT_NAME( WKT2_2015_SIMPLIFIED ),
1956  Wkt2_2019 SIP_MONKEYPATCH_COMPAT_NAME( WKT2_2019 ),
1957  Wkt2_2019Simplified SIP_MONKEYPATCH_COMPAT_NAME( WKT2_2019_SIMPLIFIED ),
1958  Preferred SIP_MONKEYPATCH_COMPAT_NAME( WKT_PREFERRED ) = Wkt2_2019,
1959  PreferredSimplified SIP_MONKEYPATCH_COMPAT_NAME( WKT_PREFERRED_SIMPLIFIED ) = Wkt2_2019Simplified,
1960  PreferredGdal SIP_MONKEYPATCH_COMPAT_NAME( WKT_PREFERRED_GDAL ) = Wkt2_2019,
1961  };
1962  Q_ENUM( CrsWktVariant )
1963 
1964 
1969  enum class Axis : int
1970  {
1971  X,
1972  Y,
1973  Z
1974  };
1975  Q_ENUM( Axis )
1976 
1977 
1982  enum class AnnotationItemFlag : int SIP_ENUM_BASETYPE( IntFlag )
1983  {
1984  ScaleDependentBoundingBox = 1 << 0,
1985  };
1988  Q_ENUM( AnnotationItemFlag )
1989  Q_FLAG( AnnotationItemFlags )
1990 
1991 
1996  enum class AnnotationItemGuiFlag : int SIP_ENUM_BASETYPE( IntFlag )
1997  {
1998  FlagNoCreationTools = 1 << 0,
1999  };
2002  Q_ENUM( AnnotationItemGuiFlag )
2003  Q_FLAG( AnnotationItemGuiFlags )
2004 
2005 
2010  enum class AnnotationItemNodeType : int
2011  {
2012  VertexHandle,
2013  };
2014  Q_ENUM( AnnotationItemNodeType )
2015 
2016 
2022  {
2023  Success,
2024  Invalid,
2025  ItemCleared,
2026  };
2027  Q_ENUM( AnnotationItemEditOperationResult )
2028 
2029 
2037  {
2038  Disabled SIP_MONKEYPATCH_COMPAT_NAME( NavigationOff ),
2039  Animated,
2040  FixedRange,
2041  Movie,
2042  };
2043  Q_ENUM( TemporalNavigationMode )
2044 
2045 
2053  {
2054  Forward,
2055  Reverse,
2056  Idle,
2057  };
2058  Q_ENUM( AnimationState )
2059 
2060 
2065  enum class PlaybackOperation : int
2066  {
2067  SkipToStart,
2068  PreviousFrame,
2069  PlayReverse,
2070  Pause,
2071  PlayForward,
2072  NextFrame,
2073  SkipToEnd,
2074  };
2075  Q_ENUM( PlaybackOperation )
2076 
2077 
2083  {
2084  FixedTemporalRange SIP_MONKEYPATCH_COMPAT_NAME( ModeFixedTemporalRange ) = 0,
2085  FeatureDateTimeInstantFromField SIP_MONKEYPATCH_COMPAT_NAME( ModeFeatureDateTimeInstantFromField ),
2086  FeatureDateTimeStartAndEndFromFields SIP_MONKEYPATCH_COMPAT_NAME( ModeFeatureDateTimeStartAndEndFromFields ),
2087  FeatureDateTimeStartAndDurationFromFields SIP_MONKEYPATCH_COMPAT_NAME( ModeFeatureDateTimeStartAndDurationFromFields ),
2088  FeatureDateTimeStartAndEndFromExpressions SIP_MONKEYPATCH_COMPAT_NAME( ModeFeatureDateTimeStartAndEndFromExpressions ),
2089  RedrawLayerOnly SIP_MONKEYPATCH_COMPAT_NAME( ModeRedrawLayerOnly ),
2090  };
2091  Q_ENUM( VectorTemporalMode )
2092 
2093 
2098  enum class VectorTemporalLimitMode : int
2099  {
2100  IncludeBeginExcludeEnd = 0,
2101  IncludeBeginIncludeEnd,
2102  };
2103  Q_ENUM( VectorTemporalLimitMode )
2104 
2105 
2111  {
2112  HasFixedTemporalRange SIP_MONKEYPATCH_COMPAT_NAME( ProviderHasFixedTemporalRange ) = 0,
2113  StoresFeatureDateTimeInstantInField SIP_MONKEYPATCH_COMPAT_NAME( ProviderStoresFeatureDateTimeInstantInField ),
2114  StoresFeatureDateTimeStartAndEndInSeparateFields SIP_MONKEYPATCH_COMPAT_NAME( ProviderStoresFeatureDateTimeStartAndEndInSeparateFields ),
2115  };
2116  Q_ENUM( VectorDataProviderTemporalMode )
2117 
2118 
2124  {
2125  FixedTemporalRange SIP_MONKEYPATCH_COMPAT_NAME( ModeFixedTemporalRange ) = 0,
2126  TemporalRangeFromDataProvider SIP_MONKEYPATCH_COMPAT_NAME( ModeTemporalRangeFromDataProvider ) = 1,
2127  RedrawLayerOnly SIP_MONKEYPATCH_COMPAT_NAME( ModeRedrawLayerOnly ) = 2,
2128  };
2129  Q_ENUM( RasterTemporalMode )
2130 
2131 
2137  {
2138  MatchUsingWholeRange,
2139  MatchExactUsingStartOfRange,
2140  MatchExactUsingEndOfRange,
2141  FindClosestMatchToStartOfRange,
2142  FindClosestMatchToEndOfRange
2143  };
2144  Q_ENUM( TemporalIntervalMatchMethod )
2145 
2146 
2152  {
2153  RequestedTimesMustExactlyMatchAllAvailableTemporalRanges = 1 << 0,
2154  };
2155  Q_ENUM( RasterTemporalCapabilityFlag )
2156 
2157 
2164 
2171  {
2172  Forward SIP_MONKEYPATCH_COMPAT_NAME( ForwardTransform ),
2173  Reverse SIP_MONKEYPATCH_COMPAT_NAME( ReverseTransform )
2174  };
2175  Q_ENUM( TransformDirection )
2176 
2177 
2183  {
2184  BallparkTransformsAreAppropriate = 1 << 0,
2185  IgnoreImpossibleTransformations = 1 << 1,
2186  };
2187  Q_ENUM( CoordinateTransformationFlag )
2188 
2189 
2196 
2203  {
2204  Antialiasing = 0x01,
2205  DrawEditingInfo = 0x02,
2206  ForceVectorOutput = 0x04,
2207  UseAdvancedEffects = 0x08,
2208  DrawLabeling = 0x10,
2209  UseRenderingOptimization = 0x20,
2210  DrawSelection = 0x40,
2211  DrawSymbolBounds = 0x80,
2212  RenderMapTile = 0x100,
2213  RenderPartialOutput = 0x200,
2214  RenderPreviewJob = 0x400,
2215  RenderBlocking = 0x800,
2216  LosslessImageRendering = 0x1000,
2217  Render3DMap = 0x2000,
2218  HighQualityImageTransforms = 0x4000,
2219  SkipSymbolRendering = 0x8000,
2220  ForceRasterMasks = 0x10000,
2221  RecordProfile = 0x20000,
2222  };
2225  Q_ENUM( MapSettingsFlag )
2226  Q_FLAG( MapSettingsFlags )
2227 
2228 
2234  {
2235  DrawEditingInfo = 0x01,
2236  ForceVectorOutput = 0x02,
2237  UseAdvancedEffects = 0x04,
2238  UseRenderingOptimization = 0x08,
2239  DrawSelection = 0x10,
2240  DrawSymbolBounds = 0x20,
2241  RenderMapTile = 0x40,
2242  Antialiasing = 0x80,
2243  RenderPartialOutput = 0x100,
2244  RenderPreviewJob = 0x200,
2245  RenderBlocking = 0x400,
2246  RenderSymbolPreview = 0x800,
2247  LosslessImageRendering = 0x1000,
2248  ApplyScalingWorkaroundForTextRendering = 0x2000,
2249  Render3DMap = 0x4000,
2250  ApplyClipAfterReprojection = 0x8000,
2251  RenderingSubSymbol = 0x10000,
2252  HighQualityImageTransforms = 0x20000,
2253  SkipSymbolRendering = 0x40000,
2254  RecordProfile = 0x80000,
2255  };
2258  Q_ENUM( RenderContextFlag )
2259  Q_FLAG( RenderContextFlags )
2260 
2261 
2266  enum class MapLayerRendererFlag : int SIP_ENUM_BASETYPE( IntFlag )
2267  {
2268  RenderPartialOutputs = 1 << 0,
2269  RenderPartialOutputOverPreviousCachedImage = 1 << 1,
2270  };
2271  Q_ENUM( MapLayerRendererFlag )
2272 
2273 
2279  Q_FLAG( MapLayerRendererFlags )
2280 
2281  // refs for below dox: https://github.com/qgis/QGIS/pull/1286#issuecomment-39806854
2282  // https://github.com/qgis/QGIS/pull/8573#issuecomment-445585826
2283 
2289  {
2290  AlwaysOutlines SIP_MONKEYPATCH_COMPAT_NAME( TextFormatAlwaysOutlines ),
2291  AlwaysText SIP_MONKEYPATCH_COMPAT_NAME( TextFormatAlwaysText ),
2292  };
2293  Q_ENUM( TextRenderFormat )
2294 
2295 
2303  {
2304  UseAllLabels = 1 << 1,
2305  UsePartialCandidates = 1 << 2,
2306  // TODO QGIS 4.0: remove
2307  RenderOutlineLabels = 1 << 3,
2308  DrawLabelRectOnly = 1 << 4,
2309  DrawCandidates = 1 << 5,
2310  DrawUnplacedLabels = 1 << 6,
2311  CollectUnplacedLabels = 1 << 7,
2312  DrawLabelMetrics = 1 << 8,
2313  };
2314  Q_ENUM( LabelingFlag )
2315 
2316 
2324  Q_FLAG( LabelingFlags )
2325 
2334  {
2335  Version1 SIP_MONKEYPATCH_COMPAT_NAME( PlacementEngineVersion1 ),
2336  Version2 SIP_MONKEYPATCH_COMPAT_NAME( PlacementEngineVersion2 ),
2337  };
2338  Q_ENUM( LabelPlacementEngineVersion )
2339 
2340 
2348  {
2349  Horizontal SIP_MONKEYPATCH_COMPAT_NAME( HorizontalOrientation ),
2350  Vertical SIP_MONKEYPATCH_COMPAT_NAME( VerticalOrientation ),
2351  RotationBased SIP_MONKEYPATCH_COMPAT_NAME( RotationBasedOrientation ),
2352  };
2353  Q_ENUM( TextOrientation )
2354 
2355 
2363  {
2364  Rectangle SIP_MONKEYPATCH_COMPAT_NAME( Rect ),
2365  Point,
2366  Labeling SIP_MONKEYPATCH_COMPAT_NAME( Label ),
2367  RectangleCapHeightBased,
2368  RectangleAscentBased,
2369  };
2370  Q_ENUM( TextLayoutMode )
2371 
2372 
2380  {
2381  Text,
2382  Buffer,
2383  Background,
2384  Shadow,
2385  };
2386  Q_ENUM( TextComponent )
2387 
2388 
2396  {
2397  Left SIP_MONKEYPATCH_COMPAT_NAME( AlignLeft ),
2398  Center SIP_MONKEYPATCH_COMPAT_NAME( AlignCenter ),
2399  Right SIP_MONKEYPATCH_COMPAT_NAME( AlignRight ),
2400  Justify SIP_MONKEYPATCH_COMPAT_NAME( AlignJustify ),
2401  };
2402  Q_ENUM( TextHorizontalAlignment )
2403 
2404 
2415  {
2416  Top SIP_MONKEYPATCH_COMPAT_NAME( AlignTop ),
2417  VerticalCenter SIP_MONKEYPATCH_COMPAT_NAME( AlignVCenter ),
2418  Bottom SIP_MONKEYPATCH_COMPAT_NAME( AlignBottom ),
2419  };
2420  Q_ENUM( TextVerticalAlignment )
2421 
2422 
2431  {
2432  Normal,
2433  SuperScript,
2434  SubScript,
2435  };
2436  Q_ENUM( TextCharacterVerticalAlignment )
2437 
2438 
2444  {
2445  Generic,
2446  ShadowOffset,
2447  BlurSize,
2448  GlowSpread,
2449  };
2450  Q_ENUM( RenderSubcomponentProperty )
2451 
2452 
2457  {
2458  Segment SIP_MONKEYPATCH_COMPAT_NAME( SegmentVertex ) = 1,
2459  Curve SIP_MONKEYPATCH_COMPAT_NAME( CurveVertex ) = 2,
2460  };
2461  Q_ENUM( VertexType )
2462 
2463 
2471  {
2472  Square,
2473  Diamond,
2474  Pentagon,
2475  Hexagon,
2476  Triangle,
2477  EquilateralTriangle,
2478  Star,
2479  Arrow,
2480  Circle,
2481  Cross,
2482  CrossFill,
2483  Cross2,
2484  Line,
2485  ArrowHead,
2486  ArrowHeadFilled,
2487  SemiCircle,
2488  ThirdCircle,
2489  QuarterCircle,
2490  QuarterSquare,
2491  HalfSquare,
2492  DiagonalHalfSquare,
2493  RightHalfTriangle,
2494  LeftHalfTriangle,
2495  Octagon,
2496  SquareWithCorners,
2497  AsteriskFill,
2498  HalfArc,
2499  ThirdArc,
2500  QuarterArc,
2501  ParallelogramRight,
2502  ParallelogramLeft,
2503  Trapezoid,
2504  Shield,
2505  DiamondStar,
2506  Heart,
2507  Decagon,
2508  RoundedSquare,
2509  };
2510  Q_ENUM( MarkerShape )
2511 
2512 
2520  {
2521  Interval = 1 << 0,
2522  Vertex = 1 << 1,
2523  LastVertex = 1 << 2,
2524  FirstVertex = 1 << 3,
2525  CentralPoint = 1 << 4,
2526  CurvePoint = 1 << 5,
2527  SegmentCenter = 1 << 6,
2528  InnerVertices = 1 << 7,
2529  };
2530  Q_ENUM( MarkerLinePlacement )
2532  Q_FLAG( MarkerLinePlacements )
2533 
2542  {
2543  SimpleTwoColor,
2544  ColorRamp,
2545  };
2546  Q_ENUM( GradientColorSource )
2547 
2548 
2556  {
2557  Linear,
2558  Radial,
2559  Conical,
2560  };
2561  Q_ENUM( GradientType )
2562 
2563 
2571  {
2572  Feature,
2573  Viewport,
2574  };
2575  Q_ENUM( SymbolCoordinateReference )
2576 
2577 
2586  {
2587  Pad,
2588  Reflect,
2589  Repeat,
2590  };
2591  Q_ENUM( GradientSpread )
2592 
2593 
2601  {
2602  Absolute SIP_MONKEYPATCH_COMPAT_NAME( AbsoluteCount ),
2603  DensityBased SIP_MONKEYPATCH_COMPAT_NAME( DensityBasedCount ),
2604  };
2605  Q_ENUM( PointCountMethod )
2606 
2607 
2612  enum class MarkerClipMode : int
2613  {
2614  NoClipping,
2615  Shape,
2616  CentroidWithin,
2617  CompletelyWithin,
2618  };
2619  Q_ENUM( MarkerClipMode )
2620 
2621 
2626  enum class LineClipMode : int
2627  {
2628  ClipPainterOnly,
2629  ClipToIntersection,
2630  NoClipping,
2631  };
2632  Q_ENUM( LineClipMode )
2633 
2634 
2639  enum class DashPatternLineEndingRule : int
2640  {
2641  NoRule,
2642  FullDash,
2643  HalfDash,
2644  FullGap,
2645  HalfGap,
2646  };
2647  Q_ENUM( DashPatternLineEndingRule )
2648 
2649 
2654  enum class DashPatternSizeAdjustment : int
2655  {
2656  ScaleBothDashAndGap,
2657  ScaleDashOnly,
2658  ScaleGapOnly,
2659  };
2660  Q_ENUM( DashPatternSizeAdjustment )
2661 
2662 
2670  {
2671  Color SIP_MONKEYPATCH_COMPAT_NAME( GraduatedColor ),
2672  Size SIP_MONKEYPATCH_COMPAT_NAME( GraduatedSize ),
2673  };
2674  Q_ENUM( GraduatedMethod )
2675 
2676 
2682  {
2683  NoLabels,
2684  EveryLabel,
2685  FirstLabel,
2686  LastLabel,
2687  FirstAndLastLabels,
2688  };
2689  Q_ENUM( PlotAxisSuffixPlacement )
2690 
2691 
2695  enum class DpiMode
2696  {
2697  All = 7,
2698  Off = 0,
2699  QGIS = 1,
2700  UMN = 2,
2701  GeoServer = 4,
2702  };
2703  Q_ENUM( DpiMode )
2704 
2705 
2709  enum class TilePixelRatio
2710  {
2711  Undefined = 0,
2712  StandardDpi = 1,
2713  HighDpi = 2,
2714  };
2715  Q_ENUM( TilePixelRatio )
2716 
2717  // NOTE -- the hardcoded numbers here must match QFont::Capitalization!
2718 
2719 
2727  {
2728  MixedCase = 0,
2729  AllUppercase = 1,
2730  AllLowercase = 2,
2731  ForceFirstLetterToCapital = 4,
2732  SmallCaps = 5,
2733  TitleCase = 1004,
2734  UpperCamelCase = 1005,
2735  AllSmallCaps = 1006,
2736  };
2737  Q_ENUM( Capitalization )
2738 
2739 
2744  enum class TextRendererFlag : int SIP_ENUM_BASETYPE( IntFlag )
2745  {
2746  WrapLines = 1 << 0,
2747  };
2748  Q_ENUM( TextRendererFlag )
2750  Q_FLAG( TextRendererFlags )
2751 
2758  {
2759  MapBox,
2760  Esri,
2761  };
2763 
2770  {
2771  Clockwise,
2772  CounterClockwise,
2773  NoOrientation,
2774  };
2775  Q_ENUM( AngularDirection )
2776 
2777 
2782  enum class RendererUsage : int
2783  {
2784  View,
2785  Export,
2786  Unknown,
2787  };
2788  Q_ENUM( RendererUsage )
2789 
2790 
2795  enum class ViewSyncModeFlag : int SIP_ENUM_BASETYPE( IntFlag )
2796  {
2797  Sync3DTo2D = 1 << 0,
2798  Sync2DTo3D = 1 << 1,
2799  };
2800  Q_ENUM( ViewSyncModeFlag )
2802 
2809  {
2810  Always,
2811  WhenOutsideVisibleExtent,
2812  Never,
2813  };
2814  Q_ENUM( MapRecenteringMode )
2815 
2816 
2821  enum class HistoryProviderBackend : int SIP_ENUM_BASETYPE( IntFlag )
2822  {
2823  LocalProfile = 1 << 0,
2824 // Project = 1 << 1, //!< QGIS Project (not yet implemented)
2825  };
2826  Q_ENUM( HistoryProviderBackend )
2828  Q_FLAG( HistoryProviderBackends )
2829 
2838  {
2839  MapLayer SIP_MONKEYPATCH_COMPAT_NAME( TypeMapLayer ) = -2,
2840  VectorAnyGeometry SIP_MONKEYPATCH_COMPAT_NAME( TypeVectorAnyGeometry ) = -1,
2841  VectorPoint SIP_MONKEYPATCH_COMPAT_NAME( TypeVectorPoint ) = 0,
2842  VectorLine SIP_MONKEYPATCH_COMPAT_NAME( TypeVectorLine ) = 1,
2843  VectorPolygon SIP_MONKEYPATCH_COMPAT_NAME( TypeVectorPolygon ) = 2,
2844  Raster SIP_MONKEYPATCH_COMPAT_NAME( TypeRaster ) = 3,
2845  File SIP_MONKEYPATCH_COMPAT_NAME( TypeFile ) = 4,
2846  Vector SIP_MONKEYPATCH_COMPAT_NAME( TypeVector ) = 5,
2847  Mesh SIP_MONKEYPATCH_COMPAT_NAME( TypeMesh ) = 6,
2848  Plugin SIP_MONKEYPATCH_COMPAT_NAME( TypePlugin ) = 7,
2849  PointCloud SIP_MONKEYPATCH_COMPAT_NAME( TypePointCloud ) = 8,
2850  Annotation SIP_MONKEYPATCH_COMPAT_NAME( TypeAnnotation ) = 9,
2851  VectorTile SIP_MONKEYPATCH_COMPAT_NAME( TypeVectorTile ) = 10
2852  };
2853  Q_ENUM( ProcessingSourceType )
2854 
2855 
2856 
2864  {
2865  DeemphasiseSearchResults SIP_MONKEYPATCH_COMPAT_NAME( FlagDeemphasiseSearchResults ) = 1 << 1,
2866  CompatibleWithVirtualRaster SIP_MONKEYPATCH_COMPAT_NAME( FlagCompatibleWithVirtualRaster ) = 1 << 2,
2867  };
2869 
2878  Q_FLAG( ProcessingProviderFlags )
2879 
2880 
2888  {
2889  HideFromToolbox SIP_MONKEYPATCH_COMPAT_NAME( FlagHideFromToolbox ) = 1 << 1,
2890  HideFromModeler SIP_MONKEYPATCH_COMPAT_NAME( FlagHideFromModeler ) = 1 << 2,
2891  SupportsBatch SIP_MONKEYPATCH_COMPAT_NAME( FlagSupportsBatch ) = 1 << 3,
2892  CanCancel SIP_MONKEYPATCH_COMPAT_NAME( FlagCanCancel ) = 1 << 4,
2893  RequiresMatchingCrs SIP_MONKEYPATCH_COMPAT_NAME( FlagRequiresMatchingCrs ) = 1 << 5,
2894  NoThreading SIP_MONKEYPATCH_COMPAT_NAME( FlagNoThreading ) = 1 << 6,
2895  DisplayNameIsLiteral SIP_MONKEYPATCH_COMPAT_NAME( FlagDisplayNameIsLiteral ) = 1 << 7,
2896  SupportsInPlaceEdits SIP_MONKEYPATCH_COMPAT_NAME( FlagSupportsInPlaceEdits ) = 1 << 8,
2897  KnownIssues SIP_MONKEYPATCH_COMPAT_NAME( FlagKnownIssues ) = 1 << 9,
2898  CustomException SIP_MONKEYPATCH_COMPAT_NAME( FlagCustomException ) = 1 << 10,
2899  PruneModelBranchesBasedOnAlgorithmResults SIP_MONKEYPATCH_COMPAT_NAME( FlagPruneModelBranchesBasedOnAlgorithmResults ) = 1 << 11,
2900  SkipGenericModelLogging SIP_MONKEYPATCH_COMPAT_NAME( FlagSkipGenericModelLogging ) = 1 << 12,
2901  NotAvailableInStandaloneTool SIP_MONKEYPATCH_COMPAT_NAME( FlagNotAvailableInStandaloneTool ) = 1 << 13,
2902  RequiresProject SIP_MONKEYPATCH_COMPAT_NAME( FlagRequiresProject ) = 1 << 14,
2903  Deprecated SIP_MONKEYPATCH_COMPAT_NAME( FlagDeprecated ) = HideFromToolbox | HideFromModeler,
2904  };
2906 
2915  Q_FLAG( ProcessingAlgorithmFlags )
2916 
2917 
2926  {
2927  NotAvailable,
2928  Available,
2929  };
2930  Q_ENUM( ProcessingPropertyAvailability )
2931 
2932 
2940  {
2941  DefaultLevel = 0,
2942  Verbose,
2943  ModelDebug,
2944  };
2945  Q_ENUM( ProcessingLogLevel )
2946 
2947 
2955  {
2956  OverrideDefaultGeometryCheck SIP_MONKEYPATCH_COMPAT_NAME( FlagOverrideDefaultGeometryCheck ) = 1 << 0,
2957  CreateIndividualOutputPerInputFeature SIP_MONKEYPATCH_COMPAT_NAME( FlagCreateIndividualOutputPerInputFeature ) = 1 << 1,
2958  };
2959  Q_ENUM( ProcessingFeatureSourceDefinitionFlag )
2960 
2961 
2970 
2979  {
2980  SkipGeometryValidityChecks SIP_MONKEYPATCH_COMPAT_NAME( FlagSkipGeometryValidityChecks ) = 1 << 1,
2981  };
2982  Q_ENUM( ProcessingFeatureSourceFlag )
2983 
2984 
2993 
3005  {
3006  ExposeToModeler = 1
3007  };
3008  Q_ENUM( ProcessingParameterTypeFlag )
3009 
3010 
3022 
3031  {
3032  Advanced SIP_MONKEYPATCH_COMPAT_NAME( FlagAdvanced ) = 1 << 1,
3033  Hidden SIP_MONKEYPATCH_COMPAT_NAME( FlagHidden ) = 1 << 2,
3034  Optional SIP_MONKEYPATCH_COMPAT_NAME( FlagOptional ) = 1 << 3,
3035  IsModelOutput SIP_MONKEYPATCH_COMPAT_NAME( FlagIsModelOutput ) = 1 << 4,
3036  };
3037  Q_ENUM( ProcessingParameterFlag )
3038 
3039 
3047  Q_FLAG( ProcessingParameterFlags )
3048 
3057  {
3058  File = 0,
3059  Folder,
3060  };
3061  Q_ENUM( ProcessingFileParameterBehavior )
3062 
3063 
3071  {
3072  Integer,
3073  Double,
3074  };
3075  Q_ENUM( ProcessingNumberParameterType )
3076 
3077 
3085  {
3086  Any = -1,
3087  Numeric = 0,
3088  String = 1,
3089  DateTime = 2,
3090  Binary = 3,
3091  Boolean = 4,
3092  };
3093  Q_ENUM( ProcessingFieldParameterDataType )
3094 
3095 
3103  {
3104  DateTime,
3105  Date,
3106  Time,
3107  };
3108  Q_ENUM( ProcessingDateTimeParameterDataType )
3109 
3110 
3116  {
3117  ModelParameter,
3118  ChildOutput,
3119  StaticValue,
3120  Expression,
3121  ExpressionText,
3122  ModelOutput,
3123  };
3124  Q_ENUM( ProcessingModelChildParameterSource )
3125 
3126 
3134  {
3135  Vertices,
3136  StructureLines,
3137  BreakLines
3138  };
3139  Q_ENUM( ProcessingTinInputLayerType )
3140 
3141 
3147  {
3148  Wkt SIP_MONKEYPATCH_COMPAT_NAME( FormatWkt ),
3149  Proj SIP_MONKEYPATCH_COMPAT_NAME( FormatProj ),
3150  };
3151  Q_ENUM( CrsDefinitionFormat )
3152 
3153 
3161  enum class FieldDomainSplitPolicy : int
3162  {
3163  DefaultValue,
3164  Duplicate,
3165  GeometryRatio,
3166  UnsetField,
3167  };
3168  Q_ENUM( FieldDomainSplitPolicy )
3169 
3170 
3178  enum class FieldDomainMergePolicy : int
3179  {
3180  DefaultValue,
3181  Sum,
3182  GeometryWeighted,
3183  };
3184  Q_ENUM( FieldDomainMergePolicy )
3185 
3186 
3191  enum class FieldDomainType : int
3192  {
3193  Coded,
3194  Range,
3195  Glob,
3196  };
3197  Q_ENUM( FieldDomainType )
3198 
3199 
3204  enum class TransactionMode : int
3205  {
3206  Disabled = 0,
3207  AutomaticGroups = 1,
3208  BufferedGroups = 2,
3209  };
3210  Q_ENUM( TransactionMode )
3211 
3212 
3217  enum class AltitudeClamping : int
3218  {
3219  Absolute,
3220  Relative,
3221  Terrain,
3222  };
3223  Q_ENUM( AltitudeClamping )
3224 
3225 
3230  enum class AltitudeBinding : int
3231  {
3232  Vertex,
3233  Centroid,
3234  };
3235  Q_ENUM( AltitudeBinding )
3236 
3237 
3242  enum class RangeLimits : int
3243  {
3244  IncludeBoth = 0,
3245  IncludeLowerExcludeUpper,
3246  ExcludeLowerIncludeUpper,
3247  ExcludeBoth,
3248  };
3249  Q_ENUM( RangeLimits )
3250 
3251 
3256  enum class RasterElevationMode : int
3257  {
3258  FixedElevationRange = 0,
3259  RepresentsElevationSurface = 1
3260  };
3261  Q_ENUM( RasterElevationMode )
3262 
3263 
3269  {
3270  NoConstraint,
3271  Perpendicular,
3272  Parallel
3273  };
3274  Q_ENUM( BetweenLineConstraint )
3275 
3276 
3281  enum class LineExtensionSide : int
3282  {
3283  BeforeVertex,
3284  AfterVertex,
3285  NoVertex,
3286  };
3287  Q_ENUM( LineExtensionSide )
3288 
3289 
3290 
3294  enum class CadConstraintType : int
3295  {
3296  Generic,
3297  Angle,
3298  Distance,
3299  XCoordinate,
3300  YCoordinate,
3301  ZValue,
3302  MValue,
3303  };
3304  Q_ENUM( CadConstraintType )
3305 
3306 
3307 
3312  enum class ProjectFlag : int SIP_ENUM_BASETYPE( IntFlag )
3313  {
3314  EvaluateDefaultValuesOnProviderSide = 1 << 0,
3315  TrustStoredLayerStatistics = 1 << 1,
3316  RememberLayerEditStatusBetweenSessions = 1 << 2,
3317  RememberAttributeTableWindowsBetweenSessions = 1 << 3,
3318  };
3319  Q_ENUM( ProjectFlag )
3320  Q_DECLARE_FLAGS( ProjectFlags, ProjectFlag )
3321  Q_FLAG( ProjectFlags )
3322 
3328  enum class PlotToolFlag : int SIP_ENUM_BASETYPE( IntFlag )
3329  {
3330  ShowContextMenu = 1 << 0,
3331  };
3332  Q_ENUM( PlotToolFlag )
3333  Q_DECLARE_FLAGS( PlotToolFlags, PlotToolFlag )
3334  Q_FLAG( PlotToolFlags )
3335 
3336 
3344  enum class Point3DShape : int
3345  {
3346  Cylinder,
3347  Sphere,
3348  Cone,
3349  Cube,
3350  Torus,
3351  Plane,
3352  ExtrudedText,
3353  Model,
3354  Billboard,
3355  };
3356  Q_ENUM( Point3DShape )
3357 
3358 
3363  enum class LightSourceType : int
3364  {
3365  Point,
3366  Directional,
3367  };
3368  Q_ENUM( LightSourceType )
3369 
3370 
3375  enum class NavigationMode : int
3376  {
3377  TerrainBased,
3378  Walk
3379  };
3380  Q_ENUM( NavigationMode )
3381 
3382 
3387  enum class VerticalAxisInversion : int
3388  {
3389  Never,
3390  WhenDragging,
3391  Always,
3392  };
3393  Q_ENUM( VerticalAxisInversion )
3394 
3395 
3400  enum class ProfileSurfaceSymbology : int
3401  {
3402  Line,
3403  FillBelow,
3404  FillAbove,
3405  };
3407 
3413  enum class VectorProfileType : int
3414  {
3415  IndividualFeatures,
3416  ContinuousSurface,
3417  };
3419 
3425  enum class ProfileGeneratorFlag : int SIP_ENUM_BASETYPE( IntFlag )
3426  {
3427  RespectsMaximumErrorMapUnit = 1 << 0,
3428  RespectsDistanceRange = 1 << 1,
3429  RespectsElevationRange = 1 << 2,
3430  };
3431  Q_ENUM( ProfileGeneratorFlag )
3433  Q_FLAG( ProfileGeneratorFlags )
3434 
3440  enum class ProfileExportType : int
3441  {
3442  Features3D,
3443  Profile2D,
3444  DistanceVsElevationTable,
3445  };
3447 
3454  {
3455  Square,
3456  Circle,
3457  };
3458  Q_ENUM( PointCloudSymbol )
3459 
3460 
3466  {
3467  Default,
3468  BottomToTop,
3469  TopToBottom,
3470  };
3471  Q_ENUM( PointCloudDrawOrder )
3472 
3473 
3481  {
3482  AllowIntersections,
3483  AvoidIntersectionsCurrentLayer,
3484  AvoidIntersectionsLayers,
3485  };
3486  Q_ENUM( AvoidIntersectionsMode )
3487 
3488 
3496  {
3497  Qgz,
3498  Qgs,
3499  };
3500  Q_ENUM( ProjectFileFormat )
3501 
3502 
3510  {
3511  DontResolveLayers SIP_MONKEYPATCH_COMPAT_NAME( FlagDontResolveLayers ) = 1 << 0,
3512  DontLoadLayouts SIP_MONKEYPATCH_COMPAT_NAME( FlagDontLoadLayouts ) = 1 << 1,
3513  TrustLayerMetadata SIP_MONKEYPATCH_COMPAT_NAME( FlagTrustLayerMetadata ) = 1 << 2,
3514  DontStoreOriginalStyles SIP_MONKEYPATCH_COMPAT_NAME( FlagDontStoreOriginalStyles ) = 1 << 3,
3515  DontLoad3DViews SIP_MONKEYPATCH_COMPAT_NAME( FlagDontLoad3DViews ) = 1 << 4,
3516  DontLoadProjectStyles = 1 << 5,
3517  ForceReadOnlyLayers = 1 << 6,
3518  };
3519  Q_ENUM( ProjectReadFlag )
3520 
3521 
3529  Q_FLAG( ProjectReadFlags )
3530 
3539  enum class ProjectCapability : int SIP_ENUM_BASETYPE( IntFlag )
3540  {
3541  ProjectStyles = 1 << 0,
3542  };
3543  Q_ENUM( ProjectCapability )
3544 
3545 
3551  Q_FLAG( ProjectCapabilities )
3552 
3558  enum class MapBoxGlStyleSourceType : int
3559  {
3560  Vector,
3561  Raster,
3562  RasterDem,
3563  GeoJson,
3564  Image,
3565  Video,
3566  Unknown,
3567  };
3568  Q_ENUM( MapBoxGlStyleSourceType )
3569 
3570 
3578  {
3579  FeatureServer SIP_MONKEYPATCH_COMPAT_NAME( FeatureService ),
3580  MapServer SIP_MONKEYPATCH_COMPAT_NAME( MapService ),
3581  ImageServer SIP_MONKEYPATCH_COMPAT_NAME( ImageService ),
3582  GlobeServer,
3583  GPServer,
3584  GeocodeServer,
3585  Unknown,
3586  };
3587  Q_ENUM( ArcGisRestServiceType )
3588 
3589 
3597  {
3598  Normal,
3599  Generated,
3600  };
3601  Q_ENUM( RelationshipType )
3602 
3603 
3611  {
3612  Association,
3613  Composition,
3614  };
3615  Q_ENUM( RelationshipStrength )
3616 
3617 
3622  enum class RelationshipCardinality : int
3623  {
3624  OneToOne,
3625  OneToMany,
3626  ManyToOne,
3627  ManyToMany,
3628  };
3629  Q_ENUM( RelationshipCardinality )
3630 
3631 
3636  enum class RelationshipCapability : int SIP_ENUM_BASETYPE( IntFlag )
3637  {
3638  MultipleFieldKeys = 1 << 0,
3639  ForwardPathLabel = 1 << 1,
3640  BackwardPathLabel = 1 << 2,
3641  };
3642  Q_ENUM( RelationshipCapability )
3643 
3644 
3650  Q_FLAG( RelationshipCapabilities )
3651 
3657  enum class CoordinateDisplayType : int
3658  {
3659  MapCrs,
3660  MapGeographic,
3661  CustomCrs,
3662  };
3663  Q_ENUM( CoordinateDisplayType )
3664 
3665 
3670  enum class SettingsOrigin : int
3671  {
3672  Any,
3673  Global,
3674  Local,
3675  };
3676  Q_ENUM( SettingsOrigin )
3677 
3678 
3683  enum class ScriptLanguage : int
3684  {
3685  Css,
3686  QgisExpression,
3687  Html,
3688  JavaScript,
3689  Json,
3690  Python,
3691  R,
3692  Sql,
3693  Batch,
3694  Bash,
3695  Unknown,
3696  };
3697  Q_ENUM( ScriptLanguage )
3698 
3699 
3706  enum class ScriptLanguageCapability : int SIP_ENUM_BASETYPE( IntFlag )
3707  {
3708  Reformat = 1 << 0,
3709  CheckSyntax = 1 << 1,
3710  ToggleComment = 1 << 2,
3711  };
3712  Q_ENUM( ScriptLanguageCapability )
3713 
3714 
3720  Q_FLAG( ScriptLanguageCapabilities )
3721 
3727  enum class LayerTreeInsertionMethod : int
3728  {
3729  AboveInsertionPoint,
3730  TopOfTree,
3731  OptimalInInsertionGroup,
3732  };
3733  Q_ENUM( LayerTreeInsertionMethod )
3734 
3735 
3740  enum class LayerTreeFilterFlag : int SIP_ENUM_BASETYPE( IntFlag )
3741  {
3742  SkipVisibilityCheck = 1 << 0,
3743  };
3744  Q_ENUM( LayerTreeFilterFlag )
3745 
3746 
3752  Q_FLAG( LayerTreeFilterFlags )
3753 
3754 
3762  enum class LegendJsonRenderFlag : int SIP_ENUM_BASETYPE( IntFlag )
3763  {
3764  ShowRuleDetails = 1 << 0,
3765  };
3766  Q_ENUM( LegendJsonRenderFlag )
3768  Q_FLAG( LegendJsonRenderFlags )
3769 
3777  enum class ActionType : int
3778  {
3779  Invalid,
3780  MapLayerAction,
3781  AttributeAction
3782  };
3783  Q_ENUM( ActionType )
3784 
3785 
3792  enum class MapLayerActionTarget : int SIP_ENUM_BASETYPE( IntFlag )
3793  {
3794  Layer = 1 << 0,
3795  SingleFeature = 1 << 1,
3796  MultipleFeatures = 1 << 2,
3797  AllActions = Layer | SingleFeature | MultipleFeatures
3798  };
3799  Q_ENUM( MapLayerActionTarget )
3800 
3801 
3809  Q_FLAG( MapLayerActionTargets )
3810 
3818  enum class MapLayerActionFlag : int SIP_ENUM_BASETYPE( IntFlag )
3819  {
3820  EnabledOnlyWhenEditable = 1 << 1,
3821  };
3822  Q_ENUM( MapLayerActionFlag )
3823 
3824 
3832  Q_FLAG( MapLayerActionFlags )
3833 
3842  {
3843  Generic,
3844  GenericPython,
3845  Mac,
3846  Windows,
3847  Unix,
3848  OpenUrl,
3849  SubmitUrlEncoded,
3850  SubmitUrlMultipart,
3851  };
3852  Q_ENUM( AttributeActionType )
3853 
3854 
3859  enum class MetadataDateType
3860  {
3861  Created,
3862  Published,
3863  Revised,
3864  Superseded,
3865  };
3866  Q_ENUM( MetadataDateType )
3867 
3868 
3878  {
3879  Undefined SIP_MONKEYPATCH_COMPAT_NAME( UndefinedColorInterpretation ) = 0,
3880  GrayIndex = 1,
3881  PaletteIndex = 2,
3882  RedBand = 3,
3883  GreenBand = 4,
3884  BlueBand = 5,
3885  AlphaBand = 6,
3886  HueBand = 7,
3887  SaturationBand = 8,
3888  LightnessBand = 9,
3889  CyanBand = 10,
3890  MagentaBand = 11,
3891  YellowBand = 12,
3892  BlackBand = 13,
3893  YCbCr_YBand = 14,
3894  YCbCr_CbBand = 15,
3895  YCbCr_CrBand = 16,
3896  ContinuousPalette = 17
3897  };
3898  Q_ENUM( RasterColorInterpretation )
3899 
3900 
3908  {
3909  GrayOrUndefined,
3910  Palette,
3911  MultiBand SIP_MONKEYPATCH_COMPAT_NAME( Multiband ),
3912  SingleBandColorData SIP_MONKEYPATCH_COMPAT_NAME( ColorLayer ),
3913  };
3914  Q_ENUM( RasterLayerType )
3915 
3916 
3924  {
3925  Undefined SIP_MONKEYPATCH_COMPAT_NAME( UndefinedDrawingStyle ),
3926  SingleBandGray,
3927  SingleBandPseudoColor,
3928  PalettedColor,
3929  PalettedSingleBandGray,
3930  PalettedSingleBandPseudoColor,
3931  PalettedMultiBandColor,
3932  MultiBandSingleBandGray,
3933  MultiBandSingleBandPseudoColor,
3934  MultiBandColor,
3935  SingleBandColorData SIP_MONKEYPATCH_COMPAT_NAME( SingleBandColorDataStyle ),
3936  };
3937  Q_ENUM( RasterDrawingStyle )
3938 
3939 
3946  enum class RasterPyramidFormat SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsRaster, RasterPyramidsFormat ) : int
3947  {
3948  GeoTiff SIP_MONKEYPATCH_COMPAT_NAME( PyramidsGTiff ) = 0,
3949  Internal SIP_MONKEYPATCH_COMPAT_NAME( PyramidsInternal ) = 1,
3950  Erdas SIP_MONKEYPATCH_COMPAT_NAME( PyramidsErdas ) = 2
3951  };
3952  Q_ENUM( RasterPyramidFormat )
3953 
3954 
3962  {
3963  No SIP_MONKEYPATCH_COMPAT_NAME( PyramidsFlagNo ) = 0,
3964  Yes SIP_MONKEYPATCH_COMPAT_NAME( PyramidsFlagYes ) = 1,
3965  CopyExisting SIP_MONKEYPATCH_COMPAT_NAME( PyramidsCopyExisting ) = 2
3966  };
3967  Q_ENUM( RasterBuildPyramidOption )
3968 
3969 
3977  {
3978  Undefined SIP_MONKEYPATCH_COMPAT_NAME( IdentifyFormatUndefined ) = 0,
3979  Value SIP_MONKEYPATCH_COMPAT_NAME( IdentifyFormatValue ) = 1,
3980  Text SIP_MONKEYPATCH_COMPAT_NAME( IdentifyFormatText ) = 1 << 1,
3981  Html SIP_MONKEYPATCH_COMPAT_NAME( IdentifyFormatHtml ) = 1 << 2,
3982  Feature SIP_MONKEYPATCH_COMPAT_NAME( IdentifyFormatFeature ) = 1 << 3,
3983  };
3984  Q_ENUM( RasterIdentifyFormat )
3985 
3986 
3991  enum class ElevationMapCombineMethod : int
3992  {
3993  HighestElevation,
3994  NewerElevation,
3995  };
3996  Q_ENUM( ElevationMapCombineMethod )
3997 
3998 
4007  {
4008  Normal SIP_MONKEYPATCH_COMPAT_NAME( BlendNormal ),
4009  Lighten SIP_MONKEYPATCH_COMPAT_NAME( BlendLighten ),
4010  Screen SIP_MONKEYPATCH_COMPAT_NAME( BlendScreen ),
4011  Dodge SIP_MONKEYPATCH_COMPAT_NAME( BlendDodge ),
4012  Addition SIP_MONKEYPATCH_COMPAT_NAME( BlendAddition ),
4013  Darken SIP_MONKEYPATCH_COMPAT_NAME( BlendDarken ),
4014  Multiply SIP_MONKEYPATCH_COMPAT_NAME( BlendMultiply ),
4015  Burn SIP_MONKEYPATCH_COMPAT_NAME( BlendBurn ),
4016  Overlay SIP_MONKEYPATCH_COMPAT_NAME( BlendOverlay ),
4017  SoftLight SIP_MONKEYPATCH_COMPAT_NAME( BlendSoftLight ),
4018  HardLight SIP_MONKEYPATCH_COMPAT_NAME( BlendHardLight ),
4019  Difference SIP_MONKEYPATCH_COMPAT_NAME( BlendDifference ),
4020  Subtract SIP_MONKEYPATCH_COMPAT_NAME( BlendSubtract ),
4021  Source SIP_MONKEYPATCH_COMPAT_NAME( BlendSource ),
4022  DestinationOver SIP_MONKEYPATCH_COMPAT_NAME( BlendDestinationOver ),
4023  Clear SIP_MONKEYPATCH_COMPAT_NAME( BlendClear ),
4024  Destination SIP_MONKEYPATCH_COMPAT_NAME( BlendDestination ),
4025  SourceIn SIP_MONKEYPATCH_COMPAT_NAME( BlendSourceIn ),
4026  DestinationIn SIP_MONKEYPATCH_COMPAT_NAME( BlendDestinationIn ),
4027  SourceOut SIP_MONKEYPATCH_COMPAT_NAME( BlendSourceOut ),
4028  DestinationOut SIP_MONKEYPATCH_COMPAT_NAME( BlendDestinationOut ),
4029  SourceAtop SIP_MONKEYPATCH_COMPAT_NAME( BlendSourceAtop ),
4030  DestinationAtop SIP_MONKEYPATCH_COMPAT_NAME( BlendDestinationAtop ),
4031  Xor SIP_MONKEYPATCH_COMPAT_NAME( BlendXor ),
4032  };
4033  Q_ENUM( BlendMode )
4034 
4035 
4043  {
4044  Unknown SIP_MONKEYPATCH_COMPAT_NAME( UnknownSystem ) = 0,
4045  Metric SIP_MONKEYPATCH_COMPAT_NAME( MetricSystem ),
4046  Imperial SIP_MONKEYPATCH_COMPAT_NAME( ImperialSystem ),
4047  USCS SIP_MONKEYPATCH_COMPAT_NAME( USCSSystem ),
4048  };
4049  Q_ENUM( SystemOfMeasurement )
4050 
4051 
4058  {
4059  Layer SIP_MONKEYPATCH_COMPAT_NAME( LayerUnits ),
4060  Pixels,
4061  Project SIP_MONKEYPATCH_COMPAT_NAME( ProjectUnits )
4062  };
4063  Q_ENUM( MapToolUnit )
4064 
4065 
4073  {
4074  Distance SIP_MONKEYPATCH_COMPAT_NAME( TypeDistance ) = 0,
4075  Area SIP_MONKEYPATCH_COMPAT_NAME( TypeArea ),
4076  Volume SIP_MONKEYPATCH_COMPAT_NAME( TypeVolume ),
4077  Unknown SIP_MONKEYPATCH_COMPAT_NAME( TypeUnknown ),
4078  Temporal SIP_MONKEYPATCH_COMPAT_NAME( TypeTemporal ),
4079  };
4080  Q_ENUM( UnitType )
4081 
4082 
4090  {
4091  Meters SIP_MONKEYPATCH_COMPAT_NAME( DistanceMeters ),
4092  Kilometers SIP_MONKEYPATCH_COMPAT_NAME( DistanceKilometers ),
4093  Feet SIP_MONKEYPATCH_COMPAT_NAME( DistanceFeet ),
4094  NauticalMiles SIP_MONKEYPATCH_COMPAT_NAME( DistanceNauticalMiles ),
4095  Yards SIP_MONKEYPATCH_COMPAT_NAME( DistanceYards ),
4096  Miles SIP_MONKEYPATCH_COMPAT_NAME( DistanceMiles ),
4097  Degrees SIP_MONKEYPATCH_COMPAT_NAME( DistanceDegrees ),
4098  Centimeters SIP_MONKEYPATCH_COMPAT_NAME( DistanceCentimeters ),
4099  Millimeters SIP_MONKEYPATCH_COMPAT_NAME( DistanceMillimeters ),
4100  Inches,
4101  Unknown SIP_MONKEYPATCH_COMPAT_NAME( DistanceUnknownUnit ),
4102  };
4103  Q_ENUM( DistanceUnit )
4104 
4105 
4113  {
4114  Standard,
4115  Geographic,
4116  Unknown SIP_MONKEYPATCH_COMPAT_NAME( UnknownType ),
4117  };
4118  Q_ENUM( DistanceUnitType )
4119 
4120 
4128  {
4129  SquareMeters SIP_MONKEYPATCH_COMPAT_NAME( AreaSquareMeters ),
4130  SquareKilometers SIP_MONKEYPATCH_COMPAT_NAME( AreaSquareKilometers ),
4131  SquareFeet SIP_MONKEYPATCH_COMPAT_NAME( AreaSquareFeet ),
4132  SquareYards SIP_MONKEYPATCH_COMPAT_NAME( AreaSquareYards ),
4133  SquareMiles SIP_MONKEYPATCH_COMPAT_NAME( AreaSquareMiles ),
4134  Hectares SIP_MONKEYPATCH_COMPAT_NAME( AreaHectares ),
4135  Acres SIP_MONKEYPATCH_COMPAT_NAME( AreaAcres ),
4136  SquareNauticalMiles SIP_MONKEYPATCH_COMPAT_NAME( AreaSquareNauticalMiles ),
4137  SquareDegrees SIP_MONKEYPATCH_COMPAT_NAME( AreaSquareDegrees ),
4138  SquareCentimeters SIP_MONKEYPATCH_COMPAT_NAME( AreaSquareCentimeters ),
4139  SquareMillimeters SIP_MONKEYPATCH_COMPAT_NAME( AreaSquareMillimeters ),
4140  SquareInches,
4141  Unknown SIP_MONKEYPATCH_COMPAT_NAME( AreaUnknownUnit ),
4142  };
4143  Q_ENUM( AreaUnit )
4144 
4145 
4153  {
4154  CubicMeters SIP_MONKEYPATCH_COMPAT_NAME( VolumeCubicMeters ),
4155  CubicFeet SIP_MONKEYPATCH_COMPAT_NAME( VolumeCubicFeet ),
4156  CubicYards SIP_MONKEYPATCH_COMPAT_NAME( VolumeCubicYards ),
4157  Barrel SIP_MONKEYPATCH_COMPAT_NAME( VolumeBarrel ),
4158  CubicDecimeter SIP_MONKEYPATCH_COMPAT_NAME( VolumeCubicDecimeter ),
4159  Liters SIP_MONKEYPATCH_COMPAT_NAME( VolumeLiters ),
4160  GallonUS SIP_MONKEYPATCH_COMPAT_NAME( VolumeGallonUS ),
4161  CubicInch SIP_MONKEYPATCH_COMPAT_NAME( VolumeCubicInch ),
4162  CubicCentimeter SIP_MONKEYPATCH_COMPAT_NAME( VolumeCubicCentimeter ),
4163  CubicDegrees SIP_MONKEYPATCH_COMPAT_NAME( VolumeCubicDegrees ),
4164  Unknown SIP_MONKEYPATCH_COMPAT_NAME( VolumeUnknownUnit ),
4165  };
4166  Q_ENUM( VolumeUnit )
4167 
4168 
4176  {
4177  Degrees SIP_MONKEYPATCH_COMPAT_NAME( AngleDegrees ),
4178  Radians SIP_MONKEYPATCH_COMPAT_NAME( AngleRadians ),
4179  Gon SIP_MONKEYPATCH_COMPAT_NAME( AngleGon ),
4180  MinutesOfArc SIP_MONKEYPATCH_COMPAT_NAME( AngleMinutesOfArc ),
4181  SecondsOfArc SIP_MONKEYPATCH_COMPAT_NAME( AngleSecondsOfArc ),
4182  Turn SIP_MONKEYPATCH_COMPAT_NAME( AngleTurn ),
4183  MilliradiansSI SIP_MONKEYPATCH_COMPAT_NAME( AngleMilliradiansSI ),
4184  MilNATO SIP_MONKEYPATCH_COMPAT_NAME( AngleMilNATO ),
4185  Unknown SIP_MONKEYPATCH_COMPAT_NAME( AngleUnknownUnit ),
4186  };
4187  Q_ENUM( AngleUnit )
4188 
4189 
4197  {
4198  Milliseconds SIP_MONKEYPATCH_COMPAT_NAME( TemporalMilliseconds ),
4199  Seconds SIP_MONKEYPATCH_COMPAT_NAME( TemporalSeconds ),
4200  Minutes SIP_MONKEYPATCH_COMPAT_NAME( TemporalMinutes ),
4201  Hours SIP_MONKEYPATCH_COMPAT_NAME( TemporalHours ),
4202  Days SIP_MONKEYPATCH_COMPAT_NAME( TemporalDays ),
4203  Weeks SIP_MONKEYPATCH_COMPAT_NAME( TemporalWeeks ),
4204  Months SIP_MONKEYPATCH_COMPAT_NAME( TemporalMonths ),
4205  Years SIP_MONKEYPATCH_COMPAT_NAME( TemporalYears ),
4206  Decades SIP_MONKEYPATCH_COMPAT_NAME( TemporalDecades ),
4207  Centuries SIP_MONKEYPATCH_COMPAT_NAME( TemporalCenturies ),
4208  IrregularStep SIP_MONKEYPATCH_COMPAT_NAME( TemporalIrregularStep ),
4209  Unknown SIP_MONKEYPATCH_COMPAT_NAME( TemporalUnknownUnit )
4210  };
4211  Q_ENUM( TemporalUnit )
4212 
4213 
4221  {
4222  Millimeters SIP_MONKEYPATCH_COMPAT_NAME( RenderMillimeters ),
4223  MapUnits SIP_MONKEYPATCH_COMPAT_NAME( RenderMapUnits ),
4224  Pixels SIP_MONKEYPATCH_COMPAT_NAME( RenderPixels ),
4225  Percentage SIP_MONKEYPATCH_COMPAT_NAME( RenderPercentage ),
4226  Points SIP_MONKEYPATCH_COMPAT_NAME( RenderPoints ),
4227  Inches SIP_MONKEYPATCH_COMPAT_NAME( RenderInches ),
4228  Unknown SIP_MONKEYPATCH_COMPAT_NAME( RenderUnknownUnit ),
4229  MetersInMapUnits SIP_MONKEYPATCH_COMPAT_NAME( RenderMetersInMapUnits ),
4230  };
4231  Q_ENUM( RenderUnit )
4232 
4233 
4241  {
4242  Millimeters SIP_MONKEYPATCH_COMPAT_NAME( LayoutMillimeters ),
4243  Centimeters SIP_MONKEYPATCH_COMPAT_NAME( LayoutCentimeters ),
4244  Meters SIP_MONKEYPATCH_COMPAT_NAME( LayoutMeters ),
4245  Inches SIP_MONKEYPATCH_COMPAT_NAME( LayoutInches ),
4246  Feet SIP_MONKEYPATCH_COMPAT_NAME( LayoutFeet ),
4247  Points SIP_MONKEYPATCH_COMPAT_NAME( LayoutPoints ),
4248  Picas SIP_MONKEYPATCH_COMPAT_NAME( LayoutPicas ),
4249  Pixels SIP_MONKEYPATCH_COMPAT_NAME( LayoutPixels )
4250  };
4251  Q_ENUM( LayoutUnit )
4252 
4253 
4261  {
4262  PaperUnits SIP_MONKEYPATCH_COMPAT_NAME( LayoutPaperUnits ),
4263  ScreenUnits SIP_MONKEYPATCH_COMPAT_NAME( LayoutScreenUnits )
4264  };
4265  Q_ENUM( LayoutUnitType )
4266 
4267 
4272  enum class InputControllerType : int
4273  {
4274  Map2D,
4275  Map3D
4276  };
4278 
4284  enum class PostgresRelKind
4285  {
4286  NotSet,
4287  Unknown,
4288  OrdinaryTable,
4289  Index,
4290  Sequence,
4291  View,
4292  MaterializedView,
4293  CompositeType,
4294  ToastTable,
4295  ForeignTable,
4296  PartitionedTable,
4297  };
4298  Q_ENUM( PostgresRelKind )
4299 
4300 
4306  {
4307  SetFieldComment = 1 << 0,
4308  SetFieldAlias = 1 << 1,
4309  };
4310  Q_ENUM( DatabaseProviderConnectionCapability2 )
4313 
4320  {
4321  SaveToDatabase = 1 << 1,
4322  LoadFromDatabase = 1 << 2,
4323  DeleteFromDatabase = 1 << 3
4324  };
4328 
4329 
4335  {
4336  LastProfile,
4337  DefaultProfile,
4338  AskUser,
4339  };
4340  Q_ENUM( UserProfileSelectionPolicy )
4341 
4342 
4350  {
4351  Container SIP_MONKEYPATCH_COMPAT_NAME( AeTypeContainer ),
4352  Field SIP_MONKEYPATCH_COMPAT_NAME( AeTypeField ),
4353  Relation SIP_MONKEYPATCH_COMPAT_NAME( AeTypeRelation ),
4354  QmlElement SIP_MONKEYPATCH_COMPAT_NAME( AeTypeQmlElement ),
4355  HtmlElement SIP_MONKEYPATCH_COMPAT_NAME( AeTypeHtmlElement ),
4356  Action SIP_MONKEYPATCH_COMPAT_NAME( AeTypeAction ),
4357  TextElement SIP_MONKEYPATCH_COMPAT_NAME( AeTypeTextElement ),
4358  SpacerElement SIP_MONKEYPATCH_COMPAT_NAME( AeTypeSpacerElement ),
4359  Invalid SIP_MONKEYPATCH_COMPAT_NAME( AeTypeInvalid ),
4360  };
4361  Q_ENUM( AttributeEditorType )
4362 
4363 
4369  {
4370  GroupBox,
4371  Tab,
4372  Row,
4373  };
4374  Q_ENUM( AttributeEditorContainerType )
4375 
4376 
4384  {
4385  AutoGenerated SIP_MONKEYPATCH_COMPAT_NAME( GeneratedLayout ) = 0,
4386  DragAndDrop SIP_MONKEYPATCH_COMPAT_NAME( TabLayout ) = 1,
4387  UiFile SIP_MONKEYPATCH_COMPAT_NAME( UiFileLayout ) = 2
4388  };
4389  Q_ENUM( AttributeFormLayout )
4390 
4391 
4399  {
4400  Default SIP_MONKEYPATCH_COMPAT_NAME( SuppressDefault ) = 0,
4401  On SIP_MONKEYPATCH_COMPAT_NAME( SuppressOn ) = 1,
4402  Off SIP_MONKEYPATCH_COMPAT_NAME( SuppressOff ) = 2
4403  };
4404  Q_ENUM( AttributeFormSuppression )
4405 
4406 
4414  {
4415  NoSource SIP_MONKEYPATCH_COMPAT_NAME( CodeSourceNone ) = 0,
4416  File SIP_MONKEYPATCH_COMPAT_NAME( CodeSourceFile ) = 1,
4417  Dialog SIP_MONKEYPATCH_COMPAT_NAME( CodeSourceDialog ) = 2,
4418  Environment SIP_MONKEYPATCH_COMPAT_NAME( CodeSourceEnvironment ) = 3
4419  };
4420  Q_ENUM( AttributeFormPythonInitCodeSource )
4421 
4422 
4427  enum class ExpressionType
4428  {
4429  Qgis,
4430  PointCloud,
4431  RasterCalculator,
4432  };
4433  Q_ENUM( ExpressionType )
4434 
4435 
4443  {
4444  NoSymbology = 0,
4445  PerFeature SIP_MONKEYPATCH_COMPAT_NAME( FeatureSymbology ),
4446  PerSymbolLayer SIP_MONKEYPATCH_COMPAT_NAME( SymbolLayerSymbology )
4447  };
4448  Q_ENUM( FeatureSymbologyExport )
4449 
4450 
4455  enum class VectorTileProviderFlag : int SIP_ENUM_BASETYPE( IntFlag )
4456  {
4457  AlwaysUseTileMatrixSetFromProvider = 1 << 1,
4458  };
4459  Q_ENUM( VectorTileProviderFlag )
4460 
4461 
4467  Q_FLAG( VectorTileProviderFlags )
4468 
4474  {
4475  ReadLayerMetadata = 1 << 1,
4476  };
4477  Q_ENUM( VectorTileProviderCapability )
4478 
4479 
4486 
4492  enum class TileAvailability
4493  {
4494  Available,
4495  NotAvailable,
4496  AvailableNoChildren,
4497  UseLowerZoomLevelTile,
4498  };
4499  Q_ENUM( TileAvailability )
4500 
4501 
4507  {
4508  ReadLayerMetadata = 1 << 1,
4509  };
4510  Q_ENUM( TiledSceneProviderCapability )
4511 
4512 
4519 
4526  {
4527  Region,
4528  OrientedBox,
4529  Sphere,
4530  };
4531  Q_ENUM( TiledSceneBoundingVolumeType )
4532 
4533 
4542  {
4543  Replacement,
4544  Additive,
4545  };
4546  Q_ENUM( TileRefinementProcess )
4547 
4548 
4554  {
4555  NoChildren,
4556  Available,
4557  NeedFetching,
4558  };
4559  Q_ENUM( TileChildrenAvailability )
4560 
4561 
4566  enum class TiledSceneRequestFlag : int SIP_ENUM_BASETYPE( IntFlag )
4567  {
4568  NoHierarchyFetch = 1 << 0,
4569  };
4570  Q_ENUM( TiledSceneRequestFlag )
4571 
4572 
4578  Q_FLAG( TiledSceneRequestFlags )
4579 
4585  enum class TiledSceneRendererFlag : int SIP_ENUM_BASETYPE( IntFlag )
4586  {
4587  RequiresTextures = 1 << 0,
4588  ForceRasterRender = 1 << 1,
4589  RendersTriangles = 1 << 2,
4590  RendersLines = 1 << 3,
4591  };
4592  Q_ENUM( TiledSceneRendererFlag )
4593 
4594 
4600  Q_FLAG( TiledSceneRendererFlags )
4601 
4607  enum class GdalResampleAlgorithm : int
4608  {
4609  RA_NearestNeighbour = 0,
4610  RA_Bilinear = 1,
4611  RA_Cubic = 2,
4612  RA_CubicSpline = 3,
4613  RA_Lanczos = 4,
4614  RA_Average = 5,
4615  RA_Mode = 6,
4616  RA_Max = 8,
4617  RA_Min = 9,
4618  RA_Median = 10,
4619  RA_Q1 = 11,
4620  RA_Q3 = 12,
4621  };
4622  Q_ENUM( GdalResampleAlgorithm )
4623 
4624 
4625 
4630  enum class ZonalStatistic : int SIP_ENUM_BASETYPE( IntFlag )
4631  {
4632  Count = 1,
4633  Sum = 2,
4634  Mean = 4,
4635  Median = 8,
4636  StDev = 16,
4637  Min = 32,
4638  Max = 64,
4639  Range = 128,
4640  Minority = 256,
4641  Majority = 512,
4642  Variety = 1024,
4643  Variance = 2048,
4644  All = Count | Sum | Mean | Median | StDev | Max | Min | Range | Minority | Majority | Variety | Variance,
4645  Default = Count | Sum | Mean,
4646  };
4647  Q_ENUM( ZonalStatistic )
4648 
4649 
4655  Q_FLAG( ZonalStatistics )
4656 
4662  enum class ZonalStatisticResult : int
4663  {
4664  Success = 0,
4665  LayerTypeWrong = 1,
4666  LayerInvalid,
4667  RasterInvalid,
4668  RasterBandInvalid,
4669  FailedToCreateField = 8,
4670  Canceled = 9
4671  };
4672  Q_ENUM( ZonalStatisticResult )
4673 
4674 
4681  {
4682  Count,
4683  CountDistinct,
4684  CountMissing,
4685  Min,
4686  Max,
4687  Sum,
4688  Mean,
4689  Median,
4690  StDev,
4691  StDevSample,
4692  Range,
4693  Minority,
4694  Majority,
4695  FirstQuartile,
4696  ThirdQuartile,
4697  InterQuartileRange,
4698  StringMinimumLength,
4699  StringMaximumLength,
4700  StringConcatenate,
4701  GeometryCollect,
4702  ArrayAggregate,
4703  StringConcatenateUnique
4704  };
4705  Q_ENUM( Aggregate )
4706 
4707 
4713  {
4714  Count = 1 << 0,
4715  CountMissing = 1 << 15,
4716  Sum = 1 << 1,
4717  Mean = 1 << 2,
4718  Median = 1 << 3,
4719  StDev = 1 << 4,
4720  StDevSample = 1 << 5,
4721  Min = 1 << 6,
4722  Max = 1 << 7,
4723  Range = 1 << 8,
4724  Minority = 1 << 9,
4725  Majority = 1 << 10,
4726  Variety = 1 << 11,
4727  FirstQuartile = 1 << 12,
4728  ThirdQuartile = 1 << 13,
4729  InterQuartileRange = 1 << 14,
4730  First = 1 << 16,
4731  Last = 1 << 17,
4732  All = Count | CountMissing | Sum | Mean | Median | StDev | Max | Min | Range | Minority | Majority | Variety | FirstQuartile | ThirdQuartile | InterQuartileRange | First | Last
4733  };
4734  Q_ENUM( Statistic )
4735 
4736 
4742  Q_FLAG( Statistics )
4743 
4750  {
4751  Count = 1,
4752  CountDistinct = 2,
4753  CountMissing = 4,
4754  Min = 8,
4755  Max = 16,
4756  Range = 32,
4757  All = Count | CountDistinct | CountMissing | Min | Max | Range,
4758  };
4759  Q_ENUM( DateTimeStatistic )
4760 
4761 
4767  Q_FLAG( DateTimeStatistics )
4768 
4775  {
4776  Count = 1,
4777  CountDistinct = 2,
4778  CountMissing = 4,
4779  Min = 8,
4780  Max = 16,
4781  MinimumLength = 32,
4782  MaximumLength = 64,
4783  MeanLength = 128,
4784  Minority = 256,
4785  Majority = 512,
4786  All = Count | CountDistinct | CountMissing | Min | Max | MinimumLength | MaximumLength | MeanLength | Minority | Majority,
4787  };
4788  Q_ENUM( StringStatistic )
4789 
4790 
4796  Q_FLAG( StringStatistics )
4797 
4804  {
4805  NoStatistic = 0,
4806  Min = 1,
4807  Max = 1 << 1,
4808  Range = 1 << 2,
4809  Sum = 1 << 3,
4810  Mean = 1 << 4,
4811  StdDev = 1 << 5,
4812  SumOfSquares = 1 << 6,
4813  All = Min | Max | Range | Sum | Mean | StdDev | SumOfSquares
4814  };
4815  Q_ENUM( RasterBandStatistic )
4816 
4817 
4823  Q_FLAG( RasterBandStatistics )
4824 
4830  enum class SensorThingsEntity : int
4831  {
4832  Invalid,
4833  Thing,
4834  Location,
4835  HistoricalLocation,
4836  Datastream,
4837  Sensor,
4838  ObservedProperty,
4839  Observation,
4840  FeatureOfInterest,
4841  };
4842  Q_ENUM( SensorThingsEntity )
4843 
4844 
4847  static const double DEFAULT_SEARCH_RADIUS_MM;
4848 
4850  static const float DEFAULT_MAPTOPIXEL_THRESHOLD;
4851 
4857  static const QColor DEFAULT_HIGHLIGHT_COLOR;
4858 
4862  static const double DEFAULT_HIGHLIGHT_BUFFER_MM;
4863 
4867  static const double DEFAULT_HIGHLIGHT_MIN_WIDTH_MM;
4868 
4874  static const double SCALE_PRECISION;
4875 
4880  static const double DEFAULT_Z_COORDINATE;
4881 
4887  static const double DEFAULT_M_COORDINATE;
4888 
4893  static const double UI_SCALE_FACTOR;
4894 
4898  static const double DEFAULT_SNAP_TOLERANCE;
4899 
4903  static const Qgis::MapToolUnit DEFAULT_SNAP_UNITS;
4904 
4910  static QString defaultProjectScales();
4911 
4917  static int geosVersionInt();
4918 
4924  static int geosVersionMajor();
4925 
4931  static int geosVersionMinor();
4932 
4938  static int geosVersionPatch();
4939 
4945  static QString geosVersion();
4946 };
4947 
4950 
5018 
5019 
5020 // hack to workaround warnings when casting void pointers
5021 // retrieved from QLibrary::resolve to function pointers.
5022 // It's assumed that this works on all systems supporting
5023 // QLibrary
5024 #define cast_to_fptr(f) f
5025 
5026 
5034 // based on Boojum's code from http://stackoverflow.com/questions/3556687/prevent-firing-signals-in-qt
5035 template<class Object> class QgsSignalBlocker SIP_SKIP SIP_SKIP // clazy:exclude=rule-of-three
5036 {
5037  public:
5038 
5043  explicit QgsSignalBlocker( Object *object )
5044  : mObject( object )
5045  , mPreviousState( object->blockSignals( true ) )
5046  {}
5047 
5049  {
5050  mObject->blockSignals( mPreviousState );
5051  }
5052 
5054  Object *operator->() { return mObject; }
5055 
5056  private:
5057 
5058  Object *mObject = nullptr;
5059  bool mPreviousState;
5060 
5061 };
5062 
5075 // based on Boojum's code from http://stackoverflow.com/questions/3556687/prevent-firing-signals-in-qt
5076 template<class Object> inline QgsSignalBlocker<Object> whileBlocking( Object *object ) SIP_SKIP SIP_SKIP
5077 {
5078  return QgsSignalBlocker<Object>( object );
5079 }
5080 
5082 CORE_EXPORT uint qHash( const QVariant &variant );
5083 
5089 inline QString qgsDoubleToString( double a, int precision = 17 )
5090 {
5091  QString str;
5092  if ( precision )
5093  {
5094  if ( precision < 0 )
5095  {
5096  const double roundFactor = std::pow( 10, -precision );
5097  str = QString::number( static_cast< long long >( std::round( a / roundFactor ) * roundFactor ) );
5098  }
5099  else
5100  {
5101  str = QString::number( a, 'f', precision );
5102  if ( str.contains( QLatin1Char( '.' ) ) )
5103  {
5104  // remove ending 0s
5105  int idx = str.length() - 1;
5106  while ( str.at( idx ) == '0' && idx > 1 )
5107  {
5108  idx--;
5109  }
5110  if ( idx < str.length() - 1 )
5111  str.truncate( str.at( idx ) == '.' ? idx : idx + 1 );
5112  }
5113  }
5114  }
5115  else
5116  {
5117  str = QString::number( a, 'f', precision );
5118  }
5119  // avoid printing -0
5120  // see https://bugreports.qt.io/browse/QTBUG-71439
5121  if ( str == QLatin1String( "-0" ) )
5122  {
5123  return QLatin1String( "0" );
5124  }
5125  return str;
5126 }
5127 
5134 inline bool qgsNanCompatibleEquals( double a, double b )
5135 {
5136  const bool aIsNan = std::isnan( a );
5137  const bool bIsNan = std::isnan( b );
5138  if ( aIsNan || bIsNan )
5139  return aIsNan && bIsNan;
5140 
5141  return a == b;
5142 }
5143 
5144 #ifndef SIP_RUN
5145 
5153 template<typename T>
5154 inline bool qgsNumberNear( T a, T b, T epsilon = std::numeric_limits<T>::epsilon() * 4 )
5155 {
5156  const bool aIsNan = std::isnan( a );
5157  const bool bIsNan = std::isnan( b );
5158  if ( aIsNan || bIsNan )
5159  return aIsNan && bIsNan;
5160 
5161  const T diff = a - b;
5162  return diff >= -epsilon && diff <= epsilon;
5163 }
5164 #endif
5165 
5172 inline bool qgsDoubleNear( double a, double b, double epsilon = 4 * std::numeric_limits<double>::epsilon() )
5173 {
5174  return qgsNumberNear<double>( a, b, epsilon );
5175 }
5176 
5183 inline bool qgsFloatNear( float a, float b, float epsilon = 4 * FLT_EPSILON )
5184 {
5185  return qgsNumberNear<float>( a, b, epsilon );
5186 }
5187 
5189 inline bool qgsDoubleNearSig( double a, double b, int significantDigits = 10 )
5190 {
5191  const bool aIsNan = std::isnan( a );
5192  const bool bIsNan = std::isnan( b );
5193  if ( aIsNan || bIsNan )
5194  return aIsNan && bIsNan;
5195 
5196  // The most simple would be to print numbers as %.xe and compare as strings
5197  // but that is probably too costly
5198  // Then the fastest would be to set some bits directly, but little/big endian
5199  // has to be considered (maybe TODO)
5200  // Is there a better way?
5201  int aexp, bexp;
5202  const double ar = std::frexp( a, &aexp );
5203  const double br = std::frexp( b, &bexp );
5204 
5205  return aexp == bexp &&
5206  std::round( ar * std::pow( 10.0, significantDigits ) ) == std::round( br * std::pow( 10.0, significantDigits ) );
5207 }
5208 
5213 inline double qgsRound( double number, int places )
5214 {
5215  const double m = ( number < 0.0 ) ? -1.0 : 1.0;
5216  const double scaleFactor = std::pow( 10.0, places );
5217  return ( std::round( number * m * scaleFactor ) / scaleFactor ) * m;
5218 }
5219 
5220 #ifndef SIP_RUN
5221 
5228 template<class Key, class Value>
5229 QString qgsMapJoinKeys( const QMap<Key, Value> &map, const QString &separator )
5230 {
5231  QString result;
5232  for ( auto it = map.constBegin(); it != map.constEnd(); it++ )
5233  result += QString( "%1%2" ).arg( it.key() ).arg( separator );
5234 
5235  result.chop( separator.size() );
5236  return result;
5237 }
5238 
5245 template<class Key, class Value>
5246 QString qgsMapJoinValues( const QMap<Key, Value> &map, const QString &separator )
5247 {
5248  QString result;
5249  for ( auto it = map.constBegin(); it != map.constEnd(); it++ )
5250  result += QString( "%1%2" ).arg( it.value() ).arg( separator );
5251 
5252  result.chop( separator.size() );
5253  return result;
5254 }
5255 
5262 template<class T>
5263 QString qgsSetJoin( const QSet<T> &set, const QString &separator )
5264 {
5265  QString result;
5266  for ( auto it = set.constBegin(); it != set.constEnd(); it++ )
5267  result += QString( "%1%2" ).arg( *it ).arg( separator );
5268 
5269  result.chop( separator.size() );
5270  return result;
5271 }
5272 
5274 
5284 namespace qgis
5285 {
5286 
5299  template<typename To, typename From> inline To down_cast( From *f )
5300  {
5301  static_assert(
5302  ( std::is_base_of<From,
5303  typename std::remove_pointer<To>::type>::value ),
5304  "target type not derived from source type" );
5305  Q_ASSERT( f == nullptr || dynamic_cast<To>( f ) != nullptr );
5306  return static_cast<To>( f );
5307  }
5308 
5309  template<class T>
5310  QSet<T> listToSet( const QList<T> &list )
5311  {
5312  return QSet<T>( list.begin(), list.end() );
5313  }
5314 
5315  template<class T>
5316  QList<T> setToList( const QSet<T> &set )
5317  {
5318  return QList<T>( set.begin(), set.end() );
5319  }
5320 }
5321 
5323 #endif
5324 
5329 template<class T> const QList<T> qgsEnumList() SIP_SKIP
5330 {
5331  const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
5332  Q_ASSERT( metaEnum.isValid() );
5333  QList<T> enumList;
5334  for ( int idx = 0; idx < metaEnum.keyCount(); ++idx )
5335  {
5336  enumList.append( static_cast<T>( metaEnum.value( idx ) ) );
5337  }
5338  return enumList;
5339 }
5340 
5346 template<class T> const QMap<T, QString> qgsEnumMap() SIP_SKIP
5347 {
5348  const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
5349  Q_ASSERT( metaEnum.isValid() );
5350  QMap<T, QString> enumMap;
5351  for ( int idx = 0; idx < metaEnum.keyCount(); ++idx )
5352  {
5353  enumMap.insert( static_cast<T>( metaEnum.value( idx ) ), QString( metaEnum.key( idx ) ) );
5354  }
5355  return enumMap;
5356 }
5357 
5363 template<class T> QString qgsEnumValueToKey( const T &value, bool *returnOk = nullptr ) SIP_SKIP
5364 {
5365  const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
5366  Q_ASSERT( metaEnum.isValid() );
5367  const char *key = metaEnum.valueToKey( static_cast<int>( value ) );
5368  if ( returnOk )
5369  {
5370  *returnOk = key ? true : false;
5371  }
5372  return QString::fromUtf8( key );
5373 }
5374 
5382 template<class T> T qgsEnumKeyToValue( const QString &key, const T &defaultValue, bool tryValueAsKey = true, bool *returnOk = nullptr ) SIP_SKIP
5383 {
5384  const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
5385  Q_ASSERT( metaEnum.isValid() );
5386  bool ok = false;
5387  T v = static_cast<T>( metaEnum.keyToValue( key.toUtf8().data(), &ok ) );
5388  if ( returnOk )
5389  {
5390  *returnOk = ok;
5391  }
5392  if ( ok )
5393  {
5394  return v;
5395  }
5396  else
5397  {
5398  // if conversion has failed, try with conversion from int value
5399  if ( tryValueAsKey )
5400  {
5401  bool canConvert = false;
5402  const int intValue = key.toInt( &canConvert );
5403  if ( canConvert && metaEnum.valueToKey( intValue ) )
5404  {
5405  if ( returnOk )
5406  {
5407  *returnOk = true;
5408  }
5409  return static_cast<T>( intValue );
5410  }
5411  }
5412  }
5413  return defaultValue;
5414 }
5415 
5421 template<class T> QString qgsFlagValueToKeys( const T &value, bool *returnOk = nullptr ) SIP_SKIP
5422 {
5423  const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
5424  Q_ASSERT( metaEnum.isValid() );
5425  int intValue = static_cast<int>( value );
5426  const QByteArray ba = metaEnum.valueToKeys( intValue );
5427  // check that the int value does correspond to a flag
5428  // see https://stackoverflow.com/a/68495949/1548052
5429  const int intValueCheck = metaEnum.keysToValue( ba );
5430  bool ok = intValue == intValueCheck;
5431  if ( returnOk )
5432  *returnOk = ok;
5433  return ok ? QString::fromUtf8( ba ) : QString();
5434 }
5435 
5443 template<class T> T qgsFlagKeysToValue( const QString &keys, const T &defaultValue, bool tryValueAsKey = true, bool *returnOk = nullptr ) SIP_SKIP
5444 {
5445  const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
5446  Q_ASSERT( metaEnum.isValid() );
5447  bool ok = false;
5448  T v = static_cast<T>( metaEnum.keysToValue( keys.toUtf8().constData(), &ok ) );
5449  if ( returnOk )
5450  {
5451  *returnOk = ok;
5452  }
5453  if ( ok )
5454  {
5455  return v;
5456  }
5457  else
5458  {
5459  // if conversion has failed, try with conversion from int value
5460  if ( tryValueAsKey )
5461  {
5462  bool canConvert = false;
5463  const int intValue = keys.toInt( &canConvert );
5464  if ( canConvert )
5465  {
5466  const QByteArray keys = metaEnum.valueToKeys( intValue );
5467  const int intValueCheck = metaEnum.keysToValue( keys );
5468  if ( intValue == intValueCheck )
5469  {
5470  if ( returnOk )
5471  {
5472  *returnOk = true;
5473  }
5474  return T( intValue );
5475  }
5476  }
5477  }
5478  }
5479  return defaultValue;
5480 }
5481 
5482 
5491 CORE_EXPORT double qgsPermissiveToDouble( QString string, bool &ok );
5492 
5501 CORE_EXPORT int qgsPermissiveToInt( QString string, bool &ok );
5502 
5512 CORE_EXPORT qlonglong qgsPermissiveToLongLong( QString string, bool &ok );
5513 
5523 CORE_EXPORT bool qgsVariantLessThan( const QVariant &lhs, const QVariant &rhs );
5524 
5533 CORE_EXPORT bool qgsVariantEqual( const QVariant &lhs, const QVariant &rhs );
5534 
5541 CORE_EXPORT bool qgsVariantGreaterThan( const QVariant &lhs, const QVariant &rhs );
5542 
5543 #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
5544 
5551 inline bool operator> ( const QVariant &v1, const QVariant &v2 )
5552 {
5553  return qgsVariantGreaterThan( v1, v2 );
5554 }
5555 
5565 inline bool operator< ( const QVariant &v1, const QVariant &v2 )
5566 {
5567  return qgsVariantLessThan( v1, v2 );
5568 }
5569 #endif
5570 
5571 
5572 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
5573 
5577 template<> CORE_EXPORT bool qMapLessThanKey<QVariantList>( const QVariantList &key1, const QVariantList &key2 ) SIP_SKIP;
5578 #endif
5579 
5580 CORE_EXPORT QString qgsVsiPrefix( const QString &path );
5581 
5587 void CORE_EXPORT *qgsMalloc( size_t size ) SIP_SKIP;
5588 
5593 void CORE_EXPORT qgsFree( void *ptr ) SIP_SKIP;
5594 
5595 #ifndef SIP_RUN
5596 
5597 #ifdef _MSC_VER
5598 #define CONSTLATIN1STRING inline const QLatin1String
5599 #else
5600 #define CONSTLATIN1STRING constexpr QLatin1String
5601 #endif
5602 
5604 class ScopedIntIncrementor
5605 {
5606  public:
5607 
5608  ScopedIntIncrementor( int *variable )
5609  : mVariable( variable )
5610  {
5611  ( *mVariable )++;
5612  }
5613 
5614  ScopedIntIncrementor( const ScopedIntIncrementor &other ) = delete;
5615  ScopedIntIncrementor &operator=( const ScopedIntIncrementor &other ) = delete;
5616 
5617  void release()
5618  {
5619  if ( mVariable )
5620  ( *mVariable )--;
5621 
5622  mVariable = nullptr;
5623  }
5624 
5625  ~ScopedIntIncrementor()
5626  {
5627  release();
5628  }
5629 
5630  private:
5631  int *mVariable = nullptr;
5632 };
5634 
5640 {
5641  return QLatin1String(
5642  R"""(GEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["unknown"],AREA["World"],BBOX[-90,-180,90,180]],ID["EPSG",4326]] )"""
5643  );
5644 }
5645 
5648 {
5649  return QLatin1String( "+proj=longlat +datum=WGS84 +no_defs" );
5650 }
5651 
5654 {
5655  return QLatin1String( "EPSG:4326" );
5656 }
5657 
5660 {
5661  return QLatin1String( "NONE" );
5662 }
5663 
5665 
5667 const int PREVIEW_JOB_DELAY_MS = 250;
5668 
5670 const int MAXIMUM_LAYER_PREVIEW_TIME_MS = 250;
5671 
5673 
5674 #endif
5675 
5677 const long GEOSRID = 4326;
5678 
5680 const long GEOCRS_ID = 3452;
5681 
5683 const long GEO_EPSG_CRS_ID = 4326;
5684 
5689 const int USER_CRS_START_ID = 100000;
5690 
5691 //
5692 // Constants for point symbols
5693 //
5694 
5696 const double DEFAULT_POINT_SIZE = 2.0;
5697 const double DEFAULT_LINE_WIDTH = 0.26;
5698 
5700 const double DEFAULT_SEGMENT_EPSILON = 1e-8;
5701 
5702 typedef QMap<QString, QString> QgsStringMap SIP_SKIP;
5703 
5712 typedef unsigned long long qgssize;
5713 
5714 #ifndef SIP_RUN
5715 #if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) || defined(__clang__)
5716 
5717 #define Q_NOWARN_DEPRECATED_PUSH \
5718  _Pragma("GCC diagnostic push") \
5719  _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"");
5720 #define Q_NOWARN_DEPRECATED_POP \
5721  _Pragma("GCC diagnostic pop");
5722 #define Q_NOWARN_UNREACHABLE_PUSH
5723 #define Q_NOWARN_UNREACHABLE_POP
5724 
5725 #elif defined(_MSC_VER)
5726 
5727 #define Q_NOWARN_DEPRECATED_PUSH \
5728  __pragma(warning(push)) \
5729  __pragma(warning(disable:4996))
5730 #define Q_NOWARN_DEPRECATED_POP \
5731  __pragma(warning(pop))
5732 #define Q_NOWARN_UNREACHABLE_PUSH \
5733  __pragma(warning(push)) \
5734  __pragma(warning(disable:4702))
5735 #define Q_NOWARN_UNREACHABLE_POP \
5736  __pragma(warning(pop))
5737 
5738 #else
5739 
5740 #define Q_NOWARN_DEPRECATED_PUSH
5741 #define Q_NOWARN_DEPRECATED_POP
5742 #define Q_NOWARN_UNREACHABLE_PUSH
5743 #define Q_NOWARN_UNREACHABLE_POP
5744 
5745 #endif
5746 #endif
5747 
5748 #ifndef QGISEXTERN
5749 #ifdef Q_OS_WIN
5750 # define QGISEXTERN extern "C" __declspec( dllexport )
5751 #else
5752 # if defined(__GNUC__) || defined(__clang__)
5753 # define QGISEXTERN extern "C" __attribute__ ((visibility ("default")))
5754 # else
5755 # define QGISEXTERN extern "C"
5756 # endif
5757 #endif
5758 #endif
5759 #endif
5760 
5761 // see https://infektor.net/posts/2017-01-19-using-cpp17-attributes-today.html#using-the-nodiscard-attribute
5762 #if __cplusplus >= 201703L
5763 #define NODISCARD [[nodiscard]]
5764 #elif defined(__clang__)
5765 #define NODISCARD [[nodiscard]]
5766 #elif defined(_MSC_VER)
5767 #define NODISCARD // no support
5768 #elif defined(__has_cpp_attribute)
5769 #if __has_cpp_attribute(nodiscard)
5770 #define NODISCARD [[nodiscard]]
5771 #elif __has_cpp_attribute(gnu::warn_unused_result)
5772 #define NODISCARD [[gnu::warn_unused_result]]
5773 #else
5774 #define NODISCARD Q_REQUIRED_RESULT
5775 #endif
5776 #else
5777 #define NODISCARD Q_REQUIRED_RESULT
5778 #endif
5779 
5780 #if __cplusplus >= 201703L
5781 #define MAYBE_UNUSED [[maybe_unused]]
5782 #elif defined(__clang__)
5783 #define MAYBE_UNUSED [[maybe_unused]]
5784 #elif defined(_MSC_VER)
5785 #define MAYBE_UNUSED // no support
5786 #elif defined(__has_cpp_attribute)
5787 #if __has_cpp_attribute(gnu::unused)
5788 #define MAYBE_UNUSED [[gnu::unused]]
5789 #else
5790 #define MAYBE_UNUSED
5791 #endif
5792 #else
5793 #define MAYBE_UNUSED
5794 #endif
5795 
5796 #ifndef FINAL
5797 #define FINAL final
5798 #endif
5799 
5800 #ifndef SIP_RUN
5801 #ifdef _MSC_VER
5802 #define BUILTIN_UNREACHABLE \
5803  __assume(false);
5804 #elif defined(__GNUC__) && !defined(__clang__)
5805 // Workaround a GCC bug where a -Wreturn-type warning is emitted in constructs
5806 // like:
5807 // switch( mVariableThatCanOnlyBeXorY )
5808 // {
5809 // case X:
5810 // return "foo";
5811 // case Y:
5812 // return "foo";
5813 // }
5814 // See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87951
5815 #define BUILTIN_UNREACHABLE \
5816  __builtin_unreachable();
5817 #else
5818 #define BUILTIN_UNREACHABLE
5819 #endif
5820 #endif // SIP_RUN
5821 
5822 #ifdef SIP_RUN
5823 
5828 QString CORE_EXPORT geoWkt();
5829 
5831 QString CORE_EXPORT geoProj4();
5832 
5834 QString CORE_EXPORT geoEpsgCrsAuthId();
5835 
5837 QString CORE_EXPORT geoNone();
5838 
5839 #endif
The Qgis class provides global constants for use throughout the application.
Definition: qgis.h:54
DistanceUnitType
Types of distance units.
Definition: qgis.h:4113
GnssConstellation
GNSS constellation.
Definition: qgis.h:1472
SettingsOption
Settings options.
Definition: qgis.h:515
ProfileGeneratorFlag
Flags that control the way the QgsAbstractProfileGenerator operate.
Definition: qgis.h:3426
ProcessingSourceType
Processing data source types.
Definition: qgis.h:2838
GpsQualityIndicator
GPS signal quality indicator.
Definition: qgis.h:1490
DataItemProviderCapability
Capabilities for data item providers.
Definition: qgis.h:711
ProcessingFileParameterBehavior
Flags which dictate the behavior of QgsProcessingParameterFile.
Definition: qgis.h:3057
QFlags< MapLayerRendererFlag > MapLayerRendererFlags
Flags which control how map layer renderers behave.
Definition: qgis.h:2278
ProjectReadFlag
Flags which control project read behavior.
Definition: qgis.h:3510
QFlags< BabelCommandFlag > BabelCommandFlags
Babel command flags.
Definition: qgis.h:1571
MapToolUnit
Type of unit of tolerance value from settings.
Definition: qgis.h:4058
PlotAxisSuffixPlacement
Placement options for suffixes in the labels for axis of plots.
Definition: qgis.h:2682
QFlags< GpsInformationComponent > GpsInformationComponents
GPS information component.
Definition: qgis.h:1538
PointCloudSymbol
Rendering symbols for point cloud points.
Definition: qgis.h:3454
SymbolRotationMode
Modes for handling how symbol and text entity rotation is handled when maps are rotated.
Definition: qgis.h:574
GeometryValidityFlag
Geometry validity check flags.
Definition: qgis.h:1625
ExpressionType
Expression types.
Definition: qgis.h:4428
MapLayerActionFlag
Map layer action flags.
Definition: qgis.h:3819
MapLayerProperty
Generic map layer properties.
Definition: qgis.h:1800
BufferSide
Side of line to buffer.
Definition: qgis.h:1650
RasterResamplingStage
Stage at which raster resampling occurs.
Definition: qgis.h:1138
QFlags< MapLayerActionTarget > MapLayerActionTargets
Map layer action targets.
Definition: qgis.h:3808
VectorTileProviderCapability
Enumeration with capabilities that vector tile data providers might implement.
Definition: qgis.h:4474
AltitudeClamping
Altitude clamping.
Definition: qgis.h:3218
VectorTileProviderFlag
Flags for vector tile data providers.
Definition: qgis.h:4456
VectorTemporalMode
Vector layer temporal feature modes.
Definition: qgis.h:2083
SublayerFlag
Flags which reflect the properties of sublayers in a dataset.
Definition: qgis.h:1107
QFlags< ProjectCapability > ProjectCapabilities
Flags which control project capabilities.
Definition: qgis.h:3550
LabelLinePlacementFlag
Line placement flags, which control how candidates are generated for a linear feature.
Definition: qgis.h:994
CoordinateDisplayType
Formats for displaying coordinates.
Definition: qgis.h:3658
ProcessingParameterTypeFlag
Flags which dictate the behavior of Processing parameter types.
Definition: qgis.h:3005
DashPatternSizeAdjustment
Dash pattern size adjustment options.
Definition: qgis.h:2655
GpsFixStatus
GPS fix status.
Definition: qgis.h:1457
AnnotationItemNodeType
Annotation item node types.
Definition: qgis.h:2011
static const char * QGIS_DEV_VERSION
The development version.
Definition: qgis.h:82
VectorFileWriterCapability
Capabilities supported by a QgsVectorFileWriter object.
Definition: qgis.h:805
QFlags< MapSettingsFlag > MapSettingsFlags
Map settings flags.
Definition: qgis.h:2224
CrsIdentifierType
Available identifier string types for representing coordinate reference systems.
Definition: qgis.h:1936
QFlags< RasterRendererFlag > RasterRendererFlags
Flags which control behavior of raster renderers.
Definition: qgis.h:1161
AngularDirection
Angular directions.
Definition: qgis.h:2770
DriveType
Drive types.
Definition: qgis.h:858
UnitType
Unit types.
Definition: qgis.h:4073
ContentStatus
Status for fetched or stored content.
Definition: qgis.h:1413
QFlags< SelectionFlag > SelectionFlags
Flags which control feature selection behavior.
Definition: qgis.h:1375
SnappingType
SnappingTypeFlag defines on what object the snapping is performed.
Definition: qgis.h:540
LayoutUnit
Layout measurement units.
Definition: qgis.h:4241
Q_ENUM(GpsFixStatus)
RelationshipStrength
Relationship strength.
Definition: qgis.h:3611
Q_ENUM(GnssConstellation)
MarkerLinePlacement
Defines how/where the symbols should be placed on a line.
Definition: qgis.h:2520
QFlags< ProjectReadFlag > ProjectReadFlags
Project load flags.
Definition: qgis.h:3528
Point3DShape
3D point shape types.
Definition: qgis.h:3345
GeometryOperationResult
Success or failure of a geometry operation.
Definition: qgis.h:1596
QFlags< StringStatistic > StringStatistics
Statistics to be calculated for string values.
Definition: qgis.h:4795
BrowserItemState
Browser item states.
Definition: qgis.h:674
AttributeEditorContainerType
Attribute editor container types.
Definition: qgis.h:4369
QFlags< TiledSceneProviderCapability > TiledSceneProviderCapabilities
Tiled scene data provider capabilities.
Definition: qgis.h:4517
FeatureRequestFilterType
Types of feature request filters.
Definition: qgis.h:1743
MarkerClipMode
Marker clipping modes.
Definition: qgis.h:2613
AnnotationItemFlag
Flags for annotation items.
Definition: qgis.h:1983
RenderSubcomponentProperty
Rendering subcomponent properties.
Definition: qgis.h:2444
ProcessingTinInputLayerType
Defines the type of input layer for a Processing TIN input.
Definition: qgis.h:3134
QFlags< DataProviderFlag > DataProviderFlags
Data provider flags.
Definition: qgis.h:1834
Statistic
Available generic statistics.
Definition: qgis.h:4713
SymbolRenderHint
Flags controlling behavior of symbols during rendering.
Definition: qgis.h:560
AngleUnit
Units of angles.
Definition: qgis.h:4176
CaptureTechnique
Capture technique.
Definition: qgis.h:294
SpatialIndexPresence
Enumeration of spatial index presence states.
Definition: qgis.h:349
BrowserItemCapability
Browser item capabilities.
Definition: qgis.h:687
AttributeFormSuppression
Available form types for layout of the attribute form editor.
Definition: qgis.h:4399
QFlags< LayerTreeFilterFlag > LayerTreeFilterFlags
Layer tree filter flags.
Definition: qgis.h:3751
LayerTreeInsertionMethod
Layer tree insertion methods.
Definition: qgis.h:3728
LineClipMode
Line clipping modes.
Definition: qgis.h:2627
QFlags< GeometryValidityFlag > GeometryValidityFlags
Geometry validity flags.
Definition: qgis.h:1629
BrowserDirectoryMonitoring
Browser directory item monitoring switches.
Definition: qgis.h:760
SettingsTreeNodeType
Type of tree node.
Definition: qgis.h:445
TilePixelRatio
DpiMode enum.
Definition: qgis.h:2710
DatabaseProviderConnectionCapability2
The Capability enum represents the extended operations supported by the connection.
Definition: qgis.h:4306
LabelOffsetType
Behavior modifier for label offset and distance, only applies in some label placement modes.
Definition: qgis.h:960
QFlags< ProfileGeneratorFlag > ProfileGeneratorFlags
Definition: qgis.h:3432
GradientColorSource
Gradient color sources.
Definition: qgis.h:2542
FileFilterType
Type of file filters.
Definition: qgis.h:1073
LabelPlacement
Placement modes which determine how label candidates are generated for a feature.
Definition: qgis.h:914
RasterLayerType
Raster layer types.
Definition: qgis.h:3908
QFlags< VectorLayerTypeFlag > VectorLayerTypeFlags
Vector layer type flags.
Definition: qgis.h:313
RasterPyramidFormat
Raster pyramid formats.
Definition: qgis.h:3947
VectorExportResult
Vector layer export result codes.
Definition: qgis.h:784
DistanceUnit
Units of distance.
Definition: qgis.h:4090
RasterTemporalCapabilityFlag
Flags for raster layer temporal capabilities.
Definition: qgis.h:2152
SymbolLayerFlag
Flags controlling behavior of symbol layers.
Definition: qgis.h:618
GradientSpread
Gradient spread options, which control how gradients are rendered outside of their start and end poin...
Definition: qgis.h:2586
QFlags< AnnotationItemGuiFlag > AnnotationItemGuiFlags
Annotation item GUI flags.
Definition: qgis.h:2001
LabelPolygonPlacementFlag
Polygon placement flags, which control how candidates are generated for a polygon feature.
Definition: qgis.h:1019
ScaleMethod
Scale methods.
Definition: qgis.h:415
SldExportOption
SLD export options.
Definition: qgis.h:487
FilePathType
File path types.
Definition: qgis.h:1261
CadConstraintType
Advanced digitizing constraint type.
Definition: qgis.h:3295
AttributeFormPythonInitCodeSource
The Python init code source for attribute forms.
Definition: qgis.h:4414
PointCountMethod
Methods which define the number of points randomly filling a polygon.
Definition: qgis.h:2601
SldExportVendorExtension
SLD export vendor extensions, allow the use of vendor extensions when exporting to SLD.
Definition: qgis.h:502
LayerTreeFilterFlag
Layer tree filter flags.
Definition: qgis.h:3741
AttributeFormLayout
Available form types for layout of the attribute form editor.
Definition: qgis.h:4384
FeatureRequestFlag
Flags for controlling feature requests.
Definition: qgis.h:1715
VertexType
Types of vertex.
Definition: qgis.h:2457
DataProviderFlag
Generic data provider flags.
Definition: qgis.h:1828
GdalResampleAlgorithm
Resampling algorithm to be used (equivalent to GDAL's enum GDALResampleAlg)
Definition: qgis.h:4608
GeometryValidationEngine
Available engines for validating geometries.
Definition: qgis.h:1638
TransactionMode
Transaction mode.
Definition: qgis.h:3205
Q_ENUM(ScaleToTileZoomLevelMethod)
ElevationMapCombineMethod
Methods used to select the elevation when two elevation maps are combined.
Definition: qgis.h:3992
RasterDrawingStyle
Raster drawing styles.
Definition: qgis.h:3924
GpsInformationComponent
GPS information component.
Definition: qgis.h:1510
ViewSyncModeFlag
Synchronization of 2D map canvas and 3D view.
Definition: qgis.h:2796
ProcessingProviderFlag
Flags indicating how and when an processing provider operates and should be exposed to users.
Definition: qgis.h:2864
FileOperationFlag
File operation flags.
Definition: qgis.h:1785
QFlags< DataItemProviderCapability > DataItemProviderCapabilities
Capabilities for data item providers.
Definition: qgis.h:727
ProjectCapability
Flags which control project capabilities.
Definition: qgis.h:3540
QFlags< BabelFormatCapability > BabelFormatCapabilities
Babel GPS format capabilities.
Definition: qgis.h:1556
QFlags< SymbolLayerFlag > SymbolLayerFlags
Symbol layer flags.
Definition: qgis.h:623
Q_ENUM(VectorProfileType)
AttributeActionType
Attribute action types.
Definition: qgis.h:3842
TemporalNavigationMode
Temporal navigation modes.
Definition: qgis.h:2037
ProcessingFieldParameterDataType
Processing field parameter data types.
Definition: qgis.h:3085
AreaUnit
Units of area.
Definition: qgis.h:4128
StringStatistic
Available string statistics.
Definition: qgis.h:4775
FieldDomainMergePolicy
Merge policy for field domains.
Definition: qgis.h:3179
ZonalStatistic
Statistics to be calculated during a zonal statistics operation.
Definition: qgis.h:4631
MessageLevel
Level for messages This will be used both for message log and message bar in application.
Definition: qgis.h:99
SqlKeywordCategory
SqlKeywordCategory enum represents the categories of the SQL keywords used by the SQL query editor.
Definition: qgis.h:840
QFlags< SnappingType > SnappingTypes
Snapping types.
Definition: qgis.h:551
GraduatedMethod
Methods for modifying symbols by range in a graduated symbol renderer.
Definition: qgis.h:2670
QFlags< LabelLinePlacementFlag > LabelLinePlacementFlags
Line placement flags, which control how candidates are generated for a linear feature.
Definition: qgis.h:1009
TiledSceneBoundingVolumeType
Tiled scene bounding volume types.
Definition: qgis.h:4526
TextLayoutMode
Text layout modes.
Definition: qgis.h:2363
PropertyType
Property types.
Definition: qgis.h:473
QFlags< RenderContextFlag > RenderContextFlags
Render context flags.
Definition: qgis.h:2257
LayerFilter
Filter for layers.
Definition: qgis.h:133
Q_ENUM(ProviderStyleStorageCapability)
QFlags< SublayerFlag > SublayerFlags
Sublayer flags.
Definition: qgis.h:1111
RasterRendererFlag
Flags which control behavior of raster renderers.
Definition: qgis.h:1152
CrsType
Coordinate reference system types.
Definition: qgis.h:1846
SensorThingsEntity
OGC SensorThings API entity types.
Definition: qgis.h:4831
MeshEditingErrorType
Type of error that can occur during mesh frame editing.
Definition: qgis.h:1244
FieldDomainSplitPolicy
Split policy for field domains.
Definition: qgis.h:3162
ArcGisRestServiceType
Available ArcGIS REST service types.
Definition: qgis.h:3578
RasterFileWriterResult
Raster file export results.
Definition: qgis.h:1227
AnnotationItemEditOperationResult
Results from an edit operation on an annotation item.
Definition: qgis.h:2022
ProcessingPropertyAvailability
Property availability, used for QgsProcessingAlgorithm::VectorProperties in order to determine if pro...
Definition: qgis.h:2926
MapRecenteringMode
Modes for recentering map canvases.
Definition: qgis.h:2809
ActionType
Action types.
Definition: qgis.h:3778
ActionStart
Enum to determine when an operation would begin.
Definition: qgis.h:875
PlaybackOperation
Media playback operations.
Definition: qgis.h:2066
QFlags< SymbolLayerUserFlag > SymbolLayerUserFlags
Symbol layer user flags.
Definition: qgis.h:646
QFlags< TextRendererFlag > TextRendererFlags
Definition: qgis.h:2749
ProviderStyleStorageCapability
The StorageCapability enum represents the style storage operations supported by the provider.
Definition: qgis.h:4320
AvoidIntersectionsMode
Flags which control how intersections of pre-existing feature are handled when digitizing new feature...
Definition: qgis.h:3481
MarkerShape
Marker shapes.
Definition: qgis.h:2471
LegendJsonRenderFlag
Legend JSON export flags.
Definition: qgis.h:3763
BlendMode
Blending modes defining the available composition modes that can be used when painting.
Definition: qgis.h:4007
RasterElevationMode
Raster layer elevation modes.
Definition: qgis.h:3257
Capitalization
String capitalization options.
Definition: qgis.h:2727
TemporalIntervalMatchMethod
Method to use when resolving a temporal range to a data provider layer or band.
Definition: qgis.h:2137
QFlags< LabelPolygonPlacementFlag > LabelPolygonPlacementFlags
Polygon placement flags, which control how candidates are generated for a polygon feature.
Definition: qgis.h:1031
LabelQuadrantPosition
Label quadrant positions.
Definition: qgis.h:974
QFlags< PlotToolFlag > PlotToolFlags
Definition: qgis.h:3333
ScaleToTileZoomLevelMethod
Available methods for converting map scales to tile zoom levels.
Definition: qgis.h:2758
SublayerQueryFlag
Flags which control how data providers will scan for sublayers in a dataset.
Definition: qgis.h:1090
QFlags< VectorFileWriterCapability > VectorFileWriterCapabilities
Capabilities supported by a QgsVectorFileWriter object.
Definition: qgis.h:815
TextOrientation
Text orientations.
Definition: qgis.h:2348
PythonMacroMode
Authorisation to run Python Macros.
Definition: qgis.h:321
TemporalUnit
Temporal units.
Definition: qgis.h:4197
QFlags< SymbolPreviewFlag > SymbolPreviewFlags
Symbol preview flags.
Definition: qgis.h:605
UnplacedLabelVisibility
Unplaced label visibility.
Definition: qgis.h:887
CrsDefinitionFormat
CRS definition formats.
Definition: qgis.h:3147
SpatialFilterType
Feature request spatial filter types.
Definition: qgis.h:1772
QFlags< ProcessingParameterTypeFlag > ProcessingParameterTypeFlags
Flags which dictate the behavior of Processing parameter types.
Definition: qgis.h:3020
TileAvailability
Possible availability states for a tile within a tile matrix.
Definition: qgis.h:4493
ProjectFlag
Flags which control the behavior of QgsProjects.
Definition: qgis.h:3313
BrowserItemType
Browser item types.
Definition: qgis.h:655
QFlags< FeatureRequestFlag > FeatureRequestFlags
Flags for controlling feature requests.
Definition: qgis.h:1732
SettingsType
Types of settings entries.
Definition: qgis.h:426
QFlags< SettingsOption > SettingsOptions
Definition: qgis.h:520
RasterTemporalMode
Raster layer temporal modes.
Definition: qgis.h:2124
RasterAttributeTableType
The RasterAttributeTableType enum represents the type of RAT.
Definition: qgis.h:1201
LabelingFlag
Various flags that affect drawing and placement of labels.
Definition: qgis.h:2303
GeometryType
The geometry types are used to group Qgis::WkbType in a coarse way.
Definition: qgis.h:255
RelationshipType
Relationship types.
Definition: qgis.h:3597
ScriptLanguageCapability
Script language capabilities.
Definition: qgis.h:3707
JoinStyle
Join styles for buffers.
Definition: qgis.h:1675
PointCloudDrawOrder
Pointcloud rendering order for 2d views.
Definition: qgis.h:3466
QFlags< RasterBandStatistic > RasterBandStatistics
Statistics to be calculated for raster bands.
Definition: qgis.h:4822
TextCharacterVerticalAlignment
Text vertical alignment for characters.
Definition: qgis.h:2431
UserProfileSelectionPolicy
User profile selection policy.
Definition: qgis.h:4335
QFlags< FileOperationFlag > FileOperationFlags
File operation flags.
Definition: qgis.h:1790
DpiMode
DpiMode enum.
Definition: qgis.h:2696
Q_ENUM(ProfileExportType)
BrowserLayerType
Browser item layer types.
Definition: qgis.h:736
QFlags< ProcessingAlgorithmFlag > ProcessingAlgorithmFlags
Flags indicating how and when an algorithm operates and should be exposed to users.
Definition: qgis.h:2914
AltitudeBinding
Altitude binding.
Definition: qgis.h:3231
Q_ENUM(ProcessingProviderFlag)
TiledSceneRendererFlag
Flags which control how tiled scene 2D renderers behave.
Definition: qgis.h:4586
MapLayerActionTarget
Map layer action targets.
Definition: qgis.h:3793
ZonalStatisticResult
Zonal statistics result codes.
Definition: qgis.h:4663
ScriptLanguage
Scripting languages.
Definition: qgis.h:3684
QFlags< BrowserItemCapability > BrowserItemCapabilities
Browser item capabilities.
Definition: qgis.h:700
FeatureAvailability
Possible return value for QgsFeatureSource::hasFeatures() to determine if a source is empty.
Definition: qgis.h:368
TiledSceneProviderCapability
Tiled scene data provider capabilities.
Definition: qgis.h:4507
LabelMultiLineAlignment
Text alignment for multi-line labels.
Definition: qgis.h:1057
RasterBandStatistic
Available raster band statistics.
Definition: qgis.h:4804
QFlags< VectorTileProviderCapability > VectorTileProviderCapabilities
Vector tile data provider capabilities.
Definition: qgis.h:4484
QFlags< ZonalStatistic > ZonalStatistics
Statistics to be calculated during a zonal statistics operation.
Definition: qgis.h:4654
VectorDataProviderTemporalMode
Vector data provider temporal handling modes.
Definition: qgis.h:2111
TextRenderFormat
Options for rendering text.
Definition: qgis.h:2289
DataType
Raster data types.
Definition: qgis.h:269
Q_ENUM(ProfileSurfaceSymbology)
QFlags< ViewSyncModeFlag > ViewSyncModeFlags
Definition: qgis.h:2801
QFlags< SublayerQueryFlag > SublayerQueryFlags
Sublayer query flags.
Definition: qgis.h:1097
SystemOfMeasurement
Systems of unit measurement.
Definition: qgis.h:4043
RasterAttributeTableFieldUsage
The RasterAttributeTableFieldUsage enum represents the usage of a Raster Attribute Table field.
Definition: qgis.h:1172
VerticalAxisInversion
Vertical axis inversion options for 3D views.
Definition: qgis.h:3388
QFlags< CoordinateTransformationFlag > CoordinateTransformationFlags
Coordinate transformation flags.
Definition: qgis.h:2194
RelationshipCapability
Relationship capabilities.
Definition: qgis.h:3637
RasterBuildPyramidOption
Raster pyramid building options.
Definition: qgis.h:3962
NavigationMode
The navigation mode used by 3D cameras.
Definition: qgis.h:3376
TileChildrenAvailability
Possible availability states for a tile's children.
Definition: qgis.h:4554
LayerType
Types of layers that can be added to a map.
Definition: qgis.h:114
QFlags< AnnotationItemFlag > AnnotationItemFlags
Annotation item flags.
Definition: qgis.h:1987
QFlags< Statistic > Statistics
Statistics to be calculated for generic values.
Definition: qgis.h:4741
PlotToolFlag
Flags that control the way the QgsPlotTools operate.
Definition: qgis.h:3329
RenderUnit
Rendering size units.
Definition: qgis.h:4221
CoordinateOrder
Order of coordinates.
Definition: qgis.h:1921
SelectionFlag
Flags which control feature selection behavior.
Definition: qgis.h:1365
QFlags< SettingsTreeNodeOption > SettingsTreeNodeOptions
Definition: qgis.h:462
EndCapStyle
End cap styles for buffers.
Definition: qgis.h:1662
QFlags< TiledSceneRequestFlag > TiledSceneRequestFlags
Flags which control how tiled scene requests behave.
Definition: qgis.h:4577
QFlags< MapLayerActionFlag > MapLayerActionFlags
Map layer action flags.
Definition: qgis.h:3831
QFlags< MapLayerProperty > MapLayerProperties
Map layer properties.
Definition: qgis.h:1805
BabelCommandFlag
Babel command flags, which control how commands and arguments are generated for executing GPSBabel pr...
Definition: qgis.h:1567
QFlags< LabelingFlag > LabelingFlags
Flags that affect drawing and placement of labels.
Definition: qgis.h:2323
FieldDomainType
Types of field domain.
Definition: qgis.h:3192
MapLayerRendererFlag
Flags which control how map layer renderers behave.
Definition: qgis.h:2267
RenderContextFlag
Flags which affect rendering operations.
Definition: qgis.h:2234
RasterPipeInterfaceRole
Raster pipe interface roles.
Definition: qgis.h:1121
CoverageValidityResult
Coverage validity results.
Definition: qgis.h:1688
Aggregate
Available aggregates to calculate.
Definition: qgis.h:4681
SymbolPreviewFlag
Flags for controlling how symbol preview images are generated.
Definition: qgis.h:600
AnnotationItemGuiFlag
Flags for controlling how an annotation item behaves in the GUI.
Definition: qgis.h:1997
MapBoxGlStyleSourceType
Available MapBox GL style source types.
Definition: qgis.h:3559
LayoutUnitType
Types of layout units.
Definition: qgis.h:4261
VectorDataProviderAttributeEditCapability
Attribute editing capabilities which may be supported by vector data providers.
Definition: qgis.h:381
DashPatternLineEndingRule
Dash pattern line ending rules.
Definition: qgis.h:2640
FieldMetadataProperty
Standard field metadata values.
Definition: qgis.h:1313
TiledSceneRequestFlag
Flags which control how tiled scene requests behave.
Definition: qgis.h:4567
VertexMarkerType
Editing vertex markers, used for showing vertices during a edit operation.
Definition: qgis.h:1401
HistoryProviderBackend
History provider backends.
Definition: qgis.h:2822
RasterExportType
Raster file export types.
Definition: qgis.h:1214
SublayerPromptMode
Specifies how to handle layer sources with multiple sublayers.
Definition: qgis.h:1273
TextVerticalAlignment
Text vertical alignment.
Definition: qgis.h:2415
RelationshipCardinality
Relationship cardinality.
Definition: qgis.h:3623
GradientType
Gradient types.
Definition: qgis.h:2556
QFlags< ScriptLanguageCapability > ScriptLanguageCapabilities
Script language capabilities.
Definition: qgis.h:3719
VectorProfileType
Types of elevation profiles to generate for vector sources.
Definition: qgis.h:3414
GpsFeatureType
GPS feature types.
Definition: qgis.h:1581
VectorLayerTypeFlag
Vector layer type flags.
Definition: qgis.h:308
MakeValidMethod
Algorithms to use when repairing invalid geometries.
Definition: qgis.h:1701
RangeLimits
Describes how the limits of a range are handled.
Definition: qgis.h:3243
QFlags< ProjectFlag > ProjectFlags
Definition: qgis.h:3320
VectorTemporalLimitMode
Mode for the handling of the limits of the filtering timeframe for vector features.
Definition: qgis.h:2099
QFlags< ProcessingParameterFlag > ProcessingParameterFlags
Flags which dictate the behavior of Processing parameters.
Definition: qgis.h:3046
SqlLayerDefinitionCapability
SqlLayerDefinitionCapability enum lists the arguments supported by the provider when creating SQL que...
Definition: qgis.h:823
VectorEditResult
Specifies the result of a vector layer edit operation.
Definition: qgis.h:1386
QFlags< VectorDataProviderAttributeEditCapability > VectorDataProviderAttributeEditCapabilities
Attribute editing capabilities which may be supported by vector data providers.
Definition: qgis.h:393
Axis
Cartesian axes.
Definition: qgis.h:1970
QFlags< RelationshipCapability > RelationshipCapabilities
Relationship capabilities.
Definition: qgis.h:3649
QFlags< SymbolRenderHint > SymbolRenderHints
Symbol render hints.
Definition: qgis.h:565
VolumeUnit
Units of volume.
Definition: qgis.h:4153
AttributeEditorType
Attribute editor types.
Definition: qgis.h:4350
QFlags< LegendJsonRenderFlag > LegendJsonRenderFlags
Definition: qgis.h:3767
QFlags< ProviderStyleStorageCapability > ProviderStyleStorageCapabilities
Definition: qgis.h:4326
SymbolLayerUserFlag
User-specified flags controlling behavior of symbol layers.
Definition: qgis.h:636
InvalidGeometryCheck
Methods for handling of features with invalid geometries.
Definition: qgis.h:1759
QFlags< SymbolFlag > SymbolFlags
Symbol flags.
Definition: qgis.h:591
QFlags< ProcessingFeatureSourceDefinitionFlag > ProcessingFeatureSourceDefinitionFlags
Flags which control behavior for a Processing feature source.
Definition: qgis.h:2968
ProfileExportType
Types of export for elevation profiles.
Definition: qgis.h:3441
ProjectFileFormat
Flags which control project read behavior.
Definition: qgis.h:3496
SnappingMode
SnappingMode defines on which layer the snapping is performed.
Definition: qgis.h:528
SymbolType
Symbol types.
Definition: qgis.h:401
RasterColorInterpretation
Raster color interpretation.
Definition: qgis.h:3878
ProfileSurfaceSymbology
Surface symbology type for elevation profile plots.
Definition: qgis.h:3401
LabelPlacementEngineVersion
Labeling placement engine version.
Definition: qgis.h:2334
Q_ENUM(ProcessingAlgorithmFlag)
RendererUsage
Usage of the renderer.
Definition: qgis.h:2783
SettingsTreeNodeOption
Options for named list nodes.
Definition: qgis.h:457
BabelFormatCapability
Babel GPS format capabilities.
Definition: qgis.h:1548
PostgresRelKind
Postgres database relkind options.
Definition: qgis.h:4285
GpsConnectionType
GPS connection types.
Definition: qgis.h:1428
Q_ENUM(InputControllerType)
QFlags< DatabaseProviderConnectionCapability2 > DatabaseProviderConnectionCapabilities2
Definition: qgis.h:4311
ProcessingFeatureSourceDefinitionFlag
Flags which control behavior for a Processing feature source.
Definition: qgis.h:2955
BetweenLineConstraint
Between line constraints which can be enabled.
Definition: qgis.h:3269
QFlags< VectorTileProviderFlag > VectorTileProviderFlags
Vector tile data provider flags.
Definition: qgis.h:4466
MetadataDateType
Date types for metadata.
Definition: qgis.h:3860
QFlags< RasterTemporalCapabilityFlag > RasterTemporalCapabilityFlags
Flags for raster layer temporal capabilities.
Definition: qgis.h:2162
ProcessingFeatureSourceFlag
Flags which control how QgsProcessingFeatureSource fetches features.
Definition: qgis.h:2979
RasterIdentifyFormat
Raster identify formats.
Definition: qgis.h:3977
TextHorizontalAlignment
Text horizontal alignment.
Definition: qgis.h:2396
SymbolFlag
Flags controlling behavior of symbols.
Definition: qgis.h:586
LineExtensionSide
Designates whether the line extension constraint is currently soft locked with the previous or next v...
Definition: qgis.h:3282
HttpMethod
Different methods of HTTP requests.
Definition: qgis.h:772
WkbType
The WKB type describes the number of dimensions a geometry has.
Definition: qgis.h:182
QFlags< SldExportOption > SldExportOptions
Definition: qgis.h:493
SymbolCoordinateReference
Symbol coordinate reference modes.
Definition: qgis.h:2571
QFlags< ProcessingProviderFlag > ProcessingProviderFlags
Flags indicating how and when an processing provider operates and should be exposed to users.
Definition: qgis.h:2877
TileRefinementProcess
Tiled scene tile refinement processes.
Definition: qgis.h:4542
QFlags< DateTimeStatistic > DateTimeStatistics
Statistics to be calculated for date/time values.
Definition: qgis.h:4766
SelectionRenderingMode
Specifies how a selection should be rendered.
Definition: qgis.h:1326
InputControllerType
Input controller types.
Definition: qgis.h:4273
TextRendererFlag
Flags which control the behavior of rendering text.
Definition: qgis.h:2745
SelectGeometryRelationship
Geometry relationship test to apply for selecting features.
Definition: qgis.h:1353
CrsAxisDirection
Coordinate reference system axis directions.
Definition: qgis.h:1871
ProcessingModelChildParameterSource
Processing model child parameter sources.
Definition: qgis.h:3116
QFlags< MarkerLinePlacement > MarkerLinePlacements
Definition: qgis.h:2531
CrsWktVariant
Coordinate reference system WKT formatting variants.
Definition: qgis.h:1951
QFlags< TiledSceneRendererFlag > TiledSceneRendererFlags
Flags which control how tiled scene 2D renderers behave.
Definition: qgis.h:4599
AutoRefreshMode
Map layer automatic refresh modes.
Definition: qgis.h:1815
ProcessingAlgorithmFlag
Flags indicating how and when an algorithm operates and should be exposed to users.
Definition: qgis.h:2888
FieldConfigurationFlag
Configuration flags for fields These flags are meant to be user-configurable and are not describing a...
Definition: qgis.h:1289
SettingsOrigin
The setting origin describes where a setting is stored.
Definition: qgis.h:3671
ProcessingParameterFlag
Flags which dictate the behavior of Processing parameters.
Definition: qgis.h:3031
LabelOverlapHandling
Label overlap handling.
Definition: qgis.h:899
FeatureSymbologyExport
Options for exporting features considering their symbology.
Definition: qgis.h:4443
QFlags< LayerFilter > LayerFilters
Definition: qgis.h:151
ProcessingDateTimeParameterDataType
Processing date time parameter data types.
Definition: qgis.h:3103
CoordinateTransformationFlag
Flags which adjust the coordinate transformations behave.
Definition: qgis.h:2183
TextComponent
Text components.
Definition: qgis.h:2380
DateTimeStatistic
Available date/time statistics.
Definition: qgis.h:4750
AnimationState
Animation states.
Definition: qgis.h:2053
TransformDirection
Indicates the direction (forward or inverse) of a transform.
Definition: qgis.h:2171
LightSourceType
Light source types for 3D scenes.
Definition: qgis.h:3364
QFlags< ProcessingFeatureSourceFlag > ProcessingFeatureSourceFlags
Flags which control how QgsProcessingFeatureSource fetches features.
Definition: qgis.h:2991
QFlags< HistoryProviderBackend > HistoryProviderBackends
Definition: qgis.h:2827
LabelPredefinedPointPosition
Positions for labels when using the Qgis::LabelPlacement::OrderedPositionsAroundPoint placement mode.
Definition: qgis.h:935
QFlags< FieldConfigurationFlag > FieldConfigurationFlags
Configuration flags for fields These flags are meant to be user-configurable and are not describing a...
Definition: qgis.h:1304
UpsideDownLabelHandling
Handling techniques for upside down labels.
Definition: qgis.h:1042
DeviceConnectionStatus
GPS connection status.
Definition: qgis.h:1442
ProcessingNumberParameterType
Processing numeric parameter data types.
Definition: qgis.h:3071
MapSettingsFlag
Flags which adjust the way maps are rendered.
Definition: qgis.h:2203
QFlags< SqlLayerDefinitionCapability > SqlLayerDefinitionCapabilities
SQL layer definition capabilities.
Definition: qgis.h:831
ProcessingLogLevel
Logging level for algorithms to use when pushing feedback messages.
Definition: qgis.h:2940
SelectBehavior
Specifies how a selection should be applied.
Definition: qgis.h:1339
Utility class that encapsulates an action based on vector attributes.
Definition: qgsaction.h:37
Utility class for calculating aggregates for a field (or expression) over the features from a vector ...
Utility functions for working with ArcGIS REST services.
This is an abstract base class for any elements of a drag and drop form.
This class represents a coordinate reference system (CRS).
Class for doing transforms between two map coordinate systems.
Abstract base class for curved geometry type.
Definition: qgscurve.h:35
Base class for all items in the model.
Definition: qgsdataitem.h:46
Abstract base class for spatial data provider implementations.
Calculator for summary statistics and aggregates for a list of datetimes.
Contains configuration settings for an editor form.
This class wraps a request for features to a vector layer (or directly its vector data provider).
An interface for objects which provide features via a getFeatures method.
A geometry is the spatial representation of a feature.
Definition: qgsgeometry.h:162
Encapsulates information relating to a GPS position fix.
Stores global configuration for labeling engine.
Contains constants and enums relating to labeling.
Definition: qgslabeling.h:32
Item that represents a layer that can be opened with one of the providers.
Definition: qgslayeritem.h:31
The QgsMapLayerProxyModel class provides an easy to use model to display the list of layers in widget...
Base class for all map layer types.
Definition: qgsmaplayer.h:75
The QgsMapSettings class contains configuration for rendering of the map.
Registry for temporary fetched files.
Contains miscellaneous painting utility functions.
Definition: qgspainting.h:32
Contains settings for how a map layer will be labeled.
Abstract base class for 2d point cloud renderers.
Abstract base class for processing algorithms.
Contains information about the context in which a processing algorithm is executed.
Encapsulates settings relating to a feature source input to a processing algorithm.
QgsFeatureSource subclass which proxies methods to an underlying QgsFeatureSource,...
A datetime (or pure date or time) parameter for processing algorithms.
Base class for the definition of processing parameters.
A vector layer or feature source field parameter for processing algorithms.
An input file or folder parameter for processing algorithms.
A numeric parameter for processing algorithms.
A parameter for processing algorithms that need a list of input vector layers to construct a TIN.
Makes metadata of processing parameters available.
Abstract base class for processing providers.
Contains enumerations and other constants for use in processing algorithms and parameters.
Definition: qgsprocessing.h:41
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
Definition: qgsproject.h:107
A store for object properties.
Definition: qgsproperty.h:228
Holds data provider key, description, and associated shared library file or function pointer informat...
A fill symbol layer which places markers at random locations within polygons.
The RasterBandStats struct is a container for statistics about a single raster band.
Implementation of data provider temporal properties for QgsRasterDataProviders.
The raster file writer which allows you to save a raster to a new file.
Implementation of map layer temporal properties for raster layers.
Represents a raster layer.
Contains a pipeline of raster interfaces for sequential raster processing.
Definition: qgsrasterpipe.h:50
Raster namespace.
Definition: qgsraster.h:32
Contains information about the context of a rendering operation.
Represent settings entry and provides methods for reading and writing settings values.
RAII signal blocking class.
Definition: qgis.h:5036
~QgsSignalBlocker()
Definition: qgis.h:5048
QgsSignalBlocker(Object *object)
Constructor for QgsSignalBlocker.
Definition: qgis.h:5043
Object * operator->()
Returns pointer to blocked QObject.
Definition: qgis.h:5054
Abstract base class for simple marker symbol layers.
This is a container for configuration of the snapping of the project.
Calculator for summary statistics for a list of doubles.
Calculator for summary statistics and aggregates for a list of strings.
Utility functions for working with strings.
Abstract base class for all rendered symbols.
Definition: qgssymbol.h:94
Base class for templated line symbols, e.g.
Implements a temporal controller based on a frame by frame navigation and animation.
Container for all settings relating to text rendering.
Definition: qgstextformat.h:41
Handles rendering text using rich formatting options, including drop shadows, buffers and background ...
This is the class is providing tolerance value in map unit values.
Definition: qgstolerance.h:33
Helper functions for various unit types.
Definition: qgsunittypes.h:39
Implementation of data provider temporal properties for QgsVectorDataProviders.
This is the base class for vector data providers.
A convenience class for writing vector layers to disk based formats (e.g.
A convenience class for exporting vector layers to a destination data provider.
Implementation of map layer temporal properties for vector layers.
Represents a vector layer which manages a vector based data sets.
Handles storage of information regarding WKB types and their properties.
Definition: qgswkbtypes.h:42
FeatureCountState
Enumeration of feature count states.
Definition: qgis.h:336
@ Points
Point based rendering, requires point data.
int significantDigits(const Qgis::DataType rasterDataType)
Returns the maximum number of significant digits a for the given rasterDataType.
As part of the API refactoring and improvements which landed in QGIS
#define str(x)
Definition: qgis.cpp:38
CONSTLATIN1STRING geoNone()
Constant that holds the string representation for "No ellips/No CRS".
Definition: qgis.h:5659
const double DEFAULT_LINE_WIDTH
Definition: qgis.h:5697
CORE_EXPORT uint qHash(const QVariant &variant)
Hash for QVariant.
Definition: qgis.cpp:198
bool operator>(const QVariant &v1, const QVariant &v2)
Compares two QVariant values and returns whether the first is greater than the second.
Definition: qgis.h:5551
CORE_EXPORT QString qgsVsiPrefix(const QString &path)
Definition: qgis.cpp:193
CORE_EXPORT bool qgsVariantEqual(const QVariant &lhs, const QVariant &rhs)
Compares two QVariant values and returns whether they are equal, two NULL values are always treated a...
Definition: qgis.cpp:247
T qgsEnumKeyToValue(const QString &key, const T &defaultValue, bool tryValueAsKey=true, bool *returnOk=nullptr)
Returns the value corresponding to the given key of an enum.
Definition: qgis.h:5382
void CORE_EXPORT * qgsMalloc(size_t size)
Allocates size bytes and returns a pointer to the allocated memory.
Definition: qgis.cpp:93
QString qgsDoubleToString(double a, int precision=17)
Returns a string representation of a double.
Definition: qgis.h:5089
QString qgsMapJoinValues(const QMap< Key, Value > &map, const QString &separator)
Joins all the map values into a single string with each element separated by the given separator.
Definition: qgis.h:5246
QString qgsEnumValueToKey(const T &value, bool *returnOk=nullptr)
Returns the value for the given key of an enum.
Definition: qgis.h:5363
QString qgsFlagValueToKeys(const T &value, bool *returnOk=nullptr)
Returns the value for the given keys of a flag.
Definition: qgis.h:5421
const QMap< T, QString > qgsEnumMap()
Returns a map of all enum entries.
Definition: qgis.h:5346
const long GEO_EPSG_CRS_ID
Magic number for a geographic coord sys in EpsgCrsId ID format.
Definition: qgis.h:5683
QString qgsMapJoinKeys(const QMap< Key, Value > &map, const QString &separator)
Joins all the map keys into a single string with each element separated by the given separator.
Definition: qgis.h:5229
T qgsFlagKeysToValue(const QString &keys, const T &defaultValue, bool tryValueAsKey=true, bool *returnOk=nullptr)
Returns the value corresponding to the given keys of a flag.
Definition: qgis.h:5443
CORE_EXPORT bool qgsVariantGreaterThan(const QVariant &lhs, const QVariant &rhs)
Compares two QVariant values and returns whether the first is greater than the second.
Definition: qgis.cpp:188
unsigned long long qgssize
Qgssize is used instead of size_t, because size_t is stdlib type, unknown by SIP, and it would be har...
Definition: qgis.h:5712
bool qgsFloatNear(float a, float b, float epsilon=4 *FLT_EPSILON)
Compare two floats (but allow some difference)
Definition: qgis.h:5183
QString qgsSetJoin(const QSet< T > &set, const QString &separator)
Joins all the set values into a single string with each element separated by the given separator.
Definition: qgis.h:5263
const QList< T > qgsEnumList()
Returns a list all enum entries.
Definition: qgis.h:5329
CORE_EXPORT double qgsPermissiveToDouble(QString string, bool &ok)
Converts a string to a double in a permissive way, e.g., allowing for incorrect numbers of digits bet...
Definition: qgis.cpp:72
double qgsRound(double number, int places)
Returns a double number, rounded (as close as possible) to the specified number of places.
Definition: qgis.h:5213
bool qgsDoubleNear(double a, double b, double epsilon=4 *std::numeric_limits< double >::epsilon())
Compare two doubles (but allow some difference)
Definition: qgis.h:5172
CONSTLATIN1STRING geoProj4()
PROJ4 string that represents a geographic coord sys.
Definition: qgis.h:5647
bool qgsNanCompatibleEquals(double a, double b)
Compare two doubles, treating nan values as equal.
Definition: qgis.h:5134
const double DEFAULT_SEGMENT_EPSILON
Default snapping tolerance for segments.
Definition: qgis.h:5700
QMap< QString, QString > QgsStringMap
Definition: qgis.h:5702
#define CONSTLATIN1STRING
Definition: qgis.h:5600
QgsSignalBlocker< Object > whileBlocking(Object *object)
Temporarily blocks signals from a QObject while calling a single method from the object.
Definition: qgis.h:5076
CONSTLATIN1STRING geoWkt()
Wkt string that represents a geographic coord sys.
Definition: qgis.h:5639
bool qgsDoubleNearSig(double a, double b, int significantDigits=10)
Compare two doubles using specified number of significant digits.
Definition: qgis.h:5189
const int USER_CRS_START_ID
Magick number that determines whether a projection crsid is a system (srs.db) or user (~/....
Definition: qgis.h:5689
void CORE_EXPORT qgsFree(void *ptr)
Frees the memory space pointed to by ptr.
Definition: qgis.cpp:115
bool qgsNumberNear(T a, T b, T epsilon=std::numeric_limits< T >::epsilon() *4)
Compare two numbers of type T (but allow some difference)
Definition: qgis.h:5154
CORE_EXPORT qlonglong qgsPermissiveToLongLong(QString string, bool &ok)
Converts a string to an qlonglong in a permissive way, e.g., allowing for incorrect numbers of digits...
Definition: qgis.cpp:86
CORE_EXPORT int qgsPermissiveToInt(QString string, bool &ok)
Converts a string to an integer in a permissive way, e.g., allowing for incorrect numbers of digits b...
Definition: qgis.cpp:79
CORE_EXPORT bool qgsVariantLessThan(const QVariant &lhs, const QVariant &rhs)
Compares two QVariant values and returns whether the first is less than the second.
Definition: qgis.cpp:120
const long GEOSRID
Magic number for a geographic coord sys in POSTGIS SRID.
Definition: qgis.h:5677
#define QHASH_FOR_CLASS_ENUM(T)
Definition: qgis.h:43
bool operator<(const QVariant &v1, const QVariant &v2)
Compares two QVariant values and returns whether the first is less than the second.
Definition: qgis.h:5565
CONSTLATIN1STRING geoEpsgCrsAuthId()
Geographic coord sys from EPSG authority.
Definition: qgis.h:5653
const long GEOCRS_ID
Magic number for a geographic coord sys in QGIS srs.db tbl_srs.srs_id.
Definition: qgis.h:5680
const double DEFAULT_POINT_SIZE
Magic number that determines the default point size for point symbols.
Definition: qgis.h:5696
#define SIP_ENUM_BASETYPE(type)
Definition: qgis_sip.h:278
#define SIP_SKIP
Definition: qgis_sip.h:126
#define SIP_MONKEYPATCH_SCOPEENUM_UNNEST(OUTSIDE_CLASS, FORMERNAME)
Definition: qgis_sip.h:271
#define SIP_MONKEYPATCH_FLAGS_UNNEST(OUTSIDE_CLASS, FORMERNAME)
Definition: qgis_sip.h:272
#define SIP_MONKEYPATCH_SCOPEENUM
Definition: qgis_sip.h:270
#define SIP_MONKEYPATCH_COMPAT_NAME(FORMERNAME)
Definition: qgis_sip.h:273
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsTextRendererUtils::CurvedTextFlags)
int precision
Utility class for identifying a unique vertex within a geometry.
Definition: qgsvertexid.h:30