QGIS API Documentation  3.6.0-Noosa (5873452)
qgsquickfeaturelayerpair.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsquickfeaturelayerpair.h
3  ---------------------------
4  Date : Nov 2017
5  Copyright : (C) 2017 by Peter Petrik
6  Email : zilolv at gmail dot com
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
16 #ifndef QGSQUICKFEATURELAYERPAIR_H
17 #define QGSQUICKFEATURELAYERPAIR_H
18 
19 #include <QObject>
20 
21 #include "qgsfeature.h"
22 
23 #include "qgis_quick.h"
24 
25 class QgsVectorLayer;
26 
40 class QUICK_EXPORT QgsQuickFeatureLayerPair
41 {
42  Q_GADGET
43 
49  Q_PROPERTY( QgsVectorLayer *layer READ layer )
50 
51 
56  Q_PROPERTY( QgsFeature feature READ feature )
57 
66  Q_PROPERTY( bool valid READ isValid )
67 
68  public:
71 
77  QgsQuickFeatureLayerPair( const QgsFeature &feature, QgsVectorLayer *layer );
78 
80  QgsVectorLayer *layer() const;
81 
83  QgsFeature feature() const;
84 
86  QgsFeature &featureRef();
87 
89  bool isValid() const;
90 
91  bool operator==( const QgsQuickFeatureLayerPair &other ) const;
92  bool operator!=( const QgsQuickFeatureLayerPair &other ) const;
93 
94  private:
95  bool hasValidGeometry() const;
96 
97  QgsVectorLayer *mLayer = nullptr; // not owned
98  QgsFeature mFeature;
99 };
100 
101 typedef QList<QgsQuickFeatureLayerPair> QgsQuickFeatureLayerPairs;
102 
103 Q_DECLARE_METATYPE( QgsQuickFeatureLayerPair )
104 
105 #endif // QGSQUICKFEATURELAYERPAIR_H
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
Definition: qgsfeature.h:55
Q_DECLARE_METATYPE(QModelIndex)
QList< QgsQuickFeatureLayerPair > QgsQuickFeatureLayerPairs
Pair of QgsFeature and QgsVectorLayer.
Represents a vector layer which manages a vector based data sets.