QGIS API Documentation  3.26.3-Buenos Aires (65e4edfdad)
qgsmaplayerdependency.h
Go to the documentation of this file.
1 
2 /***************************************************************************
3  qgsmaplayerdependency.h - description
4  -------------------
5  begin : September 2016
6  copyright : (C) 2016 by Hugo Mercier
7  email : hugo dot mercier at oslandia dot com
8  ***************************************************************************/
9 
10 /***************************************************************************
11  * *
12  * This program is free software; you can redistribute it and/or modify *
13  * it under the terms of the GNU General Public License as published by *
14  * the Free Software Foundation; either version 2 of the License, or *
15  * (at your option) any later version. *
16  * *
17  ***************************************************************************/
18 
19 #ifndef QGSMAPLAYERDEPENDENCY_H
20 #define QGSMAPLAYERDEPENDENCY_H
21 
22 #include "qgis_core.h"
23 #include <QString>
24 
37 class CORE_EXPORT QgsMapLayerDependency
38 {
39  public:
41  enum Type
42  {
43  PresenceDependency = 1, //< The layer must be already present (in the registry) for this dependency to be resolved
44  DataDependency = 2 //< The layer may be invalidated by data changes on another layer
45  };
46 
48  enum Origin
49  {
50  FromProvider = 0, //< Dependency given by the provider, the user cannot change it
51  FromUser = 1 //< Dependency given by the user
52  };
53 
55  QgsMapLayerDependency( const QString &layerId, Type type = DataDependency, Origin origin = FromUser )
56  : mType( type )
57  , mOrigin( origin )
58  , mLayerId( layerId )
59  {}
60 
62  Type type() const { return mType; }
63 
65  Origin origin() const { return mOrigin; }
66 
68  QString layerId() const { return mLayerId; }
69 
70  // TODO c++20 - replace with = default
71 
73  bool operator==( const QgsMapLayerDependency &other ) const
74  {
75  return layerId() == other.layerId() && origin() == other.origin() && type() == other.type();
76  }
77 
78 #ifdef SIP_RUN
79  long __hash__() const;
81  % MethodCode
82  sipRes = qHash( *sipCpp );
83  % End
84 #endif
85  private:
86  Type mType;
87  Origin mOrigin;
88  QString mLayerId;
89 };
90 
91 #ifndef SIP_RUN
92 
96 inline uint qHash( const QgsMapLayerDependency &dep )
97 {
98  return qHash( dep.layerId() ) + dep.origin() + dep.type();
99 }
100 #endif
101 
102 #endif
QgsMapLayerDependency::Origin
Origin
Origin of the dependency.
Definition: qgsmaplayerdependency.h:61
operator==
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
Definition: qgsfeatureiterator.h:425
qHash
uint qHash(const QgsMapLayerDependency &dep)
global qHash function for QgsMapLayerDependency, so that it can be used in a QSet
Definition: qgsmaplayerdependency.h:96
QgsMapLayerDependency::Type
Type
Type of dependency.
Definition: qgsmaplayerdependency.h:54
QgsMapLayerDependency::type
Type type() const
Returns the dependency type.
Definition: qgsmaplayerdependency.h:75
QgsMapLayerDependency::layerId
QString layerId() const
Returns the ID of the layer this dependency depends on.
Definition: qgsmaplayerdependency.h:81
QgsMapLayerDependency
This class models dependencies with or between map layers.
Definition: qgsmaplayerdependency.h:37
QgsMapLayerDependency::origin
Origin origin() const
Returns the dependency origin.
Definition: qgsmaplayerdependency.h:78