QGIS API Documentation 3.41.0-Master (cea29feecf2)
Loading...
Searching...
No Matches
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#include "qgis_sip.h"
25
32class 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
97 ConstraintStrength constraintStrength( Constraint constraint ) const;
98
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
151 QString domainName() const { return mDomainName; }
152
159 void setDomainName( const QString &domain ) { mDomainName = domain; }
160
161 // TODO c++20 - replace with = default
162 bool operator==( const QgsFieldConstraints &other ) const;
163
164 private:
165
167 Constraints mConstraints;
168
170 QHash< Constraint, ConstraintOrigin > mConstraintOrigins;
171
173 QHash< Constraint, ConstraintStrength > mConstraintStrengths;
174
176 QString mExpressionConstraint;
177
179 QString mExpressionConstraintDescription;
180
182 QString mDomainName;
183};
184
186
187#endif //QGSFIELDCONSTRAINTS_H
Stores information about constraints which may be present on a field.
ConstraintStrength
Strength of constraints.
@ ConstraintStrengthSoft
User is warned if constraint is violated but feature can still be accepted.
@ ConstraintStrengthHard
Constraint must be honored before feature can be accepted.
ConstraintOrigin
Origin of constraints.
@ ConstraintOriginProvider
Constraint was set at data provider.
@ ConstraintOriginLayer
Constraint was set by layer.
void setDomainName(const QString &domain)
Sets the associated field domain name, for providers which support field domains.
QString domainName() const
Returns the associated field domain name, for providers which support field domains.
Constraint
Constraints which may be present on a field.
Constraints constraints() const
Returns any constraints which are present for the field.
void removeConstraint(Constraint constraint)
Removes a constraint from the field.
QString constraintDescription() const
Returns the descriptive name for the constraint expression.
QgsFieldConstraints()
Constructor for QgsFieldConstraints.
QFlags< Constraint > Constraints
#define SIP_ENUM_BASETYPE(type)
Definition qgis_sip.h:278
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsTextRendererUtils::CurvedTextFlags)