QGIS API Documentation
3.26.3-Buenos Aires (65e4edfdad)
|
Go to the documentation of this file.
28 , mFieldIdx( fieldIdx )
29 , mValidConstraint( true )
30 , mIsBlockingCommit( false )
42 if ( vl && mFieldIdx < vl->fields().count() )
57 return qobject_cast<QgsEditorWidgetWrapper *>(
widget->property(
"EWV2Wrapper" ).value<
QgsWidgetWrapper *>() );
65 wdg->setEnabled( enabled );
72 QVariantList newAdditionalFieldValues;
74 for (
const QString &fieldName : constAdditionalFields )
75 newAdditionalFieldValues << feature.
attribute( fieldName );
81 isRunningDeprecatedSetValue =
true;
82 updateValues(
value, QVariantList() );
83 isRunningDeprecatedSetValue =
false;
88 updateValues(
value, additionalValues );
101 Q_UNUSED( attribute )
107 if ( !mConstraintResultVisible )
109 widget()->setStyleSheet( QString() );
113 switch ( mConstraintResult )
116 widget()->setStyleSheet( QString() );
120 widget()->setStyleSheet( QStringLiteral(
"background-color: #FFE0B2;" ) );
124 widget()->setStyleSheet( QStringLiteral(
"background-color: #FFECB3;" ) );
132 return mFormFeature.
setAttribute( attributeName, attributeValue );
135 void QgsEditorWidgetWrapper::updateValues(
const QVariant &value,
const QVariantList &additionalValues )
138 Q_UNUSED( additionalValues );
141 if ( !isRunningDeprecatedSetValue )
148 return mConstraintResult;
153 return mConstraintResultVisible;
176 QStringList softErrors;
177 QStringList expressions;
178 QStringList descriptions;
179 bool toEmit(
false );
180 bool hardConstraintsOk(
true );
181 bool softConstraintsOk(
true );
188 if ( ! expression.isEmpty() )
190 expressions << expression;
197 descriptions << tr(
"Not NULL" );
198 if ( !expression.isEmpty() )
200 expressions <<
field.
name() + QStringLiteral(
" IS NOT NULL" );
204 expressions << QStringLiteral(
"IS NOT NULL" );
211 descriptions << tr(
"Unique" );
212 if ( !expression.isEmpty() )
214 expressions <<
field.
name() + QStringLiteral(
" IS UNIQUE" );
218 expressions << QStringLiteral(
"IS UNIQUE" );
226 errors << softErrors;
230 if ( ! expression.isEmpty() )
232 hardConstraintsOk =
true;
233 softConstraintsOk =
false;
235 errors << QStringLiteral(
"Invalid feature" );
241 mValidConstraint = hardConstraintsOk && softConstraintsOk;
242 mIsBlockingCommit = !hardConstraintsOk;
244 mConstraintFailureReason = errors.join( QLatin1String(
", " ) );
248 const QString errStr = errors.isEmpty() ? tr(
"Constraint checks passed" ) : mConstraintFailureReason;
250 const QString description = descriptions.join( QLatin1String(
", " ) );
251 QString expressionDesc;
252 if ( expressions.size() > 1 )
253 expressionDesc =
"( " + expressions.join( QLatin1String(
" ) AND ( " ) ) +
" )";
254 else if ( !expressions.isEmpty() )
255 expressionDesc = expressions.at( 0 );
260 mConstraintResult = result;
268 return mValidConstraint;
273 return mIsBlockingCommit;
279 return mConstraintFailureReason;
284 if ( !parent )
return false;
285 if ( qobject_cast<const QTableView *>( parent ) )
return true;
286 return isInTable( parent->parentWidget() );
291 if ( QWidget *w =
widget() )
292 w->setToolTip( hintText );
QgsVectorDataProvider * dataProvider() FINAL
Returns the layer's data provider, it may be nullptr.
@ ConstraintStrengthSoft
User is warned if constraint is violated but feature can still be accepted.
QString constraintExpression() const
Returns the constraint expression for the field, if set.
@ ConstraintNotNull
Field may not be null.
QgsFields fields() const FINAL
Returns the list of fields of this layer.
#define Q_NOWARN_DEPRECATED_POP
bool isValid() const
Returns the validity of this feature.
ConstraintOrigin
Origin of constraints.
@ ConstraintUnique
Field must have a unique value.
QVariant attribute(const QString &name) const
Lookup attribute value by attribute name.
@ ConstraintStrengthHard
Constraint must be honored before feature can be accepted.
QString constraintDescription() const
Returns the descriptive name for the constraint expression.
bool setAttribute(int field, const QVariant &attr)
Sets an attribute's value by field index.
Represents a vector layer which manages a vector based data sets.
static bool validateAttribute(const QgsVectorLayer *layer, const QgsFeature &feature, int attributeIndex, QStringList &errors, QgsFieldConstraints::ConstraintStrength strength=QgsFieldConstraints::ConstraintStrengthNotSet, QgsFieldConstraints::ConstraintOrigin origin=QgsFieldConstraints::ConstraintOriginNotSet)
Tests a feature attribute value to check whether it passes all constraints which are present on the c...
QgsFieldConstraints constraints
virtual QString defaultValueClause(int fieldIndex) const
Returns any default value clauses which are present at the provider for a specified field index.
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
QgsField at(int i) const
Returns the field at particular index (must be in range 0..N-1).
#define Q_NOWARN_DEPRECATED_PUSH
Encapsulate a field in an attribute table or data source.