QGIS API Documentation  3.6.0-Noosa (5873452)
qgsfieldconstraints.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsfieldconstraints.h
3  ---------------------
4  Date : November 2016
5  Copyright : (C) 2016 by Nyall Dawson
6  email : nyall dot dawson 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 QGSFIELDCONSTRAINTS_H
17 #define QGSFIELDCONSTRAINTS_H
18 
19 #include <QString>
20 #include <QHash>
21 #include <QObject>
22 
23 #include "qgis_core.h"
24 
32 class CORE_EXPORT QgsFieldConstraints
33 {
34  Q_GADGET
35 
36  Q_PROPERTY( Constraints constraints READ constraints )
37 
38  public:
39 
44  {
45  ConstraintNotNull = 1,
46  ConstraintUnique = 1 << 1,
47  ConstraintExpression = 1 << 2,
48  };
49  Q_DECLARE_FLAGS( Constraints, Constraint )
50 
51 
55  {
56  ConstraintOriginNotSet = 0,
59  };
60 
65  {
66  ConstraintStrengthNotSet = 0,
69  };
70 
75 
81  Constraints constraints() const { return mConstraints; }
82 
88  ConstraintOrigin constraintOrigin( Constraint constraint ) const;
89 
96  ConstraintStrength constraintStrength( Constraint constraint ) const;
97 
104  void setConstraintStrength( Constraint constraint, ConstraintStrength strength );
105 
111  void setConstraint( Constraint constraint, ConstraintOrigin origin = ConstraintOriginLayer );
112 
118  void removeConstraint( Constraint constraint ) { mConstraints &= ~constraint; }
119 
126  QString constraintExpression() const;
127 
134  QString constraintDescription() const { return mExpressionConstraintDescription; }
135 
143  void setConstraintExpression( const QString &expression, const QString &description = QString() );
144 
145  bool operator==( const QgsFieldConstraints &other ) const;
146 
147  private:
148 
150  Constraints mConstraints = nullptr;
151 
153  QHash< Constraint, ConstraintOrigin > mConstraintOrigins;
154 
156  QHash< Constraint, ConstraintStrength > mConstraintStrengths;
157 
159  QString mExpressionConstraint;
160 
162  QString mExpressionConstraintDescription;
163 };
164 
165 Q_DECLARE_OPERATORS_FOR_FLAGS( QgsFieldConstraints::Constraints )
166 
167 #endif //QGSFIELDCONSTRAINTS_H
Constraint
Constraints which may be present on a field.
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
ConstraintOrigin
Origin of constraints.
Stores information about constraints which may be present on a field.
Constraint was set at data provider.
QString constraintDescription() const
Returns the descriptive name for the constraint expression.
User is warned if constraint is violated but feature can still be accepted.
ConstraintStrength
Strength of constraints.
Constraints constraints() const
Returns any constraints which are present for the field.
Constraint must be honored before feature can be accepted.
void removeConstraint(Constraint constraint)
Removes a constraint from the field.