QGIS API Documentation  3.21.0-Master (5b68dc587e)
qgsfieldconstraints.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgsfieldconstraints.cpp
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 #include "qgsfieldconstraints.h"
16 
18 
20 {
21  if ( !( mConstraints & constraint ) )
23 
24  return mConstraintOrigins.value( constraint, ConstraintOriginNotSet );
25 }
26 
28 {
29  if ( !( mConstraints & constraint ) )
31 
32  // defaults to hard strength unless explicitly set
33  return mConstraintStrengths.value( constraint, ConstraintStrengthHard );
34 }
35 
37 {
38  if ( strength == ConstraintStrengthNotSet )
39  {
40  mConstraintStrengths.remove( constraint );
41  }
42  else
43  {
44  mConstraintStrengths.insert( constraint, strength );
45  }
46 }
47 
49 {
50  if ( origin == ConstraintOriginNotSet )
51  {
52  mConstraints &= ~constraint;
53  mConstraintOrigins.remove( constraint );
54  mConstraintStrengths.remove( constraint );
55  }
56  else
57  {
58  mConstraints |= constraint;
59  mConstraintOrigins.insert( constraint, origin );
60  if ( !mConstraintStrengths.contains( constraint ) )
61  {
62  mConstraintStrengths.insert( constraint, ConstraintStrengthHard );
63  }
64  }
65 }
66 
68 {
69  return ( mConstraints & QgsFieldConstraints::ConstraintExpression ) ? mExpressionConstraint : QString();
70 }
71 
72 void QgsFieldConstraints::setConstraintExpression( const QString &expression, const QString &description )
73 {
74  if ( expression.isEmpty() )
76  else
77  {
80  }
81 
82  mExpressionConstraint = expression;
83  mExpressionConstraintDescription = description;
84 }
85 
87 {
88  return mConstraints == other.mConstraints && mConstraintOrigins == other.mConstraintOrigins
89  && mExpressionConstraint == other.mExpressionConstraint && mExpressionConstraintDescription == other.mExpressionConstraintDescription
90  && mConstraintStrengths == other.mConstraintStrengths;
91 }
Stores information about constraints which may be present on a field.
ConstraintStrength
Strength of constraints.
@ ConstraintStrengthNotSet
Constraint is not set.
@ ConstraintStrengthHard
Constraint must be honored before feature can be accepted.
void setConstraintStrength(Constraint constraint, ConstraintStrength strength)
Sets the strength of a constraint.
void setConstraintExpression(const QString &expression, const QString &description=QString())
Set the constraint expression for the field.
ConstraintOrigin
Origin of constraints.
@ ConstraintOriginNotSet
Constraint is not set.
@ ConstraintOriginLayer
Constraint was set by layer.
ConstraintStrength constraintStrength(Constraint constraint) const
Returns the strength of a field constraint, or ConstraintStrengthNotSet if the constraint is not pres...
ConstraintOrigin constraintOrigin(Constraint constraint) const
Returns the origin of a field constraint, or ConstraintOriginNotSet if the constraint is not present ...
QString constraintExpression() const
Returns the constraint expression for the field, if set.
bool operator==(const QgsFieldConstraints &other) const
Constraint
Constraints which may be present on a field.
@ ConstraintExpression
Field has an expression constraint set. See constraintExpression().
void setConstraint(Constraint constraint, ConstraintOrigin origin=ConstraintOriginLayer)
Sets a constraint on the field.
QgsFieldConstraints()
Constructor for QgsFieldConstraints.