QGIS API Documentation  3.10.0-A Coruña (6c816b4204)
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 
103  void setConstraintStrength( Constraint constraint, ConstraintStrength strength );
104 
110  void setConstraint( Constraint constraint, ConstraintOrigin origin = ConstraintOriginLayer );
111 
117  void removeConstraint( Constraint constraint ) { mConstraints &= ~constraint; }
118 
125  QString constraintExpression() const;
126 
133  QString constraintDescription() const { return mExpressionConstraintDescription; }
134 
142  void setConstraintExpression( const QString &expression, const QString &description = QString() );
143 
144  bool operator==( const QgsFieldConstraints &other ) const;
145 
146  private:
147 
149  Constraints mConstraints = nullptr;
150 
152  QHash< Constraint, ConstraintOrigin > mConstraintOrigins;
153 
155  QHash< Constraint, ConstraintStrength > mConstraintStrengths;
156 
158  QString mExpressionConstraint;
159 
161  QString mExpressionConstraintDescription;
162 };
163 
164 Q_DECLARE_OPERATORS_FOR_FLAGS( QgsFieldConstraints::Constraints )
165 
166 #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.