QGIS API Documentation 3.31.0-Master (9f23a2c1dc)
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 "qgstolerance.h"
28#include "qgis_core.h"
29#include "qgis_sip.h"
30
31#ifdef SIP_RUN
32% ModuleHeaderCode
33#include <qgis.h>
34% End
35
36% ModuleCode
37int QgisEvent = QEvent::User + 1;
38% End
39#endif
40
41#ifndef SIP_RUN
42// qHash implementation for scoped enum type
43// https://gitlab.com/frostasm/programming-knowledge-base/-/snippets/20120
44#define QHASH_FOR_CLASS_ENUM(T) \
45 inline uint qHash(const T &t, uint seed) { \
46 return ::qHash(static_cast<typename std::underlying_type<T>::type>(t), seed); \
47 }
48#endif
49
54class CORE_EXPORT Qgis
55{
56 Q_GADGET
57 Q_CLASSINFO( "RegisterEnumClassesUnscoped", "false" )
58
59 public:
60
66 static QString version();
67
73 static int versionInt();
74
80 static QString releaseName();
81
83 static const char *QGIS_DEV_VERSION;
84
90 static QString devVersion();
91
92 // Enumerations
93 //
94
100 {
101 Info = 0,
102 Warning = 1,
103 Critical = 2,
104 Success = 3,
105 NoLevel = 4,
106 };
107 Q_ENUM( MessageLevel )
108
109
115 {
116 Vector SIP_MONKEYPATCH_COMPAT_NAME( VectorLayer ),
117 Raster SIP_MONKEYPATCH_COMPAT_NAME( RasterLayer ),
118 Plugin SIP_MONKEYPATCH_COMPAT_NAME( PluginLayer ),
119 Mesh SIP_MONKEYPATCH_COMPAT_NAME( MeshLayer ),
120 VectorTile SIP_MONKEYPATCH_COMPAT_NAME( VectorTileLayer ),
121 Annotation SIP_MONKEYPATCH_COMPAT_NAME( AnnotationLayer ),
122 PointCloud SIP_MONKEYPATCH_COMPAT_NAME( PointCloudLayer ),
123 Group SIP_MONKEYPATCH_COMPAT_NAME( GroupLayer ),
124 };
125 Q_ENUM( LayerType )
126
127
155 {
156 Unknown = 0,
157 Point = 1,
158 LineString = 2,
159 Polygon = 3,
160 Triangle = 17,
161 MultiPoint = 4,
162 MultiLineString = 5,
163 MultiPolygon = 6,
164 GeometryCollection = 7,
165 CircularString = 8,
166 CompoundCurve = 9,
167 CurvePolygon = 10,
168 MultiCurve = 11,
169 MultiSurface = 12,
170 NoGeometry = 100,
171 PointZ = 1001,
172 LineStringZ = 1002,
173 PolygonZ = 1003,
174 TriangleZ = 1017,
175 MultiPointZ = 1004,
176 MultiLineStringZ = 1005,
177 MultiPolygonZ = 1006,
178 GeometryCollectionZ = 1007,
179 CircularStringZ = 1008,
180 CompoundCurveZ = 1009,
181 CurvePolygonZ = 1010,
182 MultiCurveZ = 1011,
183 MultiSurfaceZ = 1012,
184 PointM = 2001,
185 LineStringM = 2002,
186 PolygonM = 2003,
187 TriangleM = 2017,
188 MultiPointM = 2004,
189 MultiLineStringM = 2005,
190 MultiPolygonM = 2006,
191 GeometryCollectionM = 2007,
192 CircularStringM = 2008,
193 CompoundCurveM = 2009,
194 CurvePolygonM = 2010,
195 MultiCurveM = 2011,
196 MultiSurfaceM = 2012,
197 PointZM = 3001,
198 LineStringZM = 3002,
199 PolygonZM = 3003,
200 MultiPointZM = 3004,
201 MultiLineStringZM = 3005,
202 MultiPolygonZM = 3006,
203 GeometryCollectionZM = 3007,
204 CircularStringZM = 3008,
205 CompoundCurveZM = 3009,
206 CurvePolygonZM = 3010,
207 MultiCurveZM = 3011,
208 MultiSurfaceZM = 3012,
209 TriangleZM = 3017,
210 Point25D = 0x80000001,
211 LineString25D,
212 Polygon25D,
213 MultiPoint25D,
214 MultiLineString25D,
215 MultiPolygon25D
216 };
217 Q_ENUM( WkbType )
218
219
228 {
229 Point SIP_MONKEYPATCH_COMPAT_NAME( PointGeometry ),
230 Line SIP_MONKEYPATCH_COMPAT_NAME( LineGeometry ),
231 Polygon SIP_MONKEYPATCH_COMPAT_NAME( PolygonGeometry ),
232 Unknown SIP_MONKEYPATCH_COMPAT_NAME( UnknownGeometry ),
233 Null SIP_MONKEYPATCH_COMPAT_NAME( NullGeometry ),
234 };
235 Q_ENUM( GeometryType )
236
237
242 {
243 UnknownDataType = 0,
244 Byte = 1,
245 Int8 = 14,
246 UInt16 = 2,
247 Int16 = 3,
248 UInt32 = 4,
249 Int32 = 5,
250 Float32 = 6,
251 Float64 = 7,
252 CInt16 = 8,
253 CInt32 = 9,
254 CFloat32 = 10,
255 CFloat64 = 11,
256 ARGB32 = 12,
257 ARGB32_Premultiplied = 13
258 };
259 Q_ENUM( DataType )
260
261
266 enum class CaptureTechnique : int
267 {
268 StraightSegments,
269 CircularString,
270 Streaming,
271 Shape,
272 };
273 Q_ENUM( CaptureTechnique )
274
275
280 enum class VectorLayerTypeFlag : int
281 {
282 SqlQuery = 1 << 0
283 };
284 Q_ENUM( VectorLayerTypeFlag )
286 Q_DECLARE_FLAGS( VectorLayerTypeFlags, VectorLayerTypeFlag )
287 Q_FLAG( VectorLayerTypeFlags )
288
289
294 {
295 Never = 0,
296 Ask = 1,
297 SessionOnly = 2,
298 Always = 3,
299 NotForThisSession,
300 };
301 Q_ENUM( PythonMacroMode )
302
303
309 {
310 Uncounted = -2,
311 UnknownCount = -1,
312 };
313 Q_ENUM( FeatureCountState )
314
315
321 {
322 EditAlias = 1 << 0,
323 EditComment = 1 << 1,
324 };
325
326 Q_ENUM( VectorDataProviderAttributeEditCapability )
327
328
333 Q_DECLARE_FLAGS( VectorDataProviderAttributeEditCapabilities, VectorDataProviderAttributeEditCapability )
334 Q_FLAG( VectorDataProviderAttributeEditCapabilities )
335
336
341 {
342 Marker,
343 Line,
344 Fill,
345 Hybrid
346 };
347 Q_ENUM( SymbolType )
348
349
355 {
356 ScaleArea,
357 ScaleDiameter
358 };
359 Q_ENUM( ScaleMethod )
360
361
366 {
367 Custom,
368 Variant,
369 String,
370 StringList,
371 VariantMap,
372 Bool,
373 Integer,
374 Double,
375 EnumFlag,
376 Color
377 };
378 Q_ENUM( SettingsType )
379
380
385 {
386 Root,
387 Standard,
388 NamedList,
389 };
390 Q_ENUM( SettingsTreeNodeType )
391
392
396 enum class SettingsTreeNodeOption : int
397 {
398 NamedListSelectedItemSetting = 1 << 0,
399 };
400
401 Q_ENUM( SettingsTreeNodeOption )
402 Q_DECLARE_FLAGS( SettingsTreeNodeOptions, SettingsTreeNodeOption )
403 Q_FLAG( SettingsTreeNodeOptions )
404
405
410 enum class SldExportOption : int
411 {
412 NoOptions = 0,
413 Svg = 1 << 0,
414 Png = 1 << 1,
415 };
416 Q_ENUM( SldExportOption )
417 Q_DECLARE_FLAGS( SldExportOptions, SldExportOption )
418 Q_FLAG( SldExportOptions )
419
420
426 {
427 NoVendorExtension = 0,
428 GeoServerVendorExtension = 1 << 1,
429 DeegreeVendorExtension = 1 << 2,
430 };
431 Q_ENUM( SldExportVendorExtension )
432
433
434
438 enum class SettingsOption : int
439 {
440 SaveFormerValue = 1 << 1, //<! Save the former value of the settings
441 SaveEnumFlagAsInt = 1 << 2,
442 };
443 Q_ENUM( SettingsOption )
444 Q_DECLARE_FLAGS( SettingsOptions, SettingsOption )
445 Q_FLAG( SettingsOptions )
446
447
452 {
453 ActiveLayer = 1,
454 AllLayers = 2,
455 AdvancedConfiguration = 3,
456 };
457 Q_ENUM( SnappingMode )
458
459
464 {
465 NoSnap SIP_MONKEYPATCH_COMPAT_NAME( NoSnapFlag ) = 0,
466 Vertex SIP_MONKEYPATCH_COMPAT_NAME( VertexFlag ) = 1 << 0,
467 Segment SIP_MONKEYPATCH_COMPAT_NAME( SegmentFlag ) = 1 << 1,
468 Area SIP_MONKEYPATCH_COMPAT_NAME( AreaFlag ) = 1 << 2,
469 Centroid SIP_MONKEYPATCH_COMPAT_NAME( CentroidFlag ) = 1 << 3,
470 MiddleOfSegment SIP_MONKEYPATCH_COMPAT_NAME( MiddleOfSegmentFlag ) = 1 << 4,
471 LineEndpoint SIP_MONKEYPATCH_COMPAT_NAME( LineEndpointFlag ) = 1 << 5,
472 };
473 Q_ENUM( SnappingType )
475 Q_DECLARE_FLAGS( SnappingTypes, SnappingType ) SIP_MONKEYPATCH_FLAGS_UNNEST( QgsSnappingConfig, SnappingTypeFlag )
476 Q_FLAG( SnappingTypes )
477
484 {
485 DynamicRotation = 2,
486 };
487 Q_ENUM( SymbolRenderHint )
489 Q_DECLARE_FLAGS( SymbolRenderHints, SymbolRenderHint ) SIP_MONKEYPATCH_FLAGS_UNNEST( QgsSymbol, RenderHints )
490 Q_FLAG( SymbolRenderHints )
491
497 enum class SymbolFlag : int
498 {
499 RendererShouldUseSymbolLevels = 1 << 0,
500 };
501 Q_ENUM( SymbolFlag )
503 Q_DECLARE_FLAGS( SymbolFlags, SymbolFlag )
504 Q_FLAG( SymbolFlags )
505
506
512 {
513 FlagIncludeCrosshairsForMarkerSymbols = 1 << 0,
514 };
515 Q_ENUM( SymbolPreviewFlag )
517 Q_DECLARE_FLAGS( SymbolPreviewFlags, SymbolPreviewFlag ) SIP_MONKEYPATCH_FLAGS_UNNEST( QgsSymbol, SymbolPreviewFlags )
518 Q_FLAG( SymbolPreviewFlags )
519
525 enum class SymbolLayerFlag : int
526 {
527 DisableFeatureClipping = 1 << 0,
528 };
529 Q_ENUM( SymbolLayerFlag )
531 Q_DECLARE_FLAGS( SymbolLayerFlags, SymbolLayerFlag )
532 Q_FLAG( SymbolLayerFlags )
533
534
540 {
541 Collection,
542 Directory,
543 Layer,
544 Error,
545 Favorites,
546 Project,
547 Custom,
548 Fields,
549 Field,
550 };
551 Q_ENUM( BrowserItemType )
552
553
559 {
560 NotPopulated,
561 Populating,
562 Populated,
563 };
564 Q_ENUM( BrowserItemState )
565
566
572 {
573 NoCapabilities = 0,
574 SetCrs = 1 << 0,
575 Fertile = 1 << 1,
576 Fast = 1 << 2,
577 Collapse = 1 << 3,
578 Rename = 1 << 4,
579 Delete = 1 << 5,
580 ItemRepresentsFile = 1 << 6,
581 RefreshChildrenWhenItemIsRefreshed = 1 << 7,
582 };
583 Q_ENUM( BrowserItemCapability )
585 Q_DECLARE_FLAGS( BrowserItemCapabilities, BrowserItemCapability ) SIP_MONKEYPATCH_FLAGS_UNNEST( QgsDataItem, Capabilities )
586 Q_FLAG( BrowserItemCapabilities )
587
594 {
595 NoType,
596 Vector,
597 Raster,
598 Point,
599 Line,
600 Polygon,
601 TableLayer,
602 Database,
603 Table,
604 Plugin,
605 Mesh,
606 VectorTile,
607 PointCloud
608 };
609 Q_ENUM( BrowserLayerType )
610
611
617 {
618 Default,
619 NeverMonitor,
620 AlwaysMonitor,
621 };
622 Q_ENUM( BrowserDirectoryMonitoring )
623
624
628 enum class HttpMethod : int
629 {
630 Get = 0,
631 Post = 1
632 };
633 Q_ENUM( HttpMethod )
634
635
641 {
642 Success SIP_MONKEYPATCH_COMPAT_NAME( NoError ) = 0,
643 ErrorCreatingDataSource SIP_MONKEYPATCH_COMPAT_NAME( ErrCreateDataSource ),
644 ErrorCreatingLayer SIP_MONKEYPATCH_COMPAT_NAME( ErrCreateLayer ),
645 ErrorAttributeTypeUnsupported SIP_MONKEYPATCH_COMPAT_NAME( ErrAttributeTypeUnsupported ),
646 ErrorAttributeCreationFailed SIP_MONKEYPATCH_COMPAT_NAME( ErrAttributeCreationFailed ),
647 ErrorProjectingFeatures SIP_MONKEYPATCH_COMPAT_NAME( ErrProjection ),
648 ErrorFeatureWriteFailed SIP_MONKEYPATCH_COMPAT_NAME( ErrFeatureWriteFailed ),
649 ErrorInvalidLayer SIP_MONKEYPATCH_COMPAT_NAME( ErrInvalidLayer ),
650 ErrorInvalidProvider SIP_MONKEYPATCH_COMPAT_NAME( ErrInvalidProvider ),
651 ErrorProviderUnsupportedFeature SIP_MONKEYPATCH_COMPAT_NAME( ErrProviderUnsupportedFeature ),
652 ErrorConnectionFailed SIP_MONKEYPATCH_COMPAT_NAME( ErrConnectionFailed ),
653 UserCanceled SIP_MONKEYPATCH_COMPAT_NAME( ErrUserCanceled ),
654 };
655 Q_ENUM( VectorExportResult )
656
657
662 {
663 FieldAliases = 1 << 0,
664 FieldComments = 1 << 2,
665 };
666 Q_ENUM( VectorFileWriterCapability )
667
668
672 Q_DECLARE_FLAGS( VectorFileWriterCapabilities, VectorFileWriterCapability )
673 Q_FLAG( VectorFileWriterCapabilities )
674
675
680 {
681 SubsetStringFilter = 1 << 1,
682 GeometryColumn = 1 << 2,
683 PrimaryKeys = 1 << 3,
684 UnstableFeatureIds = 1 << 4
685 };
686 Q_ENUM( SqlLayerDefinitionCapability )
688 Q_DECLARE_FLAGS( SqlLayerDefinitionCapabilities, SqlLayerDefinitionCapability )
689 Q_FLAG( SqlLayerDefinitionCapabilities )
690
691
696 enum class SqlKeywordCategory : int
697 {
698 Keyword,
699 Constant,
700 Function,
701 Geospatial,
702 Operator,
703 Math,
704 Aggregate,
705 String,
706 Identifier
707 };
708 Q_ENUM( SqlKeywordCategory )
709
710
714 enum class DriveType : int
715 {
716 Unknown,
717 Invalid,
718 Removable,
719 Fixed,
720 Remote,
721 CdRom,
722 RamDisk,
723 };
724 Q_ENUM( DriveType )
725
726
731 {
732 Deferred SIP_MONKEYPATCH_COMPAT_NAME( DownloadLater ),
733 Immediate SIP_MONKEYPATCH_COMPAT_NAME( DownloadImmediately ),
734 };
735 Q_ENUM( ActionStart )
736
737
742 enum class UnplacedLabelVisibility : int
743 {
744 FollowEngineSetting,
745 NeverShow,
746 };
747 Q_ENUM( UnplacedLabelVisibility )
748
749
754 enum class LabelOverlapHandling : int
755 {
756 PreventOverlap,
757 AllowOverlapIfRequired,
758 AllowOverlapAtNoCost,
759 };
760 Q_ENUM( LabelOverlapHandling )
761
762
770 {
771 AroundPoint,
772 OverPoint,
773 Line,
774 Curved,
775 Horizontal,
776 Free,
777 OrderedPositionsAroundPoint,
778 PerimeterCurved,
779 OutsidePolygons,
780 };
781 Q_ENUM( LabelPlacement )
782
783
791 {
792 TopLeft,
793 TopSlightlyLeft,
794 TopMiddle,
795 TopSlightlyRight,
796 TopRight,
797 MiddleLeft,
798 MiddleRight,
799 BottomLeft,
800 BottomSlightlyLeft,
801 BottomMiddle,
802 BottomSlightlyRight,
803 BottomRight,
804 };
805 Q_ENUM( LabelPredefinedPointPosition )
806
807
816 {
817 FromPoint,
818 FromSymbolBounds,
819 };
820 Q_ENUM( LabelOffsetType )
821
822
830 {
831 AboveLeft SIP_MONKEYPATCH_COMPAT_NAME( QuadrantAboveLeft ),
832 Above SIP_MONKEYPATCH_COMPAT_NAME( QuadrantAbove ),
833 AboveRight SIP_MONKEYPATCH_COMPAT_NAME( QuadrantAboveRight ),
834 Left SIP_MONKEYPATCH_COMPAT_NAME( QuadrantLeft ),
835 Over SIP_MONKEYPATCH_COMPAT_NAME( QuadrantOver ),
836 Right SIP_MONKEYPATCH_COMPAT_NAME( QuadrantRight ),
837 BelowLeft SIP_MONKEYPATCH_COMPAT_NAME( QuadrantBelowLeft ),
838 Below SIP_MONKEYPATCH_COMPAT_NAME( QuadrantBelow ),
839 BelowRight SIP_MONKEYPATCH_COMPAT_NAME( QuadrantBelowRight ),
840 };
841 Q_ENUM( LabelQuadrantPosition )
842
843
850 {
851 OnLine = 1,
852 AboveLine = 2,
853 BelowLine = 4,
854 MapOrientation = 8,
855 };
856 Q_ENUM( LabelLinePlacementFlag )
857
858
865 Q_DECLARE_FLAGS( LabelLinePlacementFlags, LabelLinePlacementFlag ) SIP_MONKEYPATCH_FLAGS_UNNEST( QgsLabeling, LinePlacementFlags )
866 Q_FLAG( LabelLinePlacementFlags )
867
875 {
876 AllowPlacementOutsideOfPolygon = 1 << 0,
877 AllowPlacementInsideOfPolygon = 1 << 1,
878 };
879 Q_ENUM( LabelPolygonPlacementFlag )
880
881
887 Q_DECLARE_FLAGS( LabelPolygonPlacementFlags, LabelPolygonPlacementFlag )
888 Q_FLAG( LabelPolygonPlacementFlags )
889
890
898 {
899 FlipUpsideDownLabels SIP_MONKEYPATCH_COMPAT_NAME( Upright ),
900 AllowUpsideDownWhenRotationIsDefined SIP_MONKEYPATCH_COMPAT_NAME( ShowDefined ),
901 AlwaysAllowUpsideDown SIP_MONKEYPATCH_COMPAT_NAME( ShowAll )
902 };
903 Q_ENUM( UpsideDownLabelHandling )
904
905
913 {
914 Left SIP_MONKEYPATCH_COMPAT_NAME( MultiLeft ) = 0,
915 Center SIP_MONKEYPATCH_COMPAT_NAME( MultiCenter ),
916 Right SIP_MONKEYPATCH_COMPAT_NAME( MultiRight ),
917 FollowPlacement SIP_MONKEYPATCH_COMPAT_NAME( MultiFollowPlacement ),
918 Justify SIP_MONKEYPATCH_COMPAT_NAME( MultiJustify ),
919 };
920 Q_ENUM( LabelMultiLineAlignment )
921
922
929 {
930 Vector SIP_MONKEYPATCH_COMPAT_NAME( FilterVector ) = 1,
931 Raster SIP_MONKEYPATCH_COMPAT_NAME( FilterRaster ),
932 Mesh SIP_MONKEYPATCH_COMPAT_NAME( FilterMesh ),
933 MeshDataset SIP_MONKEYPATCH_COMPAT_NAME( FilterMeshDataset ),
934 PointCloud SIP_MONKEYPATCH_COMPAT_NAME( FilterPointCloud ),
935 VectorTile,
936 };
937 Q_ENUM( FileFilterType )
938
939
944 enum class SublayerQueryFlag : int
945 {
946 FastScan = 1 << 0,
947 ResolveGeometryType = 1 << 1,
948 CountFeatures = 1 << 2,
949 IncludeSystemTables = 1 << 3,
950 };
952 Q_DECLARE_FLAGS( SublayerQueryFlags, SublayerQueryFlag )
953 Q_ENUM( SublayerQueryFlag )
954 Q_FLAG( SublayerQueryFlags )
955
956
961 enum class SublayerFlag : int
962 {
963 SystemTable = 1 << 0,
964 };
966 Q_DECLARE_FLAGS( SublayerFlags, SublayerFlag )
967 Q_ENUM( SublayerFlag )
968 Q_FLAG( SublayerFlags )
969
970
976 {
977 Unknown SIP_MONKEYPATCH_COMPAT_NAME( UnknownRole ) = 0,
978 Provider SIP_MONKEYPATCH_COMPAT_NAME( ProviderRole ) = 1,
979 Renderer SIP_MONKEYPATCH_COMPAT_NAME( RendererRole ) = 2,
980 Brightness SIP_MONKEYPATCH_COMPAT_NAME( BrightnessRole ) = 3,
981 Resampler SIP_MONKEYPATCH_COMPAT_NAME( ResamplerRole ) = 4,
982 Projector SIP_MONKEYPATCH_COMPAT_NAME( ProjectorRole ) = 5,
983 Nuller SIP_MONKEYPATCH_COMPAT_NAME( NullerRole ) = 6,
984 HueSaturation SIP_MONKEYPATCH_COMPAT_NAME( HueSaturationRole ) = 7,
985 };
986 Q_ENUM( RasterPipeInterfaceRole )
987
988
993 {
995 ResampleFilter,
997 Provider
998 };
999 Q_ENUM( RasterResamplingStage )
1000
1001
1006 enum class RasterRendererFlag : int
1007 {
1008 InternalLayerOpacityHandling = 1 << 0,
1009 };
1010
1016 Q_DECLARE_FLAGS( RasterRendererFlags, RasterRendererFlag )
1017
1018 Q_ENUM( RasterRendererFlag )
1019 Q_FLAG( RasterRendererFlags )
1020
1021
1027 {
1028 Generic = 0,
1029 PixelCount = 1,
1030 Name = 2,
1031 Min = 3,
1032 Max = 4,
1033 MinMax = 5,
1034 Red = 6,
1035 Green = 7,
1036 Blue = 8,
1037 Alpha = 9,
1038 RedMin = 10,
1039 GreenMin = 11,
1040 BlueMin = 12,
1041 AlphaMin = 13,
1042 RedMax = 14,
1043 GreenMax = 15,
1044 BlueMax = 16,
1045 AlphaMax = 17,
1046 MaxCount
1047 };
1048 Q_ENUM( RasterAttributeTableFieldUsage )
1049
1050
1056 {
1057 Thematic = 0,
1058 Athematic = 1
1059 };
1060 Q_ENUM( RasterAttributeTableType )
1061
1062
1067 enum class MeshEditingErrorType : int
1068 {
1069 NoError,
1070 InvalidFace,
1071 TooManyVerticesInFace,
1072 FlatFace,
1073 UniqueSharedVertex,
1074 InvalidVertex,
1075 ManifoldFace,
1076 };
1077 Q_ENUM( MeshEditingErrorType )
1078
1079
1084 enum class FilePathType : int
1085 {
1086 Absolute,
1087 Relative,
1088 };
1089 Q_ENUM( FilePathType )
1090
1091
1096 enum class SublayerPromptMode : int
1097 {
1098 AlwaysAsk,
1099 AskExcludingRasterBands,
1100 NeverAskSkip,
1101 NeverAskLoadAll,
1102 };
1103 Q_ENUM( SublayerPromptMode )
1104
1105
1110 enum class FieldMetadataProperty : int
1111 {
1112 GeometryCrs = 0x1000,
1113 GeometryWkbType = 0x1001,
1114 CustomProperty = 0x100000,
1115 };
1116 Q_ENUM( FieldMetadataProperty )
1117
1118
1124 {
1125 SetSelection,
1126 AddToSelection,
1127 IntersectSelection,
1128 RemoveFromSelection,
1129 };
1130 Q_ENUM( SelectBehavior )
1131
1132
1138 {
1139 Intersect,
1140 Within,
1141 };
1142 Q_ENUM( SelectGeometryRelationship )
1143
1144
1149 enum class SelectionFlag : int
1150 {
1151 SingleFeatureSelection = 1 << 0,
1152 ToggleSelection = 1 << 1,
1153 };
1154
1160 Q_DECLARE_FLAGS( SelectionFlags, SelectionFlag )
1161
1162 Q_ENUM( SelectionFlag )
1163 Q_FLAG( SelectionFlags )
1164
1165
1171 {
1172 Success = 0,
1173 EmptyGeometry = 1,
1174 EditFailed = 2,
1175 FetchFeatureFailed = 3,
1176 InvalidLayer = 4,
1177 };
1178 Q_ENUM( VectorEditResult )
1179
1180
1186 {
1187 SemiTransparentCircle,
1188 Cross,
1189 NoMarker,
1190 };
1191 Q_ENUM( VertexMarkerType )
1192
1193
1197 enum class ContentStatus : int
1198 {
1199 NotStarted,
1200 Running,
1201 Finished,
1202 Failed,
1203 Canceled,
1204 };
1205 Q_ENUM( ContentStatus )
1206
1207
1212 enum class GpsConnectionType : int
1213 {
1214 Automatic,
1215 Internal,
1216 Serial,
1217 Gpsd,
1218 };
1219 Q_ENUM( GpsConnectionType )
1220
1221
1226 enum class DeviceConnectionStatus SIP_MONKEYPATCH_SCOPEENUM_UNNEST( Qgis, GpsConnectionStatus ) : int
1227 {
1228 Disconnected,
1229 Connecting,
1230 Connected,
1231 };
1232 Q_ENUM( DeviceConnectionStatus )
1233
1234
1242 {
1243 NoData,
1244 NoFix,
1245 Fix2D,
1246 Fix3D
1247 };
1249
1250
1257 {
1258 Unknown,
1259 Gps,
1260 Glonass,
1261 Galileo,
1262 BeiDou,
1263 Qzss,
1264 Navic,
1265 Sbas,
1266 };
1268
1275 {
1276 Unknown = -1,
1277 Invalid,
1278 GPS,
1279 DGPS,
1280 PPS,
1281 RTK,
1282 FloatRTK,
1283 Estimated,
1284 Manual,
1285 Simulation,
1286 };
1287 Q_ENUM( GpsQualityIndicator )
1288
1289
1295 {
1296 Location = 1 << 0,
1297 Altitude = 1 << 1,
1298 GroundSpeed = 1 << 2,
1299 Bearing = 1 << 3,
1300 TotalTrackLength = 1 << 4,
1301 TrackDistanceFromStart = 1 << 5,
1302 Pdop = 1 << 6,
1303 Hdop = 1 << 7,
1304 Vdop = 1 << 8,
1305 HorizontalAccuracy = 1 << 9,
1306 VerticalAccuracy = 1 << 10,
1307 HvAccuracy = 1 << 11,
1308 SatellitesUsed = 1 << 12,
1309 Timestamp = 1 << 13,
1310 TrackStartTime = 1 << 14,
1311 TrackEndTime = 1 << 15,
1312 TrackDistanceSinceLastPoint = 1 << 16,
1313 TrackTimeSinceLastPoint = 1 << 17,
1314 GeoidalSeparation = 1 << 18,
1315 EllipsoidAltitude = 1 << 19,
1316 };
1317
1323 Q_DECLARE_FLAGS( GpsInformationComponents, GpsInformationComponent )
1324 Q_ENUM( GpsInformationComponent )
1325 Q_FLAG( GpsInformationComponents )
1326
1327
1332 enum class BabelFormatCapability : int
1333 {
1334 Import = 1 << 0,
1335 Export = 1 << 1,
1336 Waypoints = 1 << 2,
1337 Routes = 1 << 3,
1338 Tracks = 1 << 4,
1339 };
1341 Q_DECLARE_FLAGS( BabelFormatCapabilities, BabelFormatCapability )
1342 Q_ENUM( BabelFormatCapability )
1343 Q_FLAG( BabelFormatCapabilities )
1344
1345
1351 enum class BabelCommandFlag : int
1352 {
1353 QuoteFilePaths = 1 << 0,
1354 };
1356 Q_DECLARE_FLAGS( BabelCommandFlags, BabelCommandFlag )
1357 Q_ENUM( BabelCommandFlag )
1358 Q_FLAG( BabelCommandFlags )
1359
1360
1365 enum class GpsFeatureType : int
1366 {
1367 Waypoint,
1368 Route,
1369 Track,
1370 };
1371 Q_ENUM( GpsFeatureType )
1372
1373
1381 {
1382 Success = 0,
1383 NothingHappened = 1000,
1384 InvalidBaseGeometry,
1385 InvalidInputGeometryType,
1386 SelectionIsEmpty,
1387 SelectionIsGreaterThanOne,
1388 GeometryEngineError,
1389 LayerNotEditable,
1390 // Add part issues
1391 AddPartSelectedGeometryNotFound,
1392 AddPartNotMultiGeometry,
1393 // Add ring issues
1394 AddRingNotClosed,
1395 AddRingNotValid,
1396 AddRingCrossesExistingRings,
1397 AddRingNotInExistingFeature,
1398 // Split features
1399 SplitCannotSplitPoint,
1400 };
1401 Q_ENUM( GeometryOperationResult )
1402
1403
1409 {
1410 AllowSelfTouchingHoles SIP_MONKEYPATCH_COMPAT_NAME( FlagAllowSelfTouchingHoles ) = 1 << 0,
1411 };
1414 Q_ENUM( GeometryValidityFlag )
1415 Q_FLAG( GeometryValidityFlags )
1416
1417
1422 {
1423 QgisInternal SIP_MONKEYPATCH_COMPAT_NAME( ValidatorQgisInternal ),
1424 Geos SIP_MONKEYPATCH_COMPAT_NAME( ValidatorGeos ),
1425 };
1426 Q_ENUM( GeometryValidationEngine )
1427
1428
1434 {
1435 Left SIP_MONKEYPATCH_COMPAT_NAME( SideLeft ) = 0,
1436 Right SIP_MONKEYPATCH_COMPAT_NAME( SideRight ),
1437 };
1438 Q_ENUM( BufferSide )
1439
1440
1446 {
1447 Round SIP_MONKEYPATCH_COMPAT_NAME( CapRound ) = 1,
1448 Flat SIP_MONKEYPATCH_COMPAT_NAME( CapFlat ),
1449 Square SIP_MONKEYPATCH_COMPAT_NAME( CapSquare ),
1450 };
1451 Q_ENUM( EndCapStyle )
1452
1453
1459 {
1460 Round SIP_MONKEYPATCH_COMPAT_NAME( JoinStyleRound ) = 1,
1461 Miter SIP_MONKEYPATCH_COMPAT_NAME( JoinStyleMiter ),
1462 Bevel SIP_MONKEYPATCH_COMPAT_NAME( JoinStyleBevel ),
1463 };
1464 Q_ENUM( JoinStyle )
1465
1466
1471 enum class MakeValidMethod : int
1472 {
1473 Linework = 0,
1474 Structure = 1,
1475 };
1476 Q_ENUM( MakeValidMethod )
1477
1478
1483 enum class SpatialFilterType : int
1484 {
1485 NoFilter,
1486 BoundingBox,
1487 DistanceWithin,
1488 };
1489 Q_ENUM( SpatialFilterType )
1490
1491
1496 enum class FileOperationFlag : int
1497 {
1498 IncludeMetadataFile = 1 << 0,
1499 IncludeStyleFile = 1 << 1,
1500 };
1502 Q_DECLARE_FLAGS( FileOperationFlags, FileOperationFlag )
1503 Q_ENUM( FileOperationFlag )
1504 Q_FLAG( FileOperationFlags )
1505
1506
1511 enum class MapLayerProperty : int
1512 {
1513 UsersCannotToggleEditing = 1 << 0,
1514 IsBasemapLayer = 1 << 1,
1515 };
1517 Q_DECLARE_FLAGS( MapLayerProperties, MapLayerProperty )
1518 Q_ENUM( MapLayerProperty )
1519 Q_FLAG( MapLayerProperties )
1520
1521
1526 enum class DataProviderFlag : int
1527 {
1528 IsBasemapSource = 1 << 1,
1529 };
1531 Q_DECLARE_FLAGS( DataProviderFlags, DataProviderFlag )
1532 Q_ENUM( DataProviderFlag )
1533 Q_FLAG( DataProviderFlags )
1534
1535
1542 enum class CrsAxisDirection : int
1543 {
1544 North,
1545 NorthNorthEast,
1546 NorthEast,
1547 EastNorthEast,
1548 East,
1549 EastSouthEast,
1550 SouthEast,
1551 SouthSouthEast,
1552 South,
1553 SouthSouthWest,
1554 SouthWest,
1555 WestSouthWest,
1556 West,
1557 WestNorthWest,
1558 NorthWest,
1559 NorthNorthWest,
1560 GeocentricX,
1561 GeocentricY,
1562 GeocentricZ,
1563 Up,
1564 Down,
1565 Forward,
1566 Aft,
1567 Port,
1568 Starboard,
1569 Clockwise,
1570 CounterClockwise,
1571 ColumnPositive,
1572 ColumnNegative,
1573 RowPositive,
1574 RowNegative,
1575 DisplayRight,
1576 DisplayLeft,
1577 DisplayUp,
1578 DisplayDown,
1579 Future,
1580 Past,
1581 Towards,
1582 AwayFrom,
1583 Unspecified,
1584 };
1585 Q_ENUM( CrsAxisDirection )
1586
1587
1592 enum class CoordinateOrder : int
1593 {
1594 Default,
1595 XY,
1596 YX,
1597 };
1598 Q_ENUM( CoordinateOrder )
1599
1600
1605 enum class AnnotationItemFlag : int
1606 {
1607 ScaleDependentBoundingBox = 1 << 0,
1608 };
1610 Q_DECLARE_FLAGS( AnnotationItemFlags, AnnotationItemFlag )
1611 Q_ENUM( AnnotationItemFlag )
1612 Q_FLAG( AnnotationItemFlags )
1613
1614
1619 enum class AnnotationItemGuiFlag : int
1620 {
1621 FlagNoCreationTools = 1 << 0,
1622 };
1624 Q_DECLARE_FLAGS( AnnotationItemGuiFlags, AnnotationItemGuiFlag )
1625 Q_ENUM( AnnotationItemGuiFlag )
1626 Q_FLAG( AnnotationItemGuiFlags )
1627
1628
1633 enum class AnnotationItemNodeType : int
1634 {
1635 VertexHandle,
1636 };
1637 Q_ENUM( AnnotationItemNodeType )
1638
1639
1645 {
1646 Success,
1647 Invalid,
1648 ItemCleared,
1649 };
1650 Q_ENUM( AnnotationItemEditOperationResult )
1651
1652
1658 {
1659 FixedTemporalRange SIP_MONKEYPATCH_COMPAT_NAME( ModeFixedTemporalRange ) = 0,
1660 FeatureDateTimeInstantFromField SIP_MONKEYPATCH_COMPAT_NAME( ModeFeatureDateTimeInstantFromField ),
1661 FeatureDateTimeStartAndEndFromFields SIP_MONKEYPATCH_COMPAT_NAME( ModeFeatureDateTimeStartAndEndFromFields ),
1662 FeatureDateTimeStartAndDurationFromFields SIP_MONKEYPATCH_COMPAT_NAME( ModeFeatureDateTimeStartAndDurationFromFields ),
1663 FeatureDateTimeStartAndEndFromExpressions SIP_MONKEYPATCH_COMPAT_NAME( ModeFeatureDateTimeStartAndEndFromExpressions ),
1664 RedrawLayerOnly SIP_MONKEYPATCH_COMPAT_NAME( ModeRedrawLayerOnly ),
1665 };
1666 Q_ENUM( VectorTemporalMode )
1667
1668
1674 {
1675 IncludeBeginExcludeEnd = 0,
1676 IncludeBeginIncludeEnd,
1677 };
1678 Q_ENUM( VectorTemporalLimitMode )
1679
1680
1686 {
1687 HasFixedTemporalRange SIP_MONKEYPATCH_COMPAT_NAME( ProviderHasFixedTemporalRange ) = 0,
1688 StoresFeatureDateTimeInstantInField SIP_MONKEYPATCH_COMPAT_NAME( ProviderStoresFeatureDateTimeInstantInField ),
1689 StoresFeatureDateTimeStartAndEndInSeparateFields SIP_MONKEYPATCH_COMPAT_NAME( ProviderStoresFeatureDateTimeStartAndEndInSeparateFields ),
1690 };
1691 Q_ENUM( VectorDataProviderTemporalMode )
1692
1693
1699 {
1700 FixedTemporalRange SIP_MONKEYPATCH_COMPAT_NAME( ModeFixedTemporalRange ) = 0,
1701 TemporalRangeFromDataProvider SIP_MONKEYPATCH_COMPAT_NAME( ModeTemporalRangeFromDataProvider ) = 1,
1702 RedrawLayerOnly SIP_MONKEYPATCH_COMPAT_NAME( ModeRedrawLayerOnly ) = 2,
1703 };
1704 Q_ENUM( RasterTemporalMode )
1705
1706
1712 {
1713 MatchUsingWholeRange,
1714 MatchExactUsingStartOfRange,
1715 MatchExactUsingEndOfRange,
1716 FindClosestMatchToStartOfRange,
1717 FindClosestMatchToEndOfRange
1718 };
1719 Q_ENUM( TemporalIntervalMatchMethod )
1720
1721
1727 {
1728 RequestedTimesMustExactlyMatchAllAvailableTemporalRanges = 1 << 0,
1729 };
1730 Q_ENUM( RasterTemporalCapabilityFlag )
1731
1732
1737 Q_DECLARE_FLAGS( RasterTemporalCapabilityFlags, RasterTemporalCapabilityFlag )
1738 Q_FLAG( RasterTemporalCapabilityFlags )
1739
1740
1746 {
1747 Forward SIP_MONKEYPATCH_COMPAT_NAME( ForwardTransform ),
1748 Reverse SIP_MONKEYPATCH_COMPAT_NAME( ReverseTransform )
1749 };
1750 Q_ENUM( TransformDirection )
1751
1752
1758 {
1759 BallparkTransformsAreAppropriate = 1 << 0,
1760 IgnoreImpossibleTransformations = 1 << 1,
1761 };
1762 Q_ENUM( CoordinateTransformationFlag )
1763
1764
1769 Q_DECLARE_FLAGS( CoordinateTransformationFlags, CoordinateTransformationFlag )
1770 Q_FLAG( CoordinateTransformationFlags )
1771
1772
1778 {
1779 Antialiasing = 0x01,
1780 DrawEditingInfo = 0x02,
1781 ForceVectorOutput = 0x04,
1782 UseAdvancedEffects = 0x08,
1783 DrawLabeling = 0x10,
1784 UseRenderingOptimization = 0x20,
1785 DrawSelection = 0x40,
1786 DrawSymbolBounds = 0x80,
1787 RenderMapTile = 0x100,
1788 RenderPartialOutput = 0x200,
1789 RenderPreviewJob = 0x400,
1790 RenderBlocking = 0x800,
1791 LosslessImageRendering = 0x1000,
1792 Render3DMap = 0x2000,
1793 HighQualityImageTransforms = 0x4000,
1794 SkipSymbolRendering = 0x8000,
1795 ForceRasterMasks = 0x10000,
1796 };
1799 Q_ENUM( MapSettingsFlag )
1800 Q_FLAG( MapSettingsFlags )
1801
1802
1808 {
1809 DrawEditingInfo = 0x01,
1810 ForceVectorOutput = 0x02,
1811 UseAdvancedEffects = 0x04,
1812 UseRenderingOptimization = 0x08,
1813 DrawSelection = 0x10,
1814 DrawSymbolBounds = 0x20,
1815 RenderMapTile = 0x40,
1816 Antialiasing = 0x80,
1817 RenderPartialOutput = 0x100,
1818 RenderPreviewJob = 0x200,
1819 RenderBlocking = 0x400,
1820 RenderSymbolPreview = 0x800,
1821 LosslessImageRendering = 0x1000,
1822 ApplyScalingWorkaroundForTextRendering = 0x2000,
1823 Render3DMap = 0x4000,
1824 ApplyClipAfterReprojection = 0x8000,
1825 RenderingSubSymbol = 0x10000,
1826 HighQualityImageTransforms = 0x20000,
1827 SkipSymbolRendering = 0x40000,
1828 };
1831 Q_ENUM( RenderContextFlag )
1832 Q_FLAG( RenderContextFlags )
1833
1834 // refs for below dox: https://github.com/qgis/QGIS/pull/1286#issuecomment-39806854
1835 // https://github.com/qgis/QGIS/pull/8573#issuecomment-445585826
1836
1837
1842 {
1843 AlwaysOutlines SIP_MONKEYPATCH_COMPAT_NAME( TextFormatAlwaysOutlines ),
1844 AlwaysText SIP_MONKEYPATCH_COMPAT_NAME( TextFormatAlwaysText ),
1845 };
1846 Q_ENUM( TextRenderFormat )
1847
1848
1856 {
1857 UseAllLabels = 1 << 1,
1858 UsePartialCandidates = 1 << 2,
1859 // TODO QGIS 4.0: remove
1860 RenderOutlineLabels = 1 << 3,
1861 DrawLabelRectOnly = 1 << 4,
1862 DrawCandidates = 1 << 5,
1863 DrawUnplacedLabels = 1 << 6,
1864 CollectUnplacedLabels = 1 << 7,
1865 DrawLabelMetrics = 1 << 8,
1866 };
1867 Q_ENUM( LabelingFlag )
1868
1869
1876 Q_DECLARE_FLAGS( LabelingFlags, LabelingFlag ) SIP_MONKEYPATCH_FLAGS_UNNEST( QgsLabelingEngineSettings, Flags )
1877 Q_FLAG( LabelingFlags )
1878
1887 {
1888 Version1 SIP_MONKEYPATCH_COMPAT_NAME( PlacementEngineVersion1 ),
1889 Version2 SIP_MONKEYPATCH_COMPAT_NAME( PlacementEngineVersion2 ),
1890 };
1891 Q_ENUM( LabelPlacementEngineVersion )
1892
1893
1901 {
1902 Horizontal SIP_MONKEYPATCH_COMPAT_NAME( HorizontalOrientation ),
1903 Vertical SIP_MONKEYPATCH_COMPAT_NAME( VerticalOrientation ),
1904 RotationBased SIP_MONKEYPATCH_COMPAT_NAME( RotationBasedOrientation ),
1905 };
1906 Q_ENUM( TextOrientation )
1907
1908
1916 {
1917 Rectangle SIP_MONKEYPATCH_COMPAT_NAME( Rect ),
1918 Point,
1919 Labeling SIP_MONKEYPATCH_COMPAT_NAME( Label ),
1920 RectangleCapHeightBased,
1921 RectangleAscentBased,
1922 };
1923 Q_ENUM( TextLayoutMode )
1924
1925
1933 {
1934 Text,
1935 Buffer,
1936 Background,
1937 Shadow,
1938 };
1939 Q_ENUM( TextComponent )
1940
1941
1949 {
1950 Left SIP_MONKEYPATCH_COMPAT_NAME( AlignLeft ),
1951 Center SIP_MONKEYPATCH_COMPAT_NAME( AlignCenter ),
1952 Right SIP_MONKEYPATCH_COMPAT_NAME( AlignRight ),
1953 Justify SIP_MONKEYPATCH_COMPAT_NAME( AlignJustify ),
1954 };
1955 Q_ENUM( TextHorizontalAlignment )
1956
1957
1968 {
1969 Top SIP_MONKEYPATCH_COMPAT_NAME( AlignTop ),
1970 VerticalCenter SIP_MONKEYPATCH_COMPAT_NAME( AlignVCenter ),
1971 Bottom SIP_MONKEYPATCH_COMPAT_NAME( AlignBottom ),
1972 };
1973 Q_ENUM( TextVerticalAlignment )
1974
1975
1984 {
1985 Normal,
1986 SuperScript,
1987 SubScript,
1988 };
1989 Q_ENUM( TextCharacterVerticalAlignment )
1990
1991
1997 {
1998 Generic,
1999 ShadowOffset,
2000 BlurSize,
2001 GlowSpread,
2002 };
2003 Q_ENUM( RenderSubcomponentProperty )
2004
2005
2010 {
2011 Segment SIP_MONKEYPATCH_COMPAT_NAME( SegmentVertex ) = 1,
2012 Curve SIP_MONKEYPATCH_COMPAT_NAME( CurveVertex ) = 2,
2013 };
2014 Q_ENUM( VertexType )
2015
2016
2024 {
2025 Square,
2026 Diamond,
2027 Pentagon,
2028 Hexagon,
2029 Triangle,
2030 EquilateralTriangle,
2031 Star,
2032 Arrow,
2033 Circle,
2034 Cross,
2035 CrossFill,
2036 Cross2,
2037 Line,
2038 ArrowHead,
2039 ArrowHeadFilled,
2040 SemiCircle,
2041 ThirdCircle,
2042 QuarterCircle,
2043 QuarterSquare,
2044 HalfSquare,
2045 DiagonalHalfSquare,
2046 RightHalfTriangle,
2047 LeftHalfTriangle,
2048 Octagon,
2049 SquareWithCorners,
2050 AsteriskFill,
2051 HalfArc,
2052 ThirdArc,
2053 QuarterArc,
2054 ParallelogramRight,
2055 ParallelogramLeft,
2056 Trapezoid,
2057 Shield,
2058 DiamondStar,
2059 Heart,
2060 Decagon,
2061 RoundedSquare,
2062 };
2063 Q_ENUM( MarkerShape )
2064
2065
2073 {
2074 Interval = 1 << 0,
2075 Vertex = 1 << 1,
2076 LastVertex = 1 << 2,
2077 FirstVertex = 1 << 3,
2078 CentralPoint = 1 << 4,
2079 CurvePoint = 1 << 5,
2080 SegmentCenter = 1 << 6,
2081 InnerVertices = 1 << 7,
2082 };
2083 Q_ENUM( MarkerLinePlacement )
2084 Q_DECLARE_FLAGS( MarkerLinePlacements, MarkerLinePlacement )
2085 Q_FLAG( MarkerLinePlacements )
2086
2087
2095 {
2096 SimpleTwoColor,
2097 ColorRamp,
2098 };
2099 Q_ENUM( GradientColorSource )
2100
2101
2109 {
2110 Linear,
2111 Radial,
2112 Conical,
2113 };
2114 Q_ENUM( GradientType )
2115
2116
2124 {
2125 Feature,
2126 Viewport,
2127 };
2128 Q_ENUM( SymbolCoordinateReference )
2129
2130
2139 {
2140 Pad,
2141 Reflect,
2142 Repeat,
2143 };
2144 Q_ENUM( GradientSpread )
2145
2146
2154 {
2155 Absolute SIP_MONKEYPATCH_COMPAT_NAME( AbsoluteCount ),
2156 DensityBased SIP_MONKEYPATCH_COMPAT_NAME( DensityBasedCount ),
2157 };
2158 Q_ENUM( PointCountMethod )
2159
2160
2165 enum class MarkerClipMode : int
2166 {
2167 NoClipping,
2168 Shape,
2169 CentroidWithin,
2170 CompletelyWithin,
2171 };
2172 Q_ENUM( MarkerClipMode )
2173
2174
2179 enum class LineClipMode : int
2180 {
2181 ClipPainterOnly,
2182 ClipToIntersection,
2183 NoClipping,
2184 };
2185 Q_ENUM( LineClipMode )
2186
2187
2193 {
2194 NoRule,
2195 FullDash,
2196 HalfDash,
2197 FullGap,
2198 HalfGap,
2199 };
2200 Q_ENUM( DashPatternLineEndingRule )
2201
2202
2208 {
2209 ScaleBothDashAndGap,
2210 ScaleDashOnly,
2211 ScaleGapOnly,
2212 };
2213 Q_ENUM( DashPatternSizeAdjustment )
2214
2215
2223 {
2224 Color SIP_MONKEYPATCH_COMPAT_NAME( GraduatedColor ),
2225 Size SIP_MONKEYPATCH_COMPAT_NAME( GraduatedSize ),
2226 };
2227 Q_ENUM( GraduatedMethod )
2228
2229
2233 enum class DpiMode
2234 {
2235 All = 7,
2236 Off = 0,
2237 QGIS = 1,
2238 UMN = 2,
2239 GeoServer = 4,
2240 };
2241 Q_ENUM( DpiMode )
2242
2243
2248 {
2249 Undefined = 0,
2250 StandardDpi = 1,
2251 HighDpi = 2,
2252 };
2253 Q_ENUM( TilePixelRatio )
2254
2255 // NOTE -- the hardcoded numbers here must match QFont::Capitalization!
2256
2257
2265 {
2266 MixedCase = 0,
2267 AllUppercase = 1,
2268 AllLowercase = 2,
2269 ForceFirstLetterToCapital = 4,
2270 SmallCaps = 5,
2271 TitleCase = 1004,
2272 UpperCamelCase = 1005,
2273 AllSmallCaps = 1006,
2274 };
2275 Q_ENUM( Capitalization )
2276
2277
2282 enum class TextRendererFlag : int
2283 {
2284 WrapLines = 1 << 0,
2285 };
2286 Q_ENUM( TextRendererFlag )
2287 Q_DECLARE_FLAGS( TextRendererFlags, TextRendererFlag )
2288 Q_FLAG( TextRendererFlags )
2289
2290
2296 {
2297 MapBox,
2298 Esri,
2299 };
2301
2308 {
2309 Clockwise,
2310 CounterClockwise,
2311 };
2312 Q_ENUM( AngularDirection )
2313
2314
2319 enum class RendererUsage : int
2320 {
2321 View,
2322 Export,
2323 Unknown,
2324 };
2325 Q_ENUM( RendererUsage )
2326
2327
2332 enum class ViewSyncModeFlag : int
2333 {
2334 Sync3DTo2D = 1 << 0,
2335 Sync2DTo3D = 1 << 1,
2336 };
2337 Q_ENUM( ViewSyncModeFlag )
2338 Q_DECLARE_FLAGS( ViewSyncModeFlags, ViewSyncModeFlag )
2339
2340
2346 {
2347 Always,
2348 WhenOutsideVisibleExtent,
2349 Never,
2350 };
2351 Q_ENUM( MapRecenteringMode )
2352
2353
2358 enum class HistoryProviderBackend : int
2359 {
2360 LocalProfile = 1 << 0,
2361// Project = 1 << 1, //!< QGIS Project (not yet implemented)
2362 };
2363 Q_ENUM( HistoryProviderBackend )
2364 Q_DECLARE_FLAGS( HistoryProviderBackends, HistoryProviderBackend )
2365 Q_FLAG( HistoryProviderBackends )
2366
2367
2373 {
2374 Wkt SIP_MONKEYPATCH_COMPAT_NAME( FormatWkt ),
2375 Proj SIP_MONKEYPATCH_COMPAT_NAME( FormatProj ),
2376 };
2377 Q_ENUM( CrsDefinitionFormat )
2378
2379
2387 enum class FieldDomainSplitPolicy : int
2388 {
2389 DefaultValue,
2390 Duplicate,
2391 GeometryRatio,
2392 UnsetField,
2393 };
2394 Q_ENUM( FieldDomainSplitPolicy )
2395
2396
2404 enum class FieldDomainMergePolicy : int
2405 {
2406 DefaultValue,
2407 Sum,
2408 GeometryWeighted,
2409 };
2410 Q_ENUM( FieldDomainMergePolicy )
2411
2412
2417 enum class FieldDomainType : int
2418 {
2419 Coded,
2420 Range,
2421 Glob,
2422 };
2423 Q_ENUM( FieldDomainType )
2424
2425
2430 enum class TransactionMode : int
2431 {
2432 Disabled = 0,
2433 AutomaticGroups = 1,
2434 BufferedGroups = 2,
2435 };
2436 Q_ENUM( TransactionMode )
2437
2438
2443 enum class AltitudeClamping : int
2444 {
2445 Absolute,
2446 Relative,
2447 Terrain,
2448 };
2449 Q_ENUM( AltitudeClamping )
2450
2451
2456 enum class AltitudeBinding : int
2457 {
2458 Vertex,
2459 Centroid,
2460 };
2461 Q_ENUM( AltitudeBinding )
2462
2463
2469 {
2470 NoConstraint,
2471 Perpendicular,
2472 Parallel
2473 };
2474 Q_ENUM( BetweenLineConstraint )
2475
2476
2481 enum class LineExtensionSide : int
2482 {
2483 BeforeVertex,
2484 AfterVertex,
2485 NoVertex,
2486 };
2487 Q_ENUM( LineExtensionSide )
2488
2489
2490
2494 enum class CadConstraintType : int
2495 {
2496 Generic,
2497 Angle,
2498 Distance,
2499 XCoordinate,
2500 YCoordinate,
2501 ZValue,
2502 MValue,
2503 };
2504 Q_ENUM( CadConstraintType )
2505
2506
2507
2512 enum class ProjectFlag : int
2513 {
2514 EvaluateDefaultValuesOnProviderSide = 1 << 0,
2515 TrustStoredLayerStatistics = 1 << 1,
2516 RememberLayerEditStatusBetweenSessions = 1 << 2,
2517 RememberAttributeTableWindowsBetweenSessions = 1 << 3,
2518 };
2519 Q_ENUM( ProjectFlag )
2520 Q_DECLARE_FLAGS( ProjectFlags, ProjectFlag )
2521 Q_FLAG( ProjectFlags )
2522
2523
2528 enum class PlotToolFlag : int
2529 {
2530 ShowContextMenu = 1 << 0,
2531 };
2532 Q_ENUM( PlotToolFlag )
2533 Q_DECLARE_FLAGS( PlotToolFlags, PlotToolFlag )
2534 Q_FLAG( PlotToolFlags )
2535
2536
2541 enum class LightSourceType : int
2542 {
2543 Point,
2544 Directional,
2545 };
2546 Q_ENUM( LightSourceType )
2547
2548
2553 enum class NavigationMode : int
2554 {
2555 TerrainBased,
2556 Walk
2557 };
2558 Q_ENUM( NavigationMode )
2559
2560
2565 enum class VerticalAxisInversion : int
2566 {
2567 Never,
2568 WhenDragging,
2569 Always,
2570 };
2571 Q_ENUM( VerticalAxisInversion )
2572
2573
2579 {
2580 Line,
2581 FillBelow,
2582 FillAbove,
2583 };
2585
2591 enum class VectorProfileType : int
2592 {
2593 IndividualFeatures,
2594 ContinuousSurface,
2595 };
2597
2603 enum class ProfileGeneratorFlag : int
2604 {
2605 RespectsMaximumErrorMapUnit = 1 << 0,
2606 RespectsDistanceRange = 1 << 1,
2607 RespectsElevationRange = 1 << 2,
2608 };
2609 Q_ENUM( ProfileGeneratorFlag )
2610 Q_DECLARE_FLAGS( ProfileGeneratorFlags, ProfileGeneratorFlag )
2611 Q_FLAG( ProfileGeneratorFlags )
2612
2613
2619 {
2620 Square,
2621 Circle,
2622 };
2623 Q_ENUM( PointCloudSymbol )
2624
2625
2631 {
2632 Default,
2633 BottomToTop,
2634 TopToBottom,
2635 };
2636 Q_ENUM( PointCloudDrawOrder )
2637
2638
2646 {
2647 AllowIntersections,
2648 AvoidIntersectionsCurrentLayer,
2649 AvoidIntersectionsLayers,
2650 };
2651 Q_ENUM( AvoidIntersectionsMode )
2652
2653
2661 {
2662 Qgz,
2663 Qgs,
2664 };
2665 Q_ENUM( ProjectFileFormat )
2666
2667
2675 {
2676 DontResolveLayers SIP_MONKEYPATCH_COMPAT_NAME( FlagDontResolveLayers ) = 1 << 0,
2677 DontLoadLayouts SIP_MONKEYPATCH_COMPAT_NAME( FlagDontLoadLayouts ) = 1 << 1,
2678 TrustLayerMetadata SIP_MONKEYPATCH_COMPAT_NAME( FlagTrustLayerMetadata ) = 1 << 2,
2679 DontStoreOriginalStyles SIP_MONKEYPATCH_COMPAT_NAME( FlagDontStoreOriginalStyles ) = 1 << 3,
2680 DontLoad3DViews SIP_MONKEYPATCH_COMPAT_NAME( FlagDontLoad3DViews ) = 1 << 4,
2681 DontLoadProjectStyles = 1 << 5,
2682 ForceReadOnlyLayers = 1 << 6,
2683 };
2684 Q_ENUM( ProjectReadFlag )
2685
2686
2693 Q_DECLARE_FLAGS( ProjectReadFlags, ProjectReadFlag ) SIP_MONKEYPATCH_FLAGS_UNNEST( QgsProject, ReadFlags )
2694 Q_FLAG( ProjectReadFlags )
2695
2704 enum class ProjectCapability : int
2705 {
2706 ProjectStyles = 1 << 0,
2707 };
2708 Q_ENUM( ProjectCapability )
2709
2710
2715 Q_DECLARE_FLAGS( ProjectCapabilities, ProjectCapability )
2716 Q_FLAG( ProjectCapabilities )
2717
2718
2724 {
2725 Vector,
2726 Raster,
2727 RasterDem,
2728 GeoJson,
2729 Image,
2730 Video,
2731 Unknown,
2732 };
2733 Q_ENUM( MapBoxGlStyleSourceType )
2734
2735
2743 {
2744 FeatureServer SIP_MONKEYPATCH_COMPAT_NAME( FeatureService ),
2745 MapServer SIP_MONKEYPATCH_COMPAT_NAME( MapService ),
2746 ImageServer SIP_MONKEYPATCH_COMPAT_NAME( ImageService ),
2747 GlobeServer,
2748 GPServer,
2749 GeocodeServer,
2750 Unknown,
2751 };
2752 Q_ENUM( ArcGisRestServiceType )
2753
2754
2762 {
2763 Normal,
2764 Generated,
2765 };
2766 Q_ENUM( RelationshipType )
2767
2768
2776 {
2777 Association,
2778 Composition,
2779 };
2780 Q_ENUM( RelationshipStrength )
2781
2782
2788 {
2789 OneToOne,
2790 OneToMany,
2791 ManyToOne,
2792 ManyToMany,
2793 };
2794 Q_ENUM( RelationshipCardinality )
2795
2796
2801 enum class RelationshipCapability : int
2802 {
2803 MultipleFieldKeys = 1 << 0,
2804 ForwardPathLabel = 1 << 1,
2805 BackwardPathLabel = 1 << 2,
2806 };
2807 Q_ENUM( RelationshipCapability )
2808
2809
2814 Q_DECLARE_FLAGS( RelationshipCapabilities, RelationshipCapability )
2815 Q_FLAG( RelationshipCapabilities )
2816
2817
2822 enum class CoordinateDisplayType : int
2823 {
2824 MapCrs,
2825 MapGeographic,
2826 CustomCrs,
2827 };
2828 Q_ENUM( CoordinateDisplayType )
2829
2830
2835 enum class SettingsOrigin : int
2836 {
2837 Any,
2838 Global,
2839 Local,
2840 };
2841 Q_ENUM( SettingsOrigin )
2842
2843
2848 enum class ScriptLanguage : int
2849 {
2850 Css,
2851 QgisExpression,
2852 Html,
2853 JavaScript,
2854 Json,
2855 Python,
2856 R,
2857 Sql,
2858 Batch,
2859 Bash,
2860 Unknown,
2861 };
2862 Q_ENUM( ScriptLanguage )
2863
2864
2872 {
2873 Reformat = 1 << 0,
2874 CheckSyntax = 1 << 1,
2875 ToggleComment = 1 << 2,
2876 };
2877 Q_ENUM( ScriptLanguageCapability )
2878
2879
2884 Q_DECLARE_FLAGS( ScriptLanguageCapabilities, ScriptLanguageCapability )
2885 Q_FLAG( ScriptLanguageCapabilities )
2886
2887
2893 {
2894 AboveInsertionPoint,
2895 TopOfTree,
2896 OptimalInInsertionGroup,
2897 };
2898 Q_ENUM( LayerTreeInsertionMethod )
2899
2900
2905 enum class LayerTreeFilterFlag : int
2906 {
2907 SkipVisibilityCheck = 1 << 0,
2908 };
2909 Q_ENUM( LayerTreeFilterFlag )
2910
2911
2916 Q_DECLARE_FLAGS( LayerTreeFilterFlags, LayerTreeFilterFlag )
2917 Q_FLAG( LayerTreeFilterFlags )
2918
2919
2926 enum class ActionType : int
2927 {
2928 Invalid,
2929 MapLayerAction,
2930 AttributeAction
2931 };
2932 Q_ENUM( ActionType )
2933
2934
2941 enum class MapLayerActionTarget : int
2942 {
2943 Layer = 1 << 0,
2944 SingleFeature = 1 << 1,
2945 MultipleFeatures = 1 << 2,
2946 AllActions = Layer | SingleFeature | MultipleFeatures
2947 };
2948 Q_ENUM( MapLayerActionTarget )
2949
2950
2957 Q_DECLARE_FLAGS( MapLayerActionTargets, MapLayerActionTarget )
2958 Q_FLAG( MapLayerActionTargets )
2959
2960
2967 enum class MapLayerActionFlag : int
2968 {
2969 EnabledOnlyWhenEditable = 1 << 1,
2970 };
2971 Q_ENUM( MapLayerActionFlag )
2972
2973
2980 Q_DECLARE_FLAGS( MapLayerActionFlags, MapLayerActionFlag )
2981 Q_FLAG( MapLayerActionFlags )
2982
2983
2991 {
2992 Generic,
2993 GenericPython,
2994 Mac,
2995 Windows,
2996 Unix,
2997 OpenUrl,
2998 SubmitUrlEncoded,
2999 SubmitUrlMultipart,
3000 };
3001 Q_ENUM( AttributeActionType )
3002
3003
3009 {
3010 Created,
3011 Published,
3012 Revised,
3013 Superseded,
3014 };
3015 Q_ENUM( MetadataDateType )
3016
3017
3027 {
3028 Undefined SIP_MONKEYPATCH_COMPAT_NAME( UndefinedColorInterpretation ) = 0,
3029 GrayIndex = 1,
3030 PaletteIndex = 2,
3031 RedBand = 3,
3032 GreenBand = 4,
3033 BlueBand = 5,
3034 AlphaBand = 6,
3035 HueBand = 7,
3036 SaturationBand = 8,
3037 LightnessBand = 9,
3038 CyanBand = 10,
3039 MagentaBand = 11,
3040 YellowBand = 12,
3041 BlackBand = 13,
3042 YCbCr_YBand = 14,
3043 YCbCr_CbBand = 15,
3044 YCbCr_CrBand = 16,
3045 ContinuousPalette = 17
3046 };
3047 Q_ENUM( RasterColorInterpretation )
3048
3049
3057 {
3058 GrayOrUndefined,
3059 Palette,
3060 MultiBand SIP_MONKEYPATCH_COMPAT_NAME( Multiband ),
3061 SingleBandColorData SIP_MONKEYPATCH_COMPAT_NAME( ColorLayer ),
3062 };
3063 Q_ENUM( RasterLayerType )
3064
3065
3073 {
3074 Undefined SIP_MONKEYPATCH_COMPAT_NAME( UndefinedDrawingStyle ),
3075 SingleBandGray,
3076 SingleBandPseudoColor,
3077 PalettedColor,
3078 PalettedSingleBandGray,
3079 PalettedSingleBandPseudoColor,
3080 PalettedMultiBandColor,
3081 MultiBandSingleBandGray,
3082 MultiBandSingleBandPseudoColor,
3083 MultiBandColor,
3084 SingleBandColorData SIP_MONKEYPATCH_COMPAT_NAME( SingleBandColorDataStyle ),
3085 };
3086 Q_ENUM( RasterDrawingStyle )
3087
3088
3095 enum class RasterPyramidFormat SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsRaster, RasterPyramidsFormat ) : int
3096 {
3097 GeoTiff SIP_MONKEYPATCH_COMPAT_NAME( PyramidsGTiff ) = 0,
3098 Internal SIP_MONKEYPATCH_COMPAT_NAME( PyramidsInternal ) = 1,
3099 Erdas SIP_MONKEYPATCH_COMPAT_NAME( PyramidsErdas ) = 2
3100 };
3101 Q_ENUM( RasterPyramidFormat )
3102
3103
3111 {
3112 No SIP_MONKEYPATCH_COMPAT_NAME( PyramidsFlagNo ) = 0,
3113 Yes SIP_MONKEYPATCH_COMPAT_NAME( PyramidsFlagYes ) = 1,
3114 CopyExisting SIP_MONKEYPATCH_COMPAT_NAME( PyramidsCopyExisting ) = 2
3115 };
3116 Q_ENUM( RasterBuildPyramidOption )
3117
3118
3126 {
3127 Undefined SIP_MONKEYPATCH_COMPAT_NAME( IdentifyFormatUndefined ) = 0,
3128 Value SIP_MONKEYPATCH_COMPAT_NAME( IdentifyFormatValue ) = 1,
3129 Text SIP_MONKEYPATCH_COMPAT_NAME( IdentifyFormatText ) = 1 << 1,
3130 Html SIP_MONKEYPATCH_COMPAT_NAME( IdentifyFormatHtml ) = 1 << 2,
3131 Feature SIP_MONKEYPATCH_COMPAT_NAME( IdentifyFormatFeature ) = 1 << 3,
3132 };
3133 Q_ENUM( RasterIdentifyFormat )
3134
3135
3141 {
3142 HighestElevation,
3143 NewerElevation,
3144 };
3145 Q_ENUM( ElevationMapCombineMethod )
3146
3147
3156 {
3157 Normal SIP_MONKEYPATCH_COMPAT_NAME( BlendNormal ),
3158 Lighten SIP_MONKEYPATCH_COMPAT_NAME( BlendLighten ),
3159 Screen SIP_MONKEYPATCH_COMPAT_NAME( BlendScreen ),
3160 Dodge SIP_MONKEYPATCH_COMPAT_NAME( BlendDodge ),
3161 Addition SIP_MONKEYPATCH_COMPAT_NAME( BlendAddition ),
3162 Darken SIP_MONKEYPATCH_COMPAT_NAME( BlendDarken ),
3163 Multiply SIP_MONKEYPATCH_COMPAT_NAME( BlendMultiply ),
3164 Burn SIP_MONKEYPATCH_COMPAT_NAME( BlendBurn ),
3165 Overlay SIP_MONKEYPATCH_COMPAT_NAME( BlendOverlay ),
3166 SoftLight SIP_MONKEYPATCH_COMPAT_NAME( BlendSoftLight ),
3167 HardLight SIP_MONKEYPATCH_COMPAT_NAME( BlendHardLight ),
3168 Difference SIP_MONKEYPATCH_COMPAT_NAME( BlendDifference ),
3169 Subtract SIP_MONKEYPATCH_COMPAT_NAME( BlendSubtract ),
3170 Source SIP_MONKEYPATCH_COMPAT_NAME( BlendSource ),
3171 DestinationOver SIP_MONKEYPATCH_COMPAT_NAME( BlendDestinationOver ),
3172 Clear SIP_MONKEYPATCH_COMPAT_NAME( BlendClear ),
3173 Destination SIP_MONKEYPATCH_COMPAT_NAME( BlendDestination ),
3174 SourceIn SIP_MONKEYPATCH_COMPAT_NAME( BlendSourceIn ),
3175 DestinationIn SIP_MONKEYPATCH_COMPAT_NAME( BlendDestinationIn ),
3176 SourceOut SIP_MONKEYPATCH_COMPAT_NAME( BlendSourceOut ),
3177 DestinationOut SIP_MONKEYPATCH_COMPAT_NAME( BlendDestinationOut ),
3178 SourceAtop SIP_MONKEYPATCH_COMPAT_NAME( BlendSourceAtop ),
3179 DestinationAtop SIP_MONKEYPATCH_COMPAT_NAME( BlendDestinationAtop ),
3180 Xor SIP_MONKEYPATCH_COMPAT_NAME( BlendXor ),
3181 };
3182 Q_ENUM( BlendMode )
3183
3184
3192 {
3193 Unknown SIP_MONKEYPATCH_COMPAT_NAME( UnknownSystem ) = 0,
3194 Metric SIP_MONKEYPATCH_COMPAT_NAME( MetricSystem ),
3195 Imperial SIP_MONKEYPATCH_COMPAT_NAME( ImperialSystem ),
3196 USCS SIP_MONKEYPATCH_COMPAT_NAME( USCSSystem ),
3197 };
3198 Q_ENUM( SystemOfMeasurement )
3199
3200
3208 {
3209 Distance SIP_MONKEYPATCH_COMPAT_NAME( TypeDistance ) = 0,
3210 Area SIP_MONKEYPATCH_COMPAT_NAME( TypeArea ),
3211 Volume SIP_MONKEYPATCH_COMPAT_NAME( TypeVolume ),
3212 Unknown SIP_MONKEYPATCH_COMPAT_NAME( TypeUnknown ),
3213 Temporal SIP_MONKEYPATCH_COMPAT_NAME( TypeTemporal ),
3214 };
3215 Q_ENUM( UnitType )
3216
3217
3225 {
3226 Meters SIP_MONKEYPATCH_COMPAT_NAME( DistanceMeters ),
3227 Kilometers SIP_MONKEYPATCH_COMPAT_NAME( DistanceKilometers ),
3228 Feet SIP_MONKEYPATCH_COMPAT_NAME( DistanceFeet ),
3229 NauticalMiles SIP_MONKEYPATCH_COMPAT_NAME( DistanceNauticalMiles ),
3230 Yards SIP_MONKEYPATCH_COMPAT_NAME( DistanceYards ),
3231 Miles SIP_MONKEYPATCH_COMPAT_NAME( DistanceMiles ),
3232 Degrees SIP_MONKEYPATCH_COMPAT_NAME( DistanceDegrees ),
3233 Centimeters SIP_MONKEYPATCH_COMPAT_NAME( DistanceCentimeters ),
3234 Millimeters SIP_MONKEYPATCH_COMPAT_NAME( DistanceMillimeters ),
3235 Inches,
3236 Unknown SIP_MONKEYPATCH_COMPAT_NAME( DistanceUnknownUnit ),
3237 };
3238 Q_ENUM( DistanceUnit )
3239
3240
3248 {
3249 Standard,
3250 Geographic,
3251 Unknown SIP_MONKEYPATCH_COMPAT_NAME( UnknownType ),
3252 };
3253 Q_ENUM( DistanceUnitType )
3254
3255
3263 {
3264 SquareMeters SIP_MONKEYPATCH_COMPAT_NAME( AreaSquareMeters ),
3265 SquareKilometers SIP_MONKEYPATCH_COMPAT_NAME( AreaSquareKilometers ),
3266 SquareFeet SIP_MONKEYPATCH_COMPAT_NAME( AreaSquareFeet ),
3267 SquareYards SIP_MONKEYPATCH_COMPAT_NAME( AreaSquareYards ),
3268 SquareMiles SIP_MONKEYPATCH_COMPAT_NAME( AreaSquareMiles ),
3269 Hectares SIP_MONKEYPATCH_COMPAT_NAME( AreaHectares ),
3270 Acres SIP_MONKEYPATCH_COMPAT_NAME( AreaAcres ),
3271 SquareNauticalMiles SIP_MONKEYPATCH_COMPAT_NAME( AreaSquareNauticalMiles ),
3272 SquareDegrees SIP_MONKEYPATCH_COMPAT_NAME( AreaSquareDegrees ),
3273 SquareCentimeters SIP_MONKEYPATCH_COMPAT_NAME( AreaSquareCentimeters ),
3274 SquareMillimeters SIP_MONKEYPATCH_COMPAT_NAME( AreaSquareMillimeters ),
3275 SquareInches,
3276 Unknown SIP_MONKEYPATCH_COMPAT_NAME( AreaUnknownUnit ),
3277 };
3278 Q_ENUM( AreaUnit )
3279
3280
3288 {
3289 CubicMeters SIP_MONKEYPATCH_COMPAT_NAME( VolumeCubicMeters ),
3290 CubicFeet SIP_MONKEYPATCH_COMPAT_NAME( VolumeCubicFeet ),
3291 CubicYards SIP_MONKEYPATCH_COMPAT_NAME( VolumeCubicYards ),
3292 Barrel SIP_MONKEYPATCH_COMPAT_NAME( VolumeBarrel ),
3293 CubicDecimeter SIP_MONKEYPATCH_COMPAT_NAME( VolumeCubicDecimeter ),
3294 Liters SIP_MONKEYPATCH_COMPAT_NAME( VolumeLiters ),
3295 GallonUS SIP_MONKEYPATCH_COMPAT_NAME( VolumeGallonUS ),
3296 CubicInch SIP_MONKEYPATCH_COMPAT_NAME( VolumeCubicInch ),
3297 CubicCentimeter SIP_MONKEYPATCH_COMPAT_NAME( VolumeCubicCentimeter ),
3298 CubicDegrees SIP_MONKEYPATCH_COMPAT_NAME( VolumeCubicDegrees ),
3299 Unknown SIP_MONKEYPATCH_COMPAT_NAME( VolumeUnknownUnit ),
3300 };
3301 Q_ENUM( VolumeUnit )
3302
3303
3311 {
3312 Degrees SIP_MONKEYPATCH_COMPAT_NAME( AngleDegrees ),
3313 Radians SIP_MONKEYPATCH_COMPAT_NAME( AngleRadians ),
3314 Gon SIP_MONKEYPATCH_COMPAT_NAME( AngleGon ),
3315 MinutesOfArc SIP_MONKEYPATCH_COMPAT_NAME( AngleMinutesOfArc ),
3316 SecondsOfArc SIP_MONKEYPATCH_COMPAT_NAME( AngleSecondsOfArc ),
3317 Turn SIP_MONKEYPATCH_COMPAT_NAME( AngleTurn ),
3318 MilliradiansSI SIP_MONKEYPATCH_COMPAT_NAME( AngleMilliradiansSI ),
3319 MilNATO SIP_MONKEYPATCH_COMPAT_NAME( AngleMilNATO ),
3320 Unknown SIP_MONKEYPATCH_COMPAT_NAME( AngleUnknownUnit ),
3321 };
3322 Q_ENUM( AngleUnit )
3323
3324
3332 {
3333 Milliseconds SIP_MONKEYPATCH_COMPAT_NAME( TemporalMilliseconds ),
3334 Seconds SIP_MONKEYPATCH_COMPAT_NAME( TemporalSeconds ),
3335 Minutes SIP_MONKEYPATCH_COMPAT_NAME( TemporalMinutes ),
3336 Hours SIP_MONKEYPATCH_COMPAT_NAME( TemporalHours ),
3337 Days SIP_MONKEYPATCH_COMPAT_NAME( TemporalDays ),
3338 Weeks SIP_MONKEYPATCH_COMPAT_NAME( TemporalWeeks ),
3339 Months SIP_MONKEYPATCH_COMPAT_NAME( TemporalMonths ),
3340 Years SIP_MONKEYPATCH_COMPAT_NAME( TemporalYears ),
3341 Decades SIP_MONKEYPATCH_COMPAT_NAME( TemporalDecades ),
3342 Centuries SIP_MONKEYPATCH_COMPAT_NAME( TemporalCenturies ),
3343 IrregularStep SIP_MONKEYPATCH_COMPAT_NAME( TemporalIrregularStep ),
3344 Unknown SIP_MONKEYPATCH_COMPAT_NAME( TemporalUnknownUnit )
3345 };
3346 Q_ENUM( TemporalUnit )
3347
3348
3356 {
3357 Millimeters SIP_MONKEYPATCH_COMPAT_NAME( RenderMillimeters ),
3358 MapUnits SIP_MONKEYPATCH_COMPAT_NAME( RenderMapUnits ),
3359 Pixels SIP_MONKEYPATCH_COMPAT_NAME( RenderPixels ),
3360 Percentage SIP_MONKEYPATCH_COMPAT_NAME( RenderPercentage ),
3361 Points SIP_MONKEYPATCH_COMPAT_NAME( RenderPoints ),
3362 Inches SIP_MONKEYPATCH_COMPAT_NAME( RenderInches ),
3363 Unknown SIP_MONKEYPATCH_COMPAT_NAME( RenderUnknownUnit ),
3364 MetersInMapUnits SIP_MONKEYPATCH_COMPAT_NAME( RenderMetersInMapUnits ),
3365 };
3366 Q_ENUM( RenderUnit )
3367
3368
3376 {
3377 Millimeters SIP_MONKEYPATCH_COMPAT_NAME( LayoutMillimeters ),
3378 Centimeters SIP_MONKEYPATCH_COMPAT_NAME( LayoutCentimeters ),
3379 Meters SIP_MONKEYPATCH_COMPAT_NAME( LayoutMeters ),
3380 Inches SIP_MONKEYPATCH_COMPAT_NAME( LayoutInches ),
3381 Feet SIP_MONKEYPATCH_COMPAT_NAME( LayoutFeet ),
3382 Points SIP_MONKEYPATCH_COMPAT_NAME( LayoutPoints ),
3383 Picas SIP_MONKEYPATCH_COMPAT_NAME( LayoutPicas ),
3384 Pixels SIP_MONKEYPATCH_COMPAT_NAME( LayoutPixels )
3385 };
3386 Q_ENUM( LayoutUnit )
3387
3388
3396 {
3397 PaperUnits SIP_MONKEYPATCH_COMPAT_NAME( LayoutPaperUnits ),
3398 ScreenUnits SIP_MONKEYPATCH_COMPAT_NAME( LayoutScreenUnits )
3399 };
3400 Q_ENUM( LayoutUnitType )
3401
3402
3408 {
3409 NotSet,
3410 Unknown,
3411 OrdinaryTable,
3412 Index,
3413 Sequence,
3414 View,
3415 MaterializedView,
3416 CompositeType,
3417 ToastTable,
3418 ForeignTable,
3419 PartitionedTable,
3420 };
3421 Q_ENUM( PostgresRelKind )
3422
3423
3429 {
3430 SetFieldComment = 1 << 0,
3431 SetFieldAlias = 1 << 1,
3432 };
3433 Q_ENUM( DatabaseProviderConnectionCapability2 )
3434 Q_DECLARE_FLAGS( DatabaseProviderConnectionCapabilities2, DatabaseProviderConnectionCapability2 )
3435 Q_FLAG( DatabaseProviderConnectionCapabilities2 )
3436
3437
3443 {
3444 LastProfile,
3445 DefaultProfile,
3446 AskUser,
3447 };
3448 Q_ENUM( UserProfileSelectionPolicy )
3449
3450
3458 {
3459 Container SIP_MONKEYPATCH_COMPAT_NAME( AeTypeContainer ),
3460 Field SIP_MONKEYPATCH_COMPAT_NAME( AeTypeField ),
3461 Relation SIP_MONKEYPATCH_COMPAT_NAME( AeTypeRelation ),
3462 QmlElement SIP_MONKEYPATCH_COMPAT_NAME( AeTypeQmlElement ),
3463 HtmlElement SIP_MONKEYPATCH_COMPAT_NAME( AeTypeHtmlElement ),
3464 Action SIP_MONKEYPATCH_COMPAT_NAME( AeTypeAction ),
3465 TextElement SIP_MONKEYPATCH_COMPAT_NAME( AeTypeTextElement ),
3466 SpacerElement SIP_MONKEYPATCH_COMPAT_NAME( AeTypeSpacerElement ),
3467 Invalid SIP_MONKEYPATCH_COMPAT_NAME( AeTypeInvalid ),
3468 };
3469 Q_ENUM( AttributeEditorType )
3470
3471
3477 {
3478 GroupBox,
3479 Tab,
3480 Row,
3481 };
3482 Q_ENUM( AttributeEditorContainerType )
3483
3484
3492 {
3493 AutoGenerated SIP_MONKEYPATCH_COMPAT_NAME( GeneratedLayout ) = 0,
3494 DragAndDrop SIP_MONKEYPATCH_COMPAT_NAME( TabLayout ) = 1,
3495 UiFile SIP_MONKEYPATCH_COMPAT_NAME( UiFileLayout ) = 2
3496 };
3497 Q_ENUM( AttributeFormLayout )
3498
3499
3507 {
3508 Default SIP_MONKEYPATCH_COMPAT_NAME( SuppressDefault ) = 0,
3509 On SIP_MONKEYPATCH_COMPAT_NAME( SuppressOn ) = 1,
3510 Off SIP_MONKEYPATCH_COMPAT_NAME( SuppressOff ) = 2
3511 };
3512 Q_ENUM( AttributeFormSuppression )
3513
3514
3522 {
3523 NoSource SIP_MONKEYPATCH_COMPAT_NAME( CodeSourceNone ) = 0,
3524 File SIP_MONKEYPATCH_COMPAT_NAME( CodeSourceFile ) = 1,
3525 Dialog SIP_MONKEYPATCH_COMPAT_NAME( CodeSourceDialog ) = 2,
3526 Environment SIP_MONKEYPATCH_COMPAT_NAME( CodeSourceEnvironment ) = 3
3527 };
3528 Q_ENUM( AttributeFormPythonInitCodeSource )
3529
3530
3536 {
3537 Qgis,
3538 PointCloud,
3539 };
3540 Q_ENUM( ExpressionType )
3541
3542
3550 {
3551 NoSymbology = 0,
3552 PerFeature SIP_MONKEYPATCH_COMPAT_NAME( FeatureSymbology ),
3553 PerSymbolLayer SIP_MONKEYPATCH_COMPAT_NAME( SymbolLayerSymbology )
3554 };
3555 Q_ENUM( FeatureSymbologyExport )
3556
3557
3562 enum class VectorTileProviderFlag : int
3563 {
3564 AlwaysUseTileMatrixSetFromProvider = 1 << 1,
3565 };
3566 Q_ENUM( VectorTileProviderFlag )
3567
3568
3573 Q_DECLARE_FLAGS( VectorTileProviderFlags, VectorTileProviderFlag )
3574 Q_FLAG( VectorTileProviderFlags )
3575
3576
3581 {
3582 ReadLayerMetadata = 1 << 1,
3583 };
3584 Q_ENUM( VectorTileProviderCapability )
3585
3586
3591 Q_DECLARE_FLAGS( VectorTileProviderCapabilities, VectorTileProviderCapability )
3592 Q_FLAG( VectorTileProviderCapabilities )
3593
3594
3600 {
3601 Available,
3602 NotAvailable,
3603 AvailableNoChildren,
3604 UseLowerZoomLevelTile,
3605 };
3606 Q_ENUM( TileAvailability )
3607
3608
3612 static const double DEFAULT_SEARCH_RADIUS_MM;
3613
3615 static const float DEFAULT_MAPTOPIXEL_THRESHOLD;
3616
3623 static const QColor DEFAULT_HIGHLIGHT_COLOR;
3624
3629 static const double DEFAULT_HIGHLIGHT_BUFFER_MM;
3630
3635 static const double DEFAULT_HIGHLIGHT_MIN_WIDTH_MM;
3636
3643 static const double SCALE_PRECISION;
3644
3650 static const double DEFAULT_Z_COORDINATE;
3651
3657 static const double DEFAULT_M_COORDINATE;
3658
3664 static const double UI_SCALE_FACTOR;
3665
3670 static const double DEFAULT_SNAP_TOLERANCE;
3671
3676 static const QgsTolerance::UnitType DEFAULT_SNAP_UNITS;
3677
3683 static QString defaultProjectScales();
3684
3690 static int geosVersionInt();
3691
3697 static int geosVersionMajor();
3698
3704 static int geosVersionMinor();
3705
3711 static int geosVersionPatch();
3712
3718 static QString geosVersion();
3719};
3720
3723
3724Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::SymbolRenderHints )
3725Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::SymbolFlags )
3726Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::SymbolPreviewFlags )
3727Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::SymbolLayerFlags )
3728Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::BrowserItemCapabilities )
3729Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::SublayerQueryFlags )
3730Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::SublayerFlags )
3731Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::SqlLayerDefinitionCapabilities )
3732Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::BabelFormatCapabilities )
3733Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::BabelCommandFlags )
3734Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::GeometryValidityFlags )
3735Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::FileOperationFlags )
3736Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::AnnotationItemFlags )
3737Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::AnnotationItemGuiFlags )
3738Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::MapSettingsFlags )
3739Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::RenderContextFlags )
3740Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::VectorLayerTypeFlags )
3741Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::MarkerLinePlacements )
3742Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::TextRendererFlags )
3743Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::HistoryProviderBackends )
3744Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::MapLayerProperties )
3745Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::DataProviderFlags )
3746Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::VectorDataProviderAttributeEditCapabilities )
3747Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::SnappingTypes )
3748Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::PlotToolFlags )
3749Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::ProfileGeneratorFlags )
3750Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::ProjectReadFlags )
3751Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::ProjectCapabilities )
3752Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::CoordinateTransformationFlags )
3753Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::RasterTemporalCapabilityFlags )
3754Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::SelectionFlags )
3755Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::RasterRendererFlags )
3756Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::LabelingFlags )
3757Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::GpsInformationComponents )
3758Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::MapLayerActionTargets )
3759Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::MapLayerActionFlags )
3760Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::RelationshipCapabilities )
3761Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::SettingsTreeNodeOptions )
3762Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::ScriptLanguageCapabilities )
3763Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::LayerTreeFilterFlags )
3764Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::LabelLinePlacementFlags )
3765Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::LabelPolygonPlacementFlags )
3766Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::DatabaseProviderConnectionCapabilities2 )
3767Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::VectorFileWriterCapabilities )
3768Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::VectorTileProviderFlags )
3769Q_DECLARE_OPERATORS_FOR_FLAGS( Qgis::VectorTileProviderCapabilities )
3770
3771// hack to workaround warnings when casting void pointers
3772// retrieved from QLibrary::resolve to function pointers.
3773// It's assumed that this works on all systems supporting
3774// QLibrary
3775#define cast_to_fptr(f) f
3776
3777
3786// based on Boojum's code from http://stackoverflow.com/questions/3556687/prevent-firing-signals-in-qt
3787template<class Object> class QgsSignalBlocker SIP_SKIP SIP_SKIP // clazy:exclude=rule-of-three
3788{
3789 public:
3790
3795 explicit QgsSignalBlocker( Object * object )
3796 : mObject( object )
3797 , mPreviousState( object->blockSignals( true ) )
3798 {}
3799
3801 {
3802 mObject->blockSignals( mPreviousState );
3803 }
3804
3806 Object *operator->() { return mObject; }
3807
3808 private:
3809
3810 Object *mObject = nullptr;
3811 bool mPreviousState;
3812
3813};
3814
3828// based on Boojum's code from http://stackoverflow.com/questions/3556687/prevent-firing-signals-in-qt
3829template<class Object> inline QgsSignalBlocker<Object> whileBlocking( Object *object ) SIP_SKIP SIP_SKIP
3830{
3831 return QgsSignalBlocker<Object>( object );
3832}
3833
3835CORE_EXPORT uint qHash( const QVariant &variant );
3836
3842inline QString qgsDoubleToString( double a, int precision = 17 )
3843{
3844 QString str;
3845 if ( precision )
3846 {
3847 if ( precision < 0 )
3848 {
3849 const double roundFactor = std::pow( 10, -precision );
3850 str = QString::number( static_cast< long long >( std::round( a / roundFactor ) * roundFactor ) );
3851 }
3852 else
3853 {
3854 str = QString::number( a, 'f', precision );
3855 if ( str.contains( QLatin1Char( '.' ) ) )
3856 {
3857 // remove ending 0s
3858 int idx = str.length() - 1;
3859 while ( str.at( idx ) == '0' && idx > 1 )
3860 {
3861 idx--;
3862 }
3863 if ( idx < str.length() - 1 )
3864 str.truncate( str.at( idx ) == '.' ? idx : idx + 1 );
3865 }
3866 }
3867 }
3868 else
3869 {
3870 str = QString::number( a, 'f', precision );
3871 }
3872 // avoid printing -0
3873 // see https://bugreports.qt.io/browse/QTBUG-71439
3874 if ( str == QLatin1String( "-0" ) )
3875 {
3876 return QLatin1String( "0" );
3877 }
3878 return str;
3879}
3880
3887inline bool qgsNanCompatibleEquals( double a, double b )
3888{
3889 const bool aIsNan = std::isnan( a );
3890 const bool bIsNan = std::isnan( b );
3891 if ( aIsNan || bIsNan )
3892 return aIsNan && bIsNan;
3893
3894 return a == b;
3895}
3896
3903inline bool qgsDoubleNear( double a, double b, double epsilon = 4 * std::numeric_limits<double>::epsilon() )
3904{
3905 const bool aIsNan = std::isnan( a );
3906 const bool bIsNan = std::isnan( b );
3907 if ( aIsNan || bIsNan )
3908 return aIsNan && bIsNan;
3909
3910 const double diff = a - b;
3911 return diff > -epsilon && diff <= epsilon;
3912}
3913
3920inline bool qgsFloatNear( float a, float b, float epsilon = 4 * FLT_EPSILON )
3921{
3922 const bool aIsNan = std::isnan( a );
3923 const bool bIsNan = std::isnan( b );
3924 if ( aIsNan || bIsNan )
3925 return aIsNan && bIsNan;
3926
3927 const float diff = a - b;
3928 return diff > -epsilon && diff <= epsilon;
3929}
3930
3932inline bool qgsDoubleNearSig( double a, double b, int significantDigits = 10 )
3933{
3934 const bool aIsNan = std::isnan( a );
3935 const bool bIsNan = std::isnan( b );
3936 if ( aIsNan || bIsNan )
3937 return aIsNan && bIsNan;
3938
3939 // The most simple would be to print numbers as %.xe and compare as strings
3940 // but that is probably too costly
3941 // Then the fastest would be to set some bits directly, but little/big endian
3942 // has to be considered (maybe TODO)
3943 // Is there a better way?
3944 int aexp, bexp;
3945 const double ar = std::frexp( a, &aexp );
3946 const double br = std::frexp( b, &bexp );
3947
3948 return aexp == bexp &&
3949 std::round( ar * std::pow( 10.0, significantDigits ) ) == std::round( br * std::pow( 10.0, significantDigits ) );
3950}
3951
3957inline double qgsRound( double number, int places )
3958{
3959 const double m = ( number < 0.0 ) ? -1.0 : 1.0;
3960 const double scaleFactor = std::pow( 10.0, places );
3961 return ( std::round( number * m * scaleFactor ) / scaleFactor ) * m;
3962}
3963
3964#ifndef SIP_RUN
3965
3972template<class Key, class Value>
3973QString qgsMapJoinKeys( const QMap<Key, Value> &map, const QString &separator )
3974{
3975 QString result;
3976 for ( auto it = map.constBegin(); it != map.constEnd(); it++ )
3977 result += QString( "%1%2" ).arg( it.key() ).arg( separator );
3978
3979 result.chop( separator.size() );
3980 return result;
3981}
3982
3989template<class Key, class Value>
3990QString qgsMapJoinValues( const QMap<Key, Value> &map, const QString &separator )
3991{
3992 QString result;
3993 for ( auto it = map.constBegin(); it != map.constEnd(); it++ )
3994 result += QString( "%1%2" ).arg( it.value() ).arg( separator );
3995
3996 result.chop( separator.size() );
3997 return result;
3998}
3999
4006template<class T>
4007QString qgsSetJoin( const QSet<T> &set, const QString &separator )
4008{
4009 QString result;
4010 for ( auto it = set.constBegin(); it != set.constEnd(); it++ )
4011 result += QString( "%1%2" ).arg( *it ).arg( separator );
4012
4013 result.chop( separator.size() );
4014 return result;
4015}
4016
4018
4028namespace qgis
4029{
4030
4043 template<typename To, typename From> inline To down_cast( From *f )
4044 {
4045 static_assert(
4046 ( std::is_base_of<From,
4047 typename std::remove_pointer<To>::type>::value ),
4048 "target type not derived from source type" );
4049 Q_ASSERT( f == nullptr || dynamic_cast<To>( f ) != nullptr );
4050 return static_cast<To>( f );
4051 }
4052
4053 template<class T>
4054 QSet<T> listToSet( const QList<T> &list )
4055 {
4056 return QSet<T>( list.begin(), list.end() );
4057 }
4058
4059 template<class T>
4060 QList<T> setToList( const QSet<T> &set )
4061 {
4062 return QList<T>( set.begin(), set.end() );
4063 }
4064}
4065
4067#endif
4068
4073template<class T> const QList<T> qgsEnumList() SIP_SKIP
4074{
4075 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
4076 Q_ASSERT( metaEnum.isValid() );
4077 QList<T> enumList;
4078 for ( int idx = 0; idx < metaEnum.keyCount(); ++idx )
4079 {
4080 enumList.append( static_cast<T>( metaEnum.value( idx ) ) );
4081 }
4082 return enumList;
4083}
4084
4090template<class T> const QMap<T, QString> qgsEnumMap() SIP_SKIP
4091{
4092 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
4093 Q_ASSERT( metaEnum.isValid() );
4094 QMap<T, QString> enumMap;
4095 for ( int idx = 0; idx < metaEnum.keyCount(); ++idx )
4096 {
4097 enumMap.insert( static_cast<T>( metaEnum.value( idx ) ), QString( metaEnum.key( idx ) ) );
4098 }
4099 return enumMap;
4100}
4101
4107template<class T> QString qgsEnumValueToKey( const T &value, bool *returnOk = nullptr ) SIP_SKIP
4108{
4109 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
4110 Q_ASSERT( metaEnum.isValid() );
4111 const char *key = metaEnum.valueToKey( static_cast<int>( value ) );
4112 if ( returnOk )
4113 {
4114 *returnOk = key ? true : false;
4115 }
4116 return QString::fromUtf8( key );
4117}
4118
4126template<class T> T qgsEnumKeyToValue( const QString &key, const T &defaultValue, bool tryValueAsKey = true, bool *returnOk = nullptr ) SIP_SKIP
4127{
4128 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
4129 Q_ASSERT( metaEnum.isValid() );
4130 bool ok = false;
4131 T v = static_cast<T>( metaEnum.keyToValue( key.toUtf8().data(), &ok ) );
4132 if ( returnOk )
4133 {
4134 *returnOk = ok;
4135 }
4136 if ( ok )
4137 {
4138 return v;
4139 }
4140 else
4141 {
4142 // if conversion has failed, try with conversion from int value
4143 if ( tryValueAsKey )
4144 {
4145 bool canConvert = false;
4146 const int intValue = key.toInt( &canConvert );
4147 if ( canConvert && metaEnum.valueToKey( intValue ) )
4148 {
4149 if ( returnOk )
4150 {
4151 *returnOk = true;
4152 }
4153 return static_cast<T>( intValue );
4154 }
4155 }
4156 }
4157 return defaultValue;
4158}
4159
4165template<class T> QString qgsFlagValueToKeys( const T &value, bool *returnOk = nullptr ) SIP_SKIP
4166{
4167 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
4168 Q_ASSERT( metaEnum.isValid() );
4169 int intValue = static_cast<int>( value );
4170 const QByteArray ba = metaEnum.valueToKeys( intValue );
4171 // check that the int value does correspond to a flag
4172 // see https://stackoverflow.com/a/68495949/1548052
4173 const int intValueCheck = metaEnum.keysToValue( ba );
4174 bool ok = intValue == intValueCheck;
4175 if ( returnOk )
4176 *returnOk = ok;
4177 return ok ? QString::fromUtf8( ba ) : QString();
4178}
4179
4187template<class T> T qgsFlagKeysToValue( const QString &keys, const T &defaultValue, bool tryValueAsKey = true, bool *returnOk = nullptr ) SIP_SKIP
4188{
4189 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
4190 Q_ASSERT( metaEnum.isValid() );
4191 bool ok = false;
4192 T v = static_cast<T>( metaEnum.keysToValue( keys.toUtf8().constData(), &ok ) );
4193 if ( returnOk )
4194 {
4195 *returnOk = ok;
4196 }
4197 if ( ok )
4198 {
4199 return v;
4200 }
4201 else
4202 {
4203 // if conversion has failed, try with conversion from int value
4204 if ( tryValueAsKey )
4205 {
4206 bool canConvert = false;
4207 const int intValue = keys.toInt( &canConvert );
4208 if ( canConvert )
4209 {
4210 const QByteArray keys = metaEnum.valueToKeys( intValue );
4211 const int intValueCheck = metaEnum.keysToValue( keys );
4212 if ( intValue == intValueCheck )
4213 {
4214 if ( returnOk )
4215 {
4216 *returnOk = true;
4217 }
4218 return T( intValue );
4219 }
4220 }
4221 }
4222 }
4223 return defaultValue;
4224}
4225
4226
4236CORE_EXPORT double qgsPermissiveToDouble( QString string, bool &ok );
4237
4247CORE_EXPORT int qgsPermissiveToInt( QString string, bool &ok );
4248
4258CORE_EXPORT qlonglong qgsPermissiveToLongLong( QString string, bool &ok );
4259
4269CORE_EXPORT bool qgsVariantLessThan( const QVariant &lhs, const QVariant &rhs );
4270
4279CORE_EXPORT bool qgsVariantEqual( const QVariant &lhs, const QVariant &rhs );
4280
4287CORE_EXPORT bool qgsVariantGreaterThan( const QVariant &lhs, const QVariant &rhs );
4288
4289#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
4290
4297inline bool operator> ( const QVariant &v1, const QVariant &v2 )
4298{
4299 return qgsVariantGreaterThan( v1, v2 );
4300}
4301
4311inline bool operator< ( const QVariant &v1, const QVariant &v2 )
4312{
4313 return qgsVariantLessThan( v1, v2 );
4314}
4315#endif
4316
4317
4318#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
4319
4323template<> CORE_EXPORT bool qMapLessThanKey<QVariantList>( const QVariantList &key1, const QVariantList &key2 ) SIP_SKIP;
4324#endif
4325
4326CORE_EXPORT QString qgsVsiPrefix( const QString &path );
4327
4333void CORE_EXPORT *qgsMalloc( size_t size ) SIP_SKIP;
4334
4339void CORE_EXPORT qgsFree( void *ptr ) SIP_SKIP;
4340
4341#ifndef SIP_RUN
4342
4343#ifdef _MSC_VER
4344#define CONSTLATIN1STRING inline const QLatin1String
4345#else
4346#define CONSTLATIN1STRING constexpr QLatin1String
4347#endif
4348
4350class ScopedIntIncrementor
4351{
4352 public:
4353
4354 ScopedIntIncrementor( int *variable )
4355 : mVariable( variable )
4356 {
4357 ( *mVariable )++;
4358 }
4359
4360 ScopedIntIncrementor( const ScopedIntIncrementor &other ) = delete;
4361 ScopedIntIncrementor &operator=( const ScopedIntIncrementor &other ) = delete;
4362
4363 void release()
4364 {
4365 if ( mVariable )
4366 ( *mVariable )--;
4367
4368 mVariable = nullptr;
4369 }
4370
4371 ~ScopedIntIncrementor()
4372 {
4373 release();
4374 }
4375
4376 private:
4377 int *mVariable = nullptr;
4378};
4380
4386{
4387 return QLatin1String(
4388 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]] )"""
4389 );
4390}
4391
4394{
4395 return QLatin1String( "+proj=longlat +datum=WGS84 +no_defs" );
4396}
4397
4400{
4401 return QLatin1String( "EPSG:4326" );
4402}
4403
4406{
4407 return QLatin1String( "NONE" );
4408}
4409
4411
4413const int PREVIEW_JOB_DELAY_MS = 250;
4414
4416const int MAXIMUM_LAYER_PREVIEW_TIME_MS = 250;
4417
4419
4420#endif
4421
4423const long GEOSRID = 4326;
4424
4426const long GEOCRS_ID = 3452;
4427
4429const long GEO_EPSG_CRS_ID = 4326;
4430
4435const int USER_CRS_START_ID = 100000;
4436
4437//
4438// Constants for point symbols
4439//
4440
4442const double DEFAULT_POINT_SIZE = 2.0;
4443const double DEFAULT_LINE_WIDTH = 0.26;
4444
4446const double DEFAULT_SEGMENT_EPSILON = 1e-8;
4447
4448typedef QMap<QString, QString> QgsStringMap SIP_SKIP;
4449
4458typedef unsigned long long qgssize;
4459
4460#ifndef SIP_RUN
4461#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) || defined(__clang__)
4462
4463#define Q_NOWARN_DEPRECATED_PUSH \
4464 _Pragma("GCC diagnostic push") \
4465 _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"");
4466#define Q_NOWARN_DEPRECATED_POP \
4467 _Pragma("GCC diagnostic pop");
4468#define Q_NOWARN_UNREACHABLE_PUSH
4469#define Q_NOWARN_UNREACHABLE_POP
4470
4471#elif defined(_MSC_VER)
4472
4473#define Q_NOWARN_DEPRECATED_PUSH \
4474 __pragma(warning(push)) \
4475 __pragma(warning(disable:4996))
4476#define Q_NOWARN_DEPRECATED_POP \
4477 __pragma(warning(pop))
4478#define Q_NOWARN_UNREACHABLE_PUSH \
4479 __pragma(warning(push)) \
4480 __pragma(warning(disable:4702))
4481#define Q_NOWARN_UNREACHABLE_POP \
4482 __pragma(warning(pop))
4483
4484#else
4485
4486#define Q_NOWARN_DEPRECATED_PUSH
4487#define Q_NOWARN_DEPRECATED_POP
4488#define Q_NOWARN_UNREACHABLE_PUSH
4489#define Q_NOWARN_UNREACHABLE_POP
4490
4491#endif
4492#endif
4493
4494#ifndef QGISEXTERN
4495#ifdef Q_OS_WIN
4496# define QGISEXTERN extern "C" __declspec( dllexport )
4497#else
4498# if defined(__GNUC__) || defined(__clang__)
4499# define QGISEXTERN extern "C" __attribute__ ((visibility ("default")))
4500# else
4501# define QGISEXTERN extern "C"
4502# endif
4503#endif
4504#endif
4505#endif
4506
4507#if __cplusplus >= 201500
4508#define FALLTHROUGH [[fallthrough]];
4509#elif defined(__clang__)
4510#define FALLTHROUGH [[clang::fallthrough]];
4511#elif defined(__GNUC__) && __GNUC__ >= 7
4512#define FALLTHROUGH [[gnu::fallthrough]];
4513#else
4514#define FALLTHROUGH
4515#endif
4516
4517// see https://infektor.net/posts/2017-01-19-using-cpp17-attributes-today.html#using-the-nodiscard-attribute
4518#if __cplusplus >= 201703L
4519#define NODISCARD [[nodiscard]]
4520#elif defined(__clang__)
4521#define NODISCARD [[nodiscard]]
4522#elif defined(_MSC_VER)
4523#define NODISCARD // no support
4524#elif defined(__has_cpp_attribute)
4525#if __has_cpp_attribute(nodiscard)
4526#define NODISCARD [[nodiscard]]
4527#elif __has_cpp_attribute(gnu::warn_unused_result)
4528#define NODISCARD [[gnu::warn_unused_result]]
4529#else
4530#define NODISCARD Q_REQUIRED_RESULT
4531#endif
4532#else
4533#define NODISCARD Q_REQUIRED_RESULT
4534#endif
4535
4536#if __cplusplus >= 201703L
4537#define MAYBE_UNUSED [[maybe_unused]]
4538#elif defined(__clang__)
4539#define MAYBE_UNUSED [[maybe_unused]]
4540#elif defined(_MSC_VER)
4541#define MAYBE_UNUSED // no support
4542#elif defined(__has_cpp_attribute)
4543#if __has_cpp_attribute(gnu::unused)
4544#define MAYBE_UNUSED [[gnu::unused]]
4545#else
4546#define MAYBE_UNUSED
4547#endif
4548#else
4549#define MAYBE_UNUSED
4550#endif
4551
4552#ifndef FINAL
4553#define FINAL final
4554#endif
4555
4556#ifndef SIP_RUN
4557#ifdef _MSC_VER
4558#define BUILTIN_UNREACHABLE \
4559 __assume(false);
4560#elif defined(__GNUC__) && !defined(__clang__)
4561// Workaround a GCC bug where a -Wreturn-type warning is emitted in constructs
4562// like:
4563// switch( mVariableThatCanOnlyBeXorY )
4564// {
4565// case X:
4566// return "foo";
4567// case Y:
4568// return "foo";
4569// }
4570// See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87951
4571#define BUILTIN_UNREACHABLE \
4572 __builtin_unreachable();
4573#else
4574#define BUILTIN_UNREACHABLE
4575#endif
4576#endif // SIP_RUN
4577
4578#ifdef SIP_RUN
4579
4584QString CORE_EXPORT geoWkt();
4585
4587QString CORE_EXPORT geoProj4();
4588
4590QString CORE_EXPORT geoEpsgCrsAuthId();
4591
4593QString CORE_EXPORT geoNone();
4594
4595#endif
The Qgis class provides global constants for use throughout the application.
Definition: qgis.h:55
DistanceUnitType
Types of distance units.
Definition: qgis.h:3248
GnssConstellation
GNSS constellation.
Definition: qgis.h:1257
SettingsOption
Settings options.
Definition: qgis.h:439
ProfileGeneratorFlag
Flags that control the way the QgsAbstractProfileGenerator operate.
Definition: qgis.h:2604
GpsQualityIndicator
GPS signal quality indicator.
Definition: qgis.h:1275
ProjectReadFlag
Flags which control project read behavior.
Definition: qgis.h:2675
PointCloudSymbol
Rendering symbols for point cloud points.
Definition: qgis.h:2619
GeometryValidityFlag
Geometry validity check flags.
Definition: qgis.h:1409
ExpressionType
Expression types.
Definition: qgis.h:3536
MapLayerActionFlag
Map layer action targets.
Definition: qgis.h:2968
MapLayerProperty
File operation flags.
Definition: qgis.h:1512
BufferSide
Side of line to buffer.
Definition: qgis.h:1434
RasterResamplingStage
Stage at which raster resampling occurs.
Definition: qgis.h:993
VectorTileProviderCapability
Vector tile data provider flags.
Definition: qgis.h:3581
AltitudeClamping
Altitude clamping.
Definition: qgis.h:2444
VectorTileProviderFlag
Flags for vector tile data providers.
Definition: qgis.h:3563
VectorTemporalMode
Vector layer temporal feature modes.
Definition: qgis.h:1658
SublayerFlag
Sublayer query flags.
Definition: qgis.h:962
LabelLinePlacementFlag
Line placement flags, which control how candidates are generated for a linear feature.
Definition: qgis.h:850
CoordinateDisplayType
Relationship capabilities.
Definition: qgis.h:2823
DashPatternSizeAdjustment
Dash pattern size adjustment options.
Definition: qgis.h:2208
GpsFixStatus
GPS fix status.
Definition: qgis.h:1242
AnnotationItemNodeType
Annotation item GUI flags.
Definition: qgis.h:1634
static const char * QGIS_DEV_VERSION
The development version.
Definition: qgis.h:83
VectorFileWriterCapability
Capabilities supported by a QgsVectorFileWriter object.
Definition: qgis.h:662
AngularDirection
Angular directions.
Definition: qgis.h:2308
DriveType
Drive types.
Definition: qgis.h:715
UnitType
Unit types.
Definition: qgis.h:3208
ContentStatus
Status for fetched or stored content.
Definition: qgis.h:1198
SnappingType
SnappingTypeFlag defines on what object the snapping is performed.
Definition: qgis.h:464
LayoutUnit
Layout measurement units.
Definition: qgis.h:3376
Q_ENUM(GpsFixStatus)
RelationshipStrength
Relationship strength.
Definition: qgis.h:2776
Q_ENUM(GnssConstellation)
MarkerLinePlacement
Defines how/where the symbols should be placed on a line.
Definition: qgis.h:2073
GeometryOperationResult
Success or failure of a geometry operation.
Definition: qgis.h:1381
BrowserItemState
Browser item states.
Definition: qgis.h:559
AttributeEditorContainerType
Attribute editor container types.
Definition: qgis.h:3477
MarkerClipMode
Marker clipping modes.
Definition: qgis.h:2166
AnnotationItemFlag
Flags for annotation items.
Definition: qgis.h:1606
RenderSubcomponentProperty
Rendering subcomponent properties.
Definition: qgis.h:1997
SymbolRenderHint
Flags controlling behavior of symbols during rendering.
Definition: qgis.h:484
AngleUnit
Units of angles.
Definition: qgis.h:3311
CaptureTechnique
Capture technique.
Definition: qgis.h:267
BrowserItemCapability
Browser item capabilities.
Definition: qgis.h:572
AttributeFormSuppression
Available form types for layout of the attribute form editor.
Definition: qgis.h:3507
LayerTreeInsertionMethod
Script language capabilities.
Definition: qgis.h:2893
LineClipMode
Line clipping modes.
Definition: qgis.h:2180
BrowserDirectoryMonitoring
Browser directory item monitoring switches.
Definition: qgis.h:617
SettingsTreeNodeType
Type of tree node.
Definition: qgis.h:385
TilePixelRatio
DpiMode enum.
Definition: qgis.h:2248
DatabaseProviderConnectionCapability2
The Capability enum represents the extended operations supported by the connection.
Definition: qgis.h:3429
VectorDataProviderAttributeEditCapability
Attribute editing capabilities which may be supported by vector data providers.
Definition: qgis.h:321
LabelOffsetType
Behavior modifier for label offset and distance, only applies in some label placement modes.
Definition: qgis.h:816
GradientColorSource
Gradient color sources.
Definition: qgis.h:2095
FileFilterType
Type of file filters.
Definition: qgis.h:929
LabelPlacement
Placement modes which determine how label candidates are generated for a feature.
Definition: qgis.h:770
RasterLayerType
Raster layer types.
Definition: qgis.h:3057
RasterPyramidFormat
Raster pyramid formats.
Definition: qgis.h:3096
VectorExportResult
Vector layer export result codes.
Definition: qgis.h:641
DistanceUnit
Units of distance.
Definition: qgis.h:3225
RasterTemporalCapabilityFlag
Flags for raster layer temporal capabilities.
Definition: qgis.h:1727
SymbolLayerFlag
Flags controlling behavior of symbol layers.
Definition: qgis.h:526
GradientSpread
Gradient spread options, which control how gradients are rendered outside of their start and end poin...
Definition: qgis.h:2139
LabelPolygonPlacementFlag
Polygon placement flags, which control how candidates are generated for a polygon feature.
Definition: qgis.h:875
ScaleMethod
Scale methods.
Definition: qgis.h:355
SldExportOption
SLD export options.
Definition: qgis.h:411
FilePathType
File path types.
Definition: qgis.h:1085
CadConstraintType
Advanced digitizing constraint type.
Definition: qgis.h:2495
AttributeFormPythonInitCodeSource
The Python init code source for attribute forms.
Definition: qgis.h:3522
PointCountMethod
Methods which define the number of points randomly filling a polygon.
Definition: qgis.h:2154
SldExportVendorExtension
SLD export vendor extensions, allow the use of vendor extensions when exporting to SLD.
Definition: qgis.h:426
LayerTreeFilterFlag
Layer tree filter flags.
Definition: qgis.h:2906
AttributeFormLayout
Available form types for layout of the attribute form editor.
Definition: qgis.h:3492
VertexType
Types of vertex.
Definition: qgis.h:2010
DataProviderFlag
Map layer properties.
Definition: qgis.h:1527
GeometryValidationEngine
Available engines for validating geometries.
Definition: qgis.h:1422
TransactionMode
Transaction mode.
Definition: qgis.h:2431
Q_ENUM(ScaleToTileZoomLevelMethod)
ElevationMapCombineMethod
Methods used to select the elevation when two elevation maps are combined.
Definition: qgis.h:3141
RasterDrawingStyle
Raster drawing styles.
Definition: qgis.h:3073
GpsInformationComponent
GPS information component.
Definition: qgis.h:1295
ViewSyncModeFlag
Synchronization of 2D map canvas and 3D view.
Definition: qgis.h:2333
FileOperationFlag
File operation flags.
Definition: qgis.h:1497
ProjectCapability
Flags which control project capabilities.
Definition: qgis.h:2705
Q_ENUM(VectorProfileType)
AttributeActionType
Map layer action flags.
Definition: qgis.h:2991
AreaUnit
Units of area.
Definition: qgis.h:3263
FieldDomainMergePolicy
Merge policy for field domains.
Definition: qgis.h:2405
MessageLevel
Level for messages This will be used both for message log and message bar in application.
Definition: qgis.h:100
SqlKeywordCategory
SQL layer definition capabilities.
Definition: qgis.h:697
GraduatedMethod
Methods for modifying symbols by range in a graduated symbol renderer.
Definition: qgis.h:2223
TextLayoutMode
Text layout modes.
Definition: qgis.h:1916
RasterRendererFlag
Flags which control behavior of raster renderers.
Definition: qgis.h:1007
MeshEditingErrorType
Type of error that can occur during mesh frame editing.
Definition: qgis.h:1068
FieldDomainSplitPolicy
Split policy for field domains.
Definition: qgis.h:2388
ArcGisRestServiceType
Available ArcGIS REST service types.
Definition: qgis.h:2743
AnnotationItemEditOperationResult
Results from an edit operation on an annotation item.
Definition: qgis.h:1645
MapRecenteringMode
Modes for recentering map canvases.
Definition: qgis.h:2346
ActionType
Layer tree filter flags.
Definition: qgis.h:2927
ActionStart
Enum to determine when an operation would begin.
Definition: qgis.h:731
AvoidIntersectionsMode
Flags which control how intersections of pre-existing feature are handled when digitizing new feature...
Definition: qgis.h:2646
MarkerShape
Marker shapes.
Definition: qgis.h:2024
BlendMode
Blending modes defining the available composition modes that can be used when painting.
Definition: qgis.h:3156
Capitalization
String capitalization options.
Definition: qgis.h:2265
TemporalIntervalMatchMethod
Method to use when resolving a temporal range to a data provider layer or band.
Definition: qgis.h:1712
LabelQuadrantPosition
Label quadrant positions.
Definition: qgis.h:830
ScaleToTileZoomLevelMethod
Available methods for converting map scales to tile zoom levels.
Definition: qgis.h:2296
SublayerQueryFlag
Flags which control how data providers will scan for sublayers in a dataset.
Definition: qgis.h:945
TextOrientation
Text orientations.
Definition: qgis.h:1901
PythonMacroMode
Vector layer type flags.
Definition: qgis.h:294
TemporalUnit
Temporal units.
Definition: qgis.h:3332
UnplacedLabelVisibility
Unplaced label visibility.
Definition: qgis.h:743
CrsDefinitionFormat
CRS definition formats.
Definition: qgis.h:2373
SpatialFilterType
Feature request spatial filter types.
Definition: qgis.h:1484
TileAvailability
Vector tile data provider capabilities.
Definition: qgis.h:3600
ProjectFlag
Flags which control the behavior of QgsProjects.
Definition: qgis.h:2513
BrowserItemType
Symbol layer flags.
Definition: qgis.h:540
SettingsType
Types of settings entries.
Definition: qgis.h:366
RasterTemporalMode
Raster layer temporal modes.
Definition: qgis.h:1699
RasterAttributeTableType
The RasterAttributeTableType enum represents the type of RAT.
Definition: qgis.h:1056
LabelingFlag
Various flags that affect drawing and placement of labels.
Definition: qgis.h:1856
GeometryType
The geometry types are used to group Qgis::WkbType in a coarse way.
Definition: qgis.h:228
RelationshipType
Relationship types.
Definition: qgis.h:2762
ScriptLanguageCapability
Script language capabilities.
Definition: qgis.h:2872
JoinStyle
Join styles for buffers.
Definition: qgis.h:1459
PointCloudDrawOrder
Pointcloud rendering order for 2d views.
Definition: qgis.h:2631
TextCharacterVerticalAlignment
Text vertical alignment for characters.
Definition: qgis.h:1984
UserProfileSelectionPolicy
User profile selection policy.
Definition: qgis.h:3443
DpiMode
DpiMode enum.
Definition: qgis.h:2234
BrowserLayerType
Browser item layer types.
Definition: qgis.h:594
AltitudeBinding
Altitude binding.
Definition: qgis.h:2457
MapLayerActionTarget
Map layer action targets.
Definition: qgis.h:2942
ScriptLanguage
Scripting languages.
Definition: qgis.h:2849
LabelMultiLineAlignment
Text alignment for multi-line labels.
Definition: qgis.h:913
VectorDataProviderTemporalMode
Vector data provider temporal handling modes.
Definition: qgis.h:1686
TextRenderFormat
Options for rendering text.
Definition: qgis.h:1842
DataType
Raster data types.
Definition: qgis.h:242
Q_ENUM(ProfileSurfaceSymbology)
SystemOfMeasurement
Systems of unit measurement.
Definition: qgis.h:3192
RasterAttributeTableFieldUsage
Flags which control behavior of raster renderers.
Definition: qgis.h:1027
VerticalAxisInversion
Vertical axis inversion options for 3D views.
Definition: qgis.h:2566
RelationshipCapability
Relationship capabilities.
Definition: qgis.h:2802
RasterBuildPyramidOption
Raster pyramid building options.
Definition: qgis.h:3111
NavigationMode
The navigation mode used by 3D cameras.
Definition: qgis.h:2554
LayerType
Types of layers that can be added to a map.
Definition: qgis.h:115
Q_DECLARE_FLAGS(RenderContextFlags, RenderContextFlag) SIP_MONKEYPATCH_FLAGS_UNNEST(QgsRenderContext
Render context flags.
PlotToolFlag
Flags that control the way the QgsPlotTools operate.
Definition: qgis.h:2529
RenderUnit
Rendering size units.
Definition: qgis.h:3356
CoordinateOrder
Order of coordinates.
Definition: qgis.h:1593
SelectionFlag
Flags which control feature selection behavior.
Definition: qgis.h:1150
EndCapStyle
End cap styles for buffers.
Definition: qgis.h:1446
BabelCommandFlag
Babel GPS format capabilities.
Definition: qgis.h:1352
FieldDomainType
Types of field domain.
Definition: qgis.h:2418
RenderContextFlag
Flags which affect rendering operations.
Definition: qgis.h:1808
RasterPipeInterfaceRole
Sublayer flags.
Definition: qgis.h:976
SymbolPreviewFlag
Symbol flags.
Definition: qgis.h:512
AnnotationItemGuiFlag
Annotation item flags.
Definition: qgis.h:1620
MapBoxGlStyleSourceType
Flags which control project capabilities.
Definition: qgis.h:2724
LayoutUnitType
Types of layout units.
Definition: qgis.h:3396
DashPatternLineEndingRule
Dash pattern line ending rules.
Definition: qgis.h:2193
FieldMetadataProperty
Standard field metadata values.
Definition: qgis.h:1111
VertexMarkerType
Editing vertex markers, used for showing vertices during a edit operation.
Definition: qgis.h:1186
HistoryProviderBackend
History provider backends.
Definition: qgis.h:2359
SublayerPromptMode
Specifies how to handle layer sources with multiple sublayers.
Definition: qgis.h:1097
TextVerticalAlignment
Text vertical alignment.
Definition: qgis.h:1968
RelationshipCardinality
Relationship cardinality.
Definition: qgis.h:2788
GradientType
Gradient types.
Definition: qgis.h:2109
VectorProfileType
Types of elevation profiles to generate for vector sources.
Definition: qgis.h:2592
GpsFeatureType
Babel command flags.
Definition: qgis.h:1366
VectorLayerTypeFlag
Vector layer type flags.
Definition: qgis.h:281
MakeValidMethod
Algorithms to use when repairing invalid geometries.
Definition: qgis.h:1472
VectorTemporalLimitMode
Mode for the handling of the limits of the filtering timeframe for vector features.
Definition: qgis.h:1674
SqlLayerDefinitionCapability
Capabilities supported by a QgsVectorFileWriter object.
Definition: qgis.h:680
VectorEditResult
Flags which control feature selection behavior.
Definition: qgis.h:1171
Q_DECLARE_FLAGS(GeometryValidityFlags, GeometryValidityFlag) SIP_MONKEYPATCH_FLAGS_UNNEST(QgsGeometry
Geometry validity flags.
VolumeUnit
Units of volume.
Definition: qgis.h:3288
AttributeEditorType
Attribute editor types.
Definition: qgis.h:3458
ProjectFileFormat
Flags which control project read behavior.
Definition: qgis.h:2661
SnappingMode
SnappingMode defines on which layer the snapping is performed.
Definition: qgis.h:452
SymbolType
Attribute editing capabilities which may be supported by vector data providers.
Definition: qgis.h:341
RasterColorInterpretation
Raster color interpretation.
Definition: qgis.h:3027
ProfileSurfaceSymbology
Surface symbology type for elevation profile plots.
Definition: qgis.h:2579
LabelPlacementEngineVersion
Labeling placement engine version.
Definition: qgis.h:1887
RendererUsage
Usage of the renderer.
Definition: qgis.h:2320
SettingsTreeNodeOption
Options for named list nodes.
Definition: qgis.h:397
BabelFormatCapability
GPS information component.
Definition: qgis.h:1333
PostgresRelKind
Postgres database relkind options.
Definition: qgis.h:3408
GpsConnectionType
GPS connection types.
Definition: qgis.h:1213
BetweenLineConstraint
Between line constraints which can be enabled.
Definition: qgis.h:2469
MetadataDateType
Date types for metadata.
Definition: qgis.h:3009
RasterIdentifyFormat
Raster identify formats.
Definition: qgis.h:3126
TextHorizontalAlignment
Text horizontal alignment.
Definition: qgis.h:1949
SymbolFlag
Flags controlling behavior of symbols.
Definition: qgis.h:498
LineExtensionSide
Designates whether the line extension constraint is currently soft locked with the previous or next v...
Definition: qgis.h:2482
HttpMethod
Different methods of HTTP requests.
Definition: qgis.h:629
WkbType
The WKB type describes the number of dimensions a geometry has.
Definition: qgis.h:155
SymbolCoordinateReference
Symbol coordinate reference modes.
Definition: qgis.h:2124
TextRendererFlag
Flags which control the behavior of rendering text.
Definition: qgis.h:2283
SelectGeometryRelationship
Geometry relationship test to apply for selecting features.
Definition: qgis.h:1138
CrsAxisDirection
Data provider flags.
Definition: qgis.h:1543
SettingsOrigin
The setting origin describes where a setting is stored.
Definition: qgis.h:2836
LabelOverlapHandling
Label overlap handling.
Definition: qgis.h:755
FeatureSymbologyExport
Options for exporting features considering their symbology.
Definition: qgis.h:3550
CoordinateTransformationFlag
Flags which adjust the coordinate transformations behave.
Definition: qgis.h:1758
TextComponent
Text components.
Definition: qgis.h:1933
TransformDirection
Flags for raster layer temporal capabilities.
Definition: qgis.h:1746
LightSourceType
Light source types for 3D scenes.
Definition: qgis.h:2542
LabelPredefinedPointPosition
Positions for labels when using the Qgis::LabelPlacement::OrderedPositionsAroundPoint placement mode.
Definition: qgis.h:791
UpsideDownLabelHandling
Polygon placement flags, which control how candidates are generated for a polygon feature.
Definition: qgis.h:898
DeviceConnectionStatus
GPS connection status.
Definition: qgis.h:1227
Q_DECLARE_FLAGS(MapSettingsFlags, MapSettingsFlag) SIP_MONKEYPATCH_FLAGS_UNNEST(QgsMapSettings
Map settings flags.
MapSettingsFlag
Coordinate transformation flags.
Definition: qgis.h:1778
SelectBehavior
Specifies how a selection should be applied.
Definition: qgis.h:1124
Utility class that encapsulates an action based on vector attributes.
Definition: qgsaction.h:37
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:36
Base class for all items in the model.
Definition: qgsdataitem.h:46
Contains configuration settings for an editor form.
A geometry is the spatial representation of a feature.
Definition: qgsgeometry.h:164
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
Base class for all map layer types.
Definition: qgsmaplayer.h:73
The QgsMapSettings class contains configuration for rendering of the map.
Registry for temporary fetched files.
Misc painting enums and functions.
Definition: qgspainting.h:30
Contains settings for how a map layer will be labeled.
Abstract base class for 2d point cloud renderers.
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
Definition: qgsproject.h:107
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.
Implementation of data provider temporal properties for QgsRasterDataProviders.
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:3788
Object * operator->()
Returns pointer to blocked QObject.
Definition: qgis.h:3806
~QgsSignalBlocker()
Definition: qgis.h:3800
QgsSignalBlocker(Object *object)
Constructor for QgsSignalBlocker.
Definition: qgis.h:3795
Abstract base class for simple marker symbol layers.
This is a container for configuration of the snapping of the project.
Utility functions for working with strings.
Abstract base class for all rendered symbols.
Definition: qgssymbol.h:93
Base class for templated line symbols, e.g.
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:40
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:43
FeatureCountState
Enumeration of feature count states.
Definition: qgis.h:309
@ 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:37
CONSTLATIN1STRING geoNone()
Constant that holds the string representation for "No ellips/No CRS".
Definition: qgis.h:4405
const double DEFAULT_LINE_WIDTH
Definition: qgis.h:4443
CORE_EXPORT uint qHash(const QVariant &variant)
Hash for QVariant.
Definition: qgis.cpp:217
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:4297
CORE_EXPORT QString qgsVsiPrefix(const QString &path)
Definition: qgis.cpp:192
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:266
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:4126
QString qgsDoubleToString(double a, int precision=17)
Returns a string representation of a double.
Definition: qgis.h:3842
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:3990
QString qgsEnumValueToKey(const T &value, bool *returnOk=nullptr)
Returns the value for the given key of an enum.
Definition: qgis.h:4107
QString qgsFlagValueToKeys(const T &value, bool *returnOk=nullptr)
Returns the value for the given keys of a flag.
Definition: qgis.h:4165
const long GEO_EPSG_CRS_ID
Magic number for a geographic coord sys in EpsgCrsId ID format.
Definition: qgis.h:4429
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:3973
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:4187
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:187
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:4458
const QMap< T, QString > qgsEnumMap()
Returns a map of all enum entries.
Definition: qgis.h:4090
bool qgsFloatNear(float a, float b, float epsilon=4 *FLT_EPSILON)
Compare two floats (but allow some difference)
Definition: qgis.h:3920
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:4007
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:71
const QList< T > qgsEnumList()
Returns a list all enum entries.
Definition: qgis.h:4073
double qgsRound(double number, int places)
Returns a double number, rounded (as close as possible) to the specified number of places.
Definition: qgis.h:3957
bool qgsDoubleNear(double a, double b, double epsilon=4 *std::numeric_limits< double >::epsilon())
Compare two doubles (but allow some difference)
Definition: qgis.h:3903
CONSTLATIN1STRING geoProj4()
PROJ4 string that represents a geographic coord sys.
Definition: qgis.h:4393
bool qgsNanCompatibleEquals(double a, double b)
Compare two doubles, treating nan values as equal.
Definition: qgis.h:3887
QgsSignalBlocker< Object > whileBlocking(Object *object)
Temporarily blocks signals from a QObject while calling a single method from the object.
Definition: qgis.h:3829
void CORE_EXPORT * qgsMalloc(size_t size)
Allocates size bytes and returns a pointer to the allocated memory.
Definition: qgis.cpp:92
const double DEFAULT_SEGMENT_EPSILON
Default snapping tolerance for segments.
Definition: qgis.h:4446
QMap< QString, QString > QgsStringMap
Definition: qgis.h:4448
#define CONSTLATIN1STRING
Definition: qgis.h:4346
CONSTLATIN1STRING geoWkt()
Wkt string that represents a geographic coord sys.
Definition: qgis.h:4385
bool qgsDoubleNearSig(double a, double b, int significantDigits=10)
Compare two doubles using specified number of significant digits.
Definition: qgis.h:3932
const int USER_CRS_START_ID
Magick number that determines whether a projection crsid is a system (srs.db) or user (~/....
Definition: qgis.h:4435
void CORE_EXPORT qgsFree(void *ptr)
Frees the memory space pointed to by ptr.
Definition: qgis.cpp:114
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:85
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:78
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:119
const long GEOSRID
Magic number for a geographic coord sys in POSTGIS SRID.
Definition: qgis.h:4423
#define QHASH_FOR_CLASS_ENUM(T)
Definition: qgis.h:44
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:4311
CONSTLATIN1STRING geoEpsgCrsAuthId()
Geographic coord sys from EPSG authority.
Definition: qgis.h:4399
const long GEOCRS_ID
Magic number for a geographic coord sys in QGIS srs.db tbl_srs.srs_id.
Definition: qgis.h:4426
const double DEFAULT_POINT_SIZE
Magic number that determines the default point size for point symbols.
Definition: qgis.h:4442
#define SIP_SKIP
Definition: qgis_sip.h:126
#define SIP_MONKEYPATCH_SCOPEENUM_UNNEST(OUTSIDE_CLASS, FORMERNAME)
Definition: qgis_sip.h:266
#define SIP_MONKEYPATCH_FLAGS_UNNEST(OUTSIDE_CLASS, FORMERNAME)
Definition: qgis_sip.h:267
#define SIP_MONKEYPATCH_SCOPEENUM
Definition: qgis_sip.h:265
#define SIP_MONKEYPATCH_COMPAT_NAME(FORMERNAME)
Definition: qgis_sip.h:268
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsField::ConfigurationFlags) CORE_EXPORT QDataStream &operator<<(QDataStream &out
Writes the field to stream out. QGIS version compatibility is not guaranteed.
int precision
Utility class for identifying a unique vertex within a geometry.
Definition: qgsvertexid.h:31