QGIS API Documentation 3.28.0-Firenze (ed3ad0430f)
|
Wraps a value relation widget. More...
#include <qgsvaluerelationwidgetwrapper.h>
Public Slots | |
void | parentFormValueChanged (const QString &attribute, const QVariant &value) override |
Public Slots inherited from QgsEditorWidgetWrapper | |
void | emitValueChanged () |
Will call the value() method to determine the emitted value. More... | |
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. More... | |
void | setFeature (const QgsFeature &feature) override |
Will be called when the feature changes. More... | |
virtual void | setValue (const QVariant &value) |
Is called when the value of the widget needs to be changed. More... | |
void | setValues (const QVariant &value, const QVariantList &additionalValues) |
Is called when the value of the widget or additional field values needs to be changed. More... | |
Public Slots inherited from QgsWidgetWrapper | |
virtual void | setEnabled (bool enabled) |
Is used to enable or disable the edit functionality of the managed widget. More... | |
virtual void | setFeature (const QgsFeature &feature)=0 |
Is called when the value of the widget needs to be changed. More... | |
Public Member Functions | |
QgsValueRelationWidgetWrapper (QgsVectorLayer *layer, int fieldIdx, QWidget *editor=nullptr, QWidget *parent=nullptr) | |
Constructor for QgsValueRelationWidgetWrapper. More... | |
void | setEnabled (bool enabled) override |
Is used to enable or disable the edit functionality of the managed widget. More... | |
void | showIndeterminateState () override |
Sets the widget to display in an indeterminate "mixed value" state. More... | |
QVariant | value () const override |
Will be used to access the widget's value. More... | |
Public Member Functions inherited from QgsEditorWidgetWrapper | |
QgsEditorWidgetWrapper (QgsVectorLayer *vl, int fieldIdx, QWidget *editor=nullptr, QWidget *parent=nullptr) | |
Create a new widget wrapper. More... | |
virtual QStringList | additionalFields () const |
Returns the list of additional fields which the editor handles. More... | |
virtual QVariantList | additionalFieldValues () const |
Will be used to access the widget's values for potential additional fields handled by the widget. More... | |
QString | constraintFailureReason () const |
Returns the reason why a constraint check has failed (or an empty string if constraint check was successful). More... | |
ConstraintResult | constraintResult () const |
Returns the constraint result, which is the current result of the constraint on the widget influencing its visualization. More... | |
bool | constraintResultVisible () const |
Returns whether the constraint result is visible. More... | |
QVariant | defaultValue () const |
Access the default value of the field. More... | |
QgsField | field () const |
Access the field. More... | |
int | fieldIdx () const |
Access the field index. More... | |
bool | isBlockingCommit () const |
Returns true if the widget is preventing the feature from being committed. More... | |
bool | isValidConstraint () const |
Gets the current constraint status. More... | |
void | setConstraintResultVisible (bool constraintResultVisible) |
Sets whether the constraint result is visible. More... | |
void | setEnabled (bool enabled) override |
Is used to enable or disable the edit functionality of the managed widget. More... | |
virtual void | setHint (const QString &hintText) |
Add a hint text on the widget. More... | |
virtual void | showIndeterminateState () |
Sets the widget to display in an indeterminate "mixed value" state. More... | |
void | updateConstraint (const QgsFeature &featureContext, QgsFieldConstraints::ConstraintOrigin constraintOrigin=QgsFieldConstraints::ConstraintOriginNotSet) |
Update constraint. More... | |
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. More... | |
virtual QVariant | value () const =0 |
Will be used to access the widget's value. More... | |
Public Member Functions inherited from QgsWidgetWrapper | |
QgsWidgetWrapper (QgsVectorLayer *vl, QWidget *editor=nullptr, QWidget *parent=nullptr) | |
Create a new widget wrapper. More... | |
QVariantMap | config () const |
Returns the whole config. More... | |
QVariant | config (const QString &key, const QVariant &defaultVal=QVariant()) const |
Use this inside your overridden classes to access the configuration. More... | |
const QgsAttributeEditorContext & | context () const |
Returns information about the context in which this widget is shown. More... | |
QgsPropertyCollection & | dataDefinedProperties () |
Returns a reference to the editor widget's property collection, used for data defined overrides. More... | |
const QgsPropertyCollection & | dataDefinedProperties () const |
Returns a reference to the editor widget's property collection, used for data defined overrides. More... | |
QgsVectorLayer * | layer () const |
Returns the vector layer associated with the widget. More... | |
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. More... | |
void | setConfig (const QVariantMap &config) |
Will set the config of this wrapper to the specified config. More... | |
void | setContext (const QgsAttributeEditorContext &context) |
Set the context in which this widget is shown. More... | |
void | setDataDefinedProperties (const QgsPropertyCollection &collection) |
Sets the editor widget's property collection, used for data defined overrides. More... | |
virtual bool | valid () const =0 |
Returns true if the widget has been properly initialized. More... | |
QWidget * | widget () |
Access the widget managed by this wrapper. More... | |
template<class T > | |
T * | widget () |
Access the widget managed by this wrapper and cast it to a given type. More... | |
Protected Member Functions | |
QWidget * | createWidget (QWidget *parent) override |
This method should create a new widget with the provided parent. More... | |
void | initWidget (QWidget *editor) override |
This method should initialize the editor widget with runtime data. More... | |
void | setFeature (const QgsFeature &feature) override |
Will be called when the feature changes. More... | |
bool | valid () const override |
Returns true if the widget has been properly initialized. More... | |
void | widgetValueChanged (const QString &attribute, const QVariant &newValue, bool attributeChanged) |
Will be called when a value in the current edited form or table row changes. More... | |
Protected Member Functions inherited from QgsEditorWidgetWrapper | |
QgsFeature | formFeature () const |
The feature currently being edited, in its current state. More... | |
void | setFormFeature (const QgsFeature &feature) |
Set the feature currently being edited to feature. More... | |
bool | setFormFeatureAttribute (const QString &attributeName, const QVariant &attributeValue) |
Update the feature currently being edited by changing its attribute attributeName to attributeValue. More... | |
virtual void | updateConstraintWidgetStatus () |
This should update the widget with a visual cue if a constraint status changed. More... | |
virtual QWidget * | createWidget (QWidget *parent)=0 |
This method should create a new widget with the provided parent. More... | |
virtual void | initWidget (QWidget *editor) |
This method should initialize the editor widget with runtime data. More... | |
Friends | |
class | QgsValueRelationWidgetFactory |
class | TestQgsValueRelationWidgetWrapper |
Additional Inherited Members | |
Public Types inherited from QgsEditorWidgetWrapper | |
enum | ConstraintResult { ConstraintResultPass = 0 , ConstraintResultFailHard , ConstraintResultFailSoft } |
Result of constraint checks. More... | |
Public Types inherited from QgsWidgetWrapper | |
enum | Property { RootPath = 0 , DocumentViewerContent , StorageUrl } |
Data defined properties for different editor widgets. More... | |
Signals inherited from QgsEditorWidgetWrapper | |
void | constraintResultVisibleChanged (bool visible) |
Emit this signal when the constraint result visibility changed. More... | |
void | constraintStatusChanged (const QString &constraint, const QString &desc, const QString &err, QgsEditorWidgetWrapper::ConstraintResult status) |
Emit this signal when the constraint status changed. More... | |
Q_DECL_DEPRECATED void | valueChanged (const QVariant &value) |
Emit this signal, whenever the value changed. More... | |
void | valuesChanged (const QVariant &value, const QVariantList &additionalFieldValues=QVariantList()) |
Emit this signal, whenever the value changed. More... | |
Signals inherited from QgsWidgetWrapper | |
void | contextChanged () |
Signal when QgsAttributeEditorContext mContext changed. More... | |
Static Public Member Functions inherited from QgsEditorWidgetWrapper | |
static QgsEditorWidgetWrapper * | fromWidget (QWidget *widget) |
Will return a wrapper for a given widget. More... | |
static bool | isInTable (const QWidget *parent) |
Check if the given widget or one of its parent is a QTableView. More... | |
Static Public Member Functions inherited from QgsWidgetWrapper | |
static QgsWidgetWrapper * | fromWidget (QWidget *widget) |
Will return a wrapper for a given widget. More... | |
static const QgsPropertiesDefinition & | propertyDefinitions () |
Returns the editor widget property definitions. More... | |
Protected Attributes inherited from QgsWidgetWrapper | |
QgsPropertyCollection | mPropertyCollection |
Data defined property collection. More... | |
Properties inherited from QgsEditorWidgetWrapper | |
ConstraintResult | constraintResult |
bool | constraintResultVisible |
Wraps a value relation widget.
This widget will offer a combobox with values from another layer referenced by a foreign key (a constraint may be set but is not required on data level). This is useful for having value lists on a separate layer containing codes and their translation to human readable names.
Options:
true
, will allow multiple selections. This requires the data type to be a string. This does NOT work with normalized database structures. true
, the value will be shown. Definition at line 52 of file qgsvaluerelationwidgetwrapper.h.
|
explicit |
Constructor for QgsValueRelationWidgetWrapper.
The layer and fieldIdx arguments specify the vector layer field associated with the wrapper.
The editor argument indicates the editor widget to use with the wrapper. This can be nullptr
if a new widget should be autogenerated.
A parent widget for this widget wrapper and the created widget can also be specified.
Definition at line 44 of file qgsvaluerelationwidgetwrapper.cpp.
|
overrideprotectedvirtual |
This method should create a new widget with the provided parent.
This will only be called if the form did not already provide a widget, so it is not guaranteed to be called! You should not do initialization stuff, which also has to be done for custom editor widgets inside this method. Things like filling comboboxes and assigning other data which will also be used to make widgets on forms created in the QtDesigner usable should be assigned in initWidget().
parent | You should set this parent on the created widget. |
Implements QgsWidgetWrapper.
Definition at line 133 of file qgsvaluerelationwidgetwrapper.cpp.
|
overrideprotectedvirtual |
This method should initialize the editor widget with runtime data.
Fill your comboboxes here.
editor | The widget which will represent this attribute editor in a form. |
Reimplemented from QgsWidgetWrapper.
Definition at line 155 of file qgsvaluerelationwidgetwrapper.cpp.
|
overrideslot |
Definition at line 513 of file qgsvaluerelationwidgetwrapper.cpp.
|
overridevirtual |
Is used to enable or disable the edit functionality of the managed widget.
By default this will not change the enabled state of the widget
enabled | Enable or Disable? |
Reimplemented from QgsWidgetWrapper.
Definition at line 485 of file qgsvaluerelationwidgetwrapper.cpp.
|
overrideprotectedvirtual |
Will be called when the feature changes.
Is forwarded to the slot setValue() and updates the widget cache if the filter expression context contains values from the current feature
feature | The new feature |
Implements QgsWidgetWrapper.
Definition at line 329 of file qgsvaluerelationwidgetwrapper.cpp.
|
overridevirtual |
Sets the widget to display in an indeterminate "mixed value" state.
Reimplemented from QgsEditorWidgetWrapper.
Definition at line 461 of file qgsvaluerelationwidgetwrapper.cpp.
|
overrideprotectedvirtual |
Returns true
if the widget has been properly initialized.
This acts as hint for the calling party if this wrapper can be used after initializing it. If it cannot be used this is a hint to the caller that he may try to find another suitable widget type instead.
Implements QgsWidgetWrapper.
Definition at line 188 of file qgsvaluerelationwidgetwrapper.cpp.
|
overridevirtual |
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.
Implements QgsEditorWidgetWrapper.
Definition at line 50 of file qgsvaluerelationwidgetwrapper.cpp.
|
protected |
Will be called when a value in the current edited form or table row changes.
Update widget cache if the value is used in the filter expression and stores current field values to be used in expression form scope context
attribute | The name of the attribute that changed. |
newValue | The new value of the attribute. |
attributeChanged | If true , it corresponds to an actual change of the feature attribute |
Definition at line 291 of file qgsvaluerelationwidgetwrapper.cpp.
|
friend |
Definition at line 138 of file qgsvaluerelationwidgetwrapper.h.
|
friend |
Definition at line 139 of file qgsvaluerelationwidgetwrapper.h.