QGIS API Documentation 3.41.0-Master (3291e9ff48b)
|
Manages an editor widget Widget and wrapper share the same parent. More...
#include <qgseditorwidgetwrapper.h>
Public Types | |
enum | ConstraintResult { ConstraintResultPass = 0 , ConstraintResultFailHard , ConstraintResultFailSoft } |
Result of constraint checks. More... | |
Public Types inherited from QgsWidgetWrapper | |
enum class | Property : int { RootPath = 0 , DocumentViewerContent , StorageUrl } |
Data defined properties for different editor widgets. More... | |
Public Slots | |
void | emitValueChanged () |
Will call the value() method to determine the emitted value. | |
virtual void | parentFormValueChanged (const QString &attribute, const QVariant &value) |
Is called in embedded form widgets when an attribute value in the parent form has changed. | |
void | setFeature (const QgsFeature &feature) override |
Will be called when the feature changes. | |
virtual void | setValue (const QVariant &value) |
Is called when the value of the widget needs to be changed. | |
void | setValues (const QVariant &value, const QVariantList &additionalValues) |
Is called when the value of the widget or additional field values needs to be changed. | |
Public Slots inherited from QgsWidgetWrapper | |
virtual void | setFeature (const QgsFeature &feature)=0 |
Is called when the value of the widget needs to be changed. | |
Signals | |
void | constraintResultVisibleChanged (bool visible) |
Emit this signal when the constraint result visibility changed. | |
void | constraintStatusChanged (const QString &constraint, const QString &desc, const QString &err, QgsEditorWidgetWrapper::ConstraintResult status) |
Emit this signal when the constraint status changed. | |
Q_DECL_DEPRECATED void | valueChanged (const QVariant &value) |
Emit this signal, whenever the value changed. | |
void | valuesChanged (const QVariant &value, const QVariantList &additionalFieldValues=QVariantList()) |
Emit this signal, whenever the value changed. | |
Signals inherited from QgsWidgetWrapper | |
void | contextChanged () |
Signal when QgsAttributeEditorContext mContext changed. | |
Public Member Functions | |
QgsEditorWidgetWrapper (QgsVectorLayer *vl, int fieldIdx, QWidget *editor=nullptr, QWidget *parent=nullptr) | |
Create a new widget wrapper. | |
virtual QStringList | additionalFields () const |
Returns the list of additional fields which the editor handles. | |
virtual QVariantList | additionalFieldValues () const |
Will be used to access the widget's values for potential additional fields handled by the widget. | |
QString | constraintFailureReason () const |
Returns the reason why a constraint check has failed (or an empty string if constraint check was successful). | |
ConstraintResult | constraintResult () const |
Returns the constraint result, which is the current result of the constraint on the widget influencing its visualization. | |
bool | constraintResultVisible () const |
Returns whether the constraint result is visible. | |
QVariant | defaultValue () const |
Access the default value of the field. | |
QgsField | field () const |
Access the field. | |
int | fieldIdx () const |
Access the field index. | |
bool | isBlockingCommit () const |
Returns true if the widget is preventing the feature from being committed. | |
bool | isValidConstraint () const |
Gets the current constraint status. | |
void | setConstraintResultVisible (bool constraintResultVisible) |
Sets whether the constraint result is visible. | |
void | setEnabled (bool enabled) override |
Is used to enable or disable the edit functionality of the managed widget. | |
virtual void | setHint (const QString &hintText) |
Add a hint text on the widget. | |
virtual void | showIndeterminateState () |
Sets the widget to display in an indeterminate "mixed value" state. | |
void | updateConstraint (const QgsFeature &featureContext, QgsFieldConstraints::ConstraintOrigin constraintOrigin=QgsFieldConstraints::ConstraintOriginNotSet) |
Update constraint. | |
void | updateConstraint (const QgsVectorLayer *layer, int index, const QgsFeature &feature, QgsFieldConstraints::ConstraintOrigin constraintOrigin=QgsFieldConstraints::ConstraintOriginNotSet) |
Update constraint on a feature coming from a specific layer. | |
void | updateConstraint (QgsEditorWidgetWrapper::ConstraintResult constraintResult, const QString &constraintFailureReason) |
Update constraint manually by providing the constraint result value and failure reason(s). | |
virtual QVariant | value () const =0 |
Will be used to access the widget's value. | |
Public Member Functions inherited from QgsWidgetWrapper | |
QgsWidgetWrapper (QgsVectorLayer *vl, QWidget *editor=nullptr, QWidget *parent=nullptr) | |
Create a new widget wrapper. | |
QVariantMap | config () const |
Returns the whole config. | |
QVariant | config (const QString &key, const QVariant &defaultVal=QVariant()) const |
Use this inside your overridden classes to access the configuration. | |
const QgsAttributeEditorContext & | context () const |
Returns information about the context in which this widget is shown. | |
QgsPropertyCollection & | dataDefinedProperties () |
Returns a reference to the editor widget's property collection, used for data defined overrides. | |
const QgsPropertyCollection & | dataDefinedProperties () const |
Returns a reference to the editor widget's property collection, used for data defined overrides. | |
QgsVectorLayer * | layer () const |
Returns the vector layer associated with the widget. | |
void | notifyAboutToSave () |
Notify this widget, that the containing form is about to save and that any pending changes should be pushed to the edit buffer or they might be lost. | |
void | setConfig (const QVariantMap &config) |
Will set the config of this wrapper to the specified config. | |
void | setContext (const QgsAttributeEditorContext &context) |
Set the context in which this widget is shown. | |
void | setDataDefinedProperties (const QgsPropertyCollection &collection) |
Sets the editor widget's property collection, used for data defined overrides. | |
virtual bool | valid () const =0 |
Returns true if the widget has been properly initialized. | |
QWidget * | widget () |
Access the widget managed by this wrapper. | |
template<class T > | |
T * | widget () |
Access the widget managed by this wrapper and cast it to a given type. | |
Static Public Member Functions | |
static QgsEditorWidgetWrapper * | fromWidget (QWidget *widget) |
Will return a wrapper for a given widget. | |
static bool | isInTable (const QWidget *parent) |
Check if the given widget or one of its parent is a QTableView. | |
Static Public Member Functions inherited from QgsWidgetWrapper | |
static QgsWidgetWrapper * | fromWidget (QWidget *widget) |
Will return a wrapper for a given widget. | |
static const QgsPropertiesDefinition & | propertyDefinitions () |
Returns the editor widget property definitions. | |
Protected Member Functions | |
QgsFeature | formFeature () const |
The feature currently being edited, in its current state. | |
void | setFormFeature (const QgsFeature &feature) |
Set the feature currently being edited to feature. | |
bool | setFormFeatureAttribute (const QString &attributeName, const QVariant &attributeValue) |
Update the feature currently being edited by changing its attribute attributeName to attributeValue. | |
virtual void | updateConstraintWidgetStatus () |
This should update the widget with a visual cue if a constraint status changed. | |
Protected Member Functions inherited from QgsWidgetWrapper | |
virtual QWidget * | createWidget (QWidget *parent)=0 |
This method should create a new widget with the provided parent. | |
virtual void | initWidget (QWidget *editor) |
This method should initialize the editor widget with runtime data. | |
Properties | |
ConstraintResult | constraintResult |
bool | constraintResultVisible |
Additional Inherited Members | |
Protected Attributes inherited from QgsWidgetWrapper | |
QgsPropertyCollection | mPropertyCollection |
Data defined property collection. | |
Manages an editor widget Widget and wrapper share the same parent.
A wrapper controls one attribute editor widget and is able to create a default widget or use a pre-existent widget. It is able to set the widget to the value implied by a field of a vector layer, or return the value it currently holds. Every time it is changed it has to emit a valueChanged signal. If it fails to do so, there is no guarantee that the changed status of the widget will be saved.
It can also handle additional fields of a vector layer and would set the widget for their corresponding values and emit valuesChanged signal.
Definition at line 47 of file qgseditorwidgetwrapper.h.
Result of constraint checks.
Definition at line 59 of file qgseditorwidgetwrapper.h.
|
explicit |
Create a new widget wrapper.
vl | The layer on which the field is |
fieldIdx | The field which will be controlled |
editor | An editor widget. Can be nullptr if one should be autogenerated. |
parent | A parent widget for this widget wrapper and the created widget. |
Definition at line 27 of file qgseditorwidgetwrapper.cpp.
|
inlinevirtual |
Returns the list of additional fields which the editor handles.
Reimplemented in QgsRelationReferenceWidgetWrapper.
Definition at line 91 of file qgseditorwidgetwrapper.h.
|
inlinevirtual |
Will be used to access the widget's values for potential additional fields handled by the widget.
Reimplemented in QgsRelationReferenceWidgetWrapper.
Definition at line 99 of file qgseditorwidgetwrapper.h.
QString QgsEditorWidgetWrapper::constraintFailureReason | ( | ) | const |
Returns the reason why a constraint check has failed (or an empty string if constraint check was successful).
Definition at line 290 of file qgseditorwidgetwrapper.cpp.
QgsEditorWidgetWrapper::ConstraintResult QgsEditorWidgetWrapper::constraintResult | ( | ) | const |
Returns the constraint result, which is the current result of the constraint on the widget influencing its visualization.
Definition at line 150 of file qgseditorwidgetwrapper.cpp.
bool QgsEditorWidgetWrapper::constraintResultVisible | ( | ) | const |
Returns whether the constraint result is visible.
Returns true
if the constraint result will be visualized on the widget (with color). This will be disabled when the form is not editable.
Definition at line 155 of file qgseditorwidgetwrapper.cpp.
|
signal |
Emit this signal when the constraint result visibility changed.
|
signal |
Emit this signal when the constraint status changed.
constraintStatusChanged
constraint | represented as a string |
desc | is the constraint description |
err | the error represented as a string. Empty if none. |
status |
QVariant QgsEditorWidgetWrapper::defaultValue | ( | ) | const |
Access the default value of the field.
Definition at line 49 of file qgseditorwidgetwrapper.cpp.
|
slot |
Will call the value() method to determine the emitted value.
Definition at line 95 of file qgseditorwidgetwrapper.cpp.
QgsField QgsEditorWidgetWrapper::field | ( | ) | const |
Access the field.
Definition at line 40 of file qgseditorwidgetwrapper.cpp.
int QgsEditorWidgetWrapper::fieldIdx | ( | ) | const |
Access the field index.
Definition at line 35 of file qgseditorwidgetwrapper.cpp.
|
inlineprotected |
The feature currently being edited, in its current state.
Definition at line 342 of file qgseditorwidgetwrapper.h.
|
static |
Will return a wrapper for a given widget.
widget | The widget which was created by a wrapper |
nullptr
Definition at line 56 of file qgseditorwidgetwrapper.cpp.
bool QgsEditorWidgetWrapper::isBlockingCommit | ( | ) | const |
Returns true
if the widget is preventing the feature from being committed.
This may be TRUE as a result of attribute values failing enforced field constraints.
Definition at line 284 of file qgseditorwidgetwrapper.cpp.
|
static |
Check if the given widget or one of its parent is a QTableView.
parent | the widget to check |
true
if yes Definition at line 295 of file qgseditorwidgetwrapper.cpp.
bool QgsEditorWidgetWrapper::isValidConstraint | ( | ) | const |
Gets the current constraint status.
true
if the constraint is valid or if there's no constraint, false
otherwise Definition at line 279 of file qgseditorwidgetwrapper.cpp.
|
virtualslot |
Is called in embedded form widgets when an attribute value in the parent form has changed.
The default implementations does nothing. Subclasses should reimplement this method to notify the form widgets that something has changed in case they have filter expressions that depend on the parent form scope.
Definition at line 103 of file qgseditorwidgetwrapper.cpp.
void QgsEditorWidgetWrapper::setConstraintResultVisible | ( | bool | constraintResultVisible | ) |
Sets whether the constraint result is visible.
Controls if the constraint result should be visualized on the widget (with color). This will be disabled when the form is not editable.
constraintResultVisible | if constraintResult should be displayed (mostly editable status) |
Definition at line 160 of file qgseditorwidgetwrapper.cpp.
|
overridevirtual |
Is used to enable or disable the edit functionality of the managed widget.
By default this will enable or disable the whole widget
enabled | Enable or Disable? |
Reimplemented from QgsWidgetWrapper.
Reimplemented in QgsGeometryWidgetWrapper, and QgsValueRelationWidgetWrapper.
Definition at line 64 of file qgseditorwidgetwrapper.cpp.
|
overrideslot |
Will be called when the feature changes.
Is forwarded to the slot setValues()
feature | The new feature |
Definition at line 73 of file qgseditorwidgetwrapper.cpp.
|
inlineprotected |
Set the feature currently being edited to feature.
Definition at line 349 of file qgseditorwidgetwrapper.h.
|
protected |
Update the feature currently being edited by changing its attribute attributeName to attributeValue.
true
on success Definition at line 134 of file qgseditorwidgetwrapper.cpp.
|
virtual |
Add a hint text on the widget.
hintText | The hint text to display |
Reimplemented in QgsTextEditWrapper.
Definition at line 302 of file qgseditorwidgetwrapper.cpp.
|
virtualslot |
Is called when the value of the widget needs to be changed.
Updates the widget representation to reflect the new value.
value | The new value of the attribute |
Definition at line 83 of file qgseditorwidgetwrapper.cpp.
|
slot |
Is called when the value of the widget or additional field values needs to be changed.
Updates the widget representation to reflect the new values.
Definition at line 90 of file qgseditorwidgetwrapper.cpp.
|
inlinevirtual |
Sets the widget to display in an indeterminate "mixed value" state.
Reimplemented in QgsBinaryWidgetWrapper, QgsCheckboxWidgetWrapper, QgsClassificationWidgetWrapper, QgsColorWidgetWrapper, QgsDateTimeEditWrapper, QgsEnumerationWidgetWrapper, QgsExternalResourceWidgetWrapper, QgsJsonEditWrapper, QgsKeyValueWidgetWrapper, QgsListWidgetWrapper, QgsRelationReferenceWidgetWrapper, QgsTextEditWrapper, QgsUniqueValuesWidgetWrapper, QgsValueMapWidgetWrapper, and QgsValueRelationWidgetWrapper.
Definition at line 153 of file qgseditorwidgetwrapper.h.
void QgsEditorWidgetWrapper::updateConstraint | ( | const QgsFeature & | featureContext, |
QgsFieldConstraints::ConstraintOrigin | constraintOrigin = QgsFieldConstraints::ConstraintOriginNotSet |
||
) |
Update constraint.
featureContext | the feature to use to evaluate the constraint |
constraintOrigin | optional origin for constraints to check. This can be used to limit the constraints tested to only provider or layer based constraints. |
Definition at line 172 of file qgseditorwidgetwrapper.cpp.
void QgsEditorWidgetWrapper::updateConstraint | ( | const QgsVectorLayer * | layer, |
int | index, | ||
const QgsFeature & | feature, | ||
QgsFieldConstraints::ConstraintOrigin | constraintOrigin = QgsFieldConstraints::ConstraintOriginNotSet |
||
) |
Update constraint on a feature coming from a specific layer.
layer | The vector layer where the feature is defined |
index | The index of the field to check |
feature | The feature to use to evaluate the constraint |
constraintOrigin | Optional origin for constraints to check. This can be used to limit the constraints tested to only provider or layer based constraints. |
Definition at line 177 of file qgseditorwidgetwrapper.cpp.
void QgsEditorWidgetWrapper::updateConstraint | ( | QgsEditorWidgetWrapper::ConstraintResult | constraintResult, |
const QString & | constraintFailureReason | ||
) |
Update constraint manually by providing the constraint result value and failure reason(s).
constraintResult | the constraint result value |
constraintFailureReason | the constraint failure reason(s) (blank is the result passes) |
Definition at line 270 of file qgseditorwidgetwrapper.cpp.
|
protectedvirtual |
This should update the widget with a visual cue if a constraint status changed.
By default a stylesheet will be applied on the widget that changes the background color to red.
This can be overwritten in subclasses to allow individual widgets to change the visual cue.
Reimplemented in QgsRelationReferenceWidgetWrapper.
Definition at line 109 of file qgseditorwidgetwrapper.cpp.
|
pure virtual |
Will be used to access the widget's value.
Read the value from the widget and return it properly formatted to be saved in the attribute.
If an invalid variant is returned this will be interpreted as no change. Be sure to return a NULL QVariant if it should be set to NULL.
Implemented in QgsBinaryWidgetWrapper, QgsCheckboxWidgetWrapper, QgsClassificationWidgetWrapper, QgsColorWidgetWrapper, QgsDateTimeEditWrapper, QgsEnumerationWidgetWrapper, QgsExternalResourceWidgetWrapper, QgsGeometryWidgetWrapper, QgsHiddenWidgetWrapper, QgsJsonEditWrapper, QgsKeyValueWidgetWrapper, QgsListWidgetWrapper, QgsRangeWidgetWrapper, QgsRelationReferenceWidgetWrapper, QgsTextEditWrapper, QgsUniqueValuesWidgetWrapper, QgsUuidWidgetWrapper, QgsValueMapWidgetWrapper, and QgsValueRelationWidgetWrapper.
|
signal |
Emit this signal, whenever the value changed.
value | The new value |
|
signal |
Emit this signal, whenever the value changed.
It will also return the values for the additional fields handled by the widget
value | The new value |
additionalFieldValues | A map of additional field names with their corresponding values |
|
read |
Definition at line 52 of file qgseditorwidgetwrapper.h.
|
readwrite |
Definition at line 51 of file qgseditorwidgetwrapper.h.