QGIS API Documentation 3.41.0-Master (cea29feecf2)
Loading...
Searching...
No Matches
Public Slots | Public Member Functions | Protected Member Functions | Friends | List of all members
QgsValueRelationWidgetWrapper Class Reference

Wraps a value relation widget. More...

#include <qgsvaluerelationwidgetwrapper.h>

Inheritance diagram for QgsValueRelationWidgetWrapper:
Inheritance graph
[legend]

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.
 
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

Public Member Functions

 QgsValueRelationWidgetWrapper (QgsVectorLayer *layer, int fieldIdx, QWidget *editor=nullptr, QWidget *parent=nullptr)
 Constructor for QgsValueRelationWidgetWrapper.
 
void setEnabled (bool enabled) override
 Is used to enable or disable the edit functionality of the managed widget.
 
void showIndeterminateState () override
 Sets the widget to display in an indeterminate "mixed value" state.
 
QVariant value () const override
 Will be used to access the widget's value.
 
- Public Member Functions inherited from QgsEditorWidgetWrapper
 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.
 
virtual void setHint (const QString &hintText)
 Add a hint text on the widget.
 
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).
 
- 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 QgsAttributeEditorContextcontext () const
 Returns information about the context in which this widget is shown.
 
QgsPropertyCollectiondataDefinedProperties ()
 Returns a reference to the editor widget's property collection, used for data defined overrides.
 
const QgsPropertyCollectiondataDefinedProperties () const
 Returns a reference to the editor widget's property collection, used for data defined overrides.
 
QgsVectorLayerlayer () 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.
 
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.
 

Protected Member Functions

QWidget * createWidget (QWidget *parent) override
 This method should create a new widget with the provided parent.
 
void initWidget (QWidget *editor) override
 This method should initialize the editor widget with runtime data.
 
void setFeature (const QgsFeature &feature) override
 Will be called when the feature changes.
 
bool valid () const override
 Returns true if the widget has been properly initialized.
 
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.
 
- Protected Member Functions inherited from QgsEditorWidgetWrapper
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.
 

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 class  Property : int { 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.
 
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.
 
- Static Public Member Functions inherited from QgsEditorWidgetWrapper
static QgsEditorWidgetWrapperfromWidget (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 QgsWidgetWrapperfromWidget (QWidget *widget)
 Will return a wrapper for a given widget.
 
static const QgsPropertiesDefinitionpropertyDefinitions ()
 Returns the editor widget property definitions.
 
- Protected Attributes inherited from QgsWidgetWrapper
QgsPropertyCollection mPropertyCollection
 Data defined property collection.
 
- Properties inherited from QgsEditorWidgetWrapper
ConstraintResult constraintResult
 
bool constraintResultVisible
 

Detailed Description

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:

Note
not available in Python bindings

Definition at line 135 of file qgsvaluerelationwidgetwrapper.h.

Constructor & Destructor Documentation

◆ QgsValueRelationWidgetWrapper()

QgsValueRelationWidgetWrapper::QgsValueRelationWidgetWrapper ( QgsVectorLayer layer,
int  fieldIdx,
QWidget *  editor = nullptr,
QWidget *  parent = nullptr 
)
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 234 of file qgsvaluerelationwidgetwrapper.cpp.

Member Function Documentation

◆ createWidget()

QWidget * QgsValueRelationWidgetWrapper::createWidget ( QWidget *  parent)
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().

Parameters
parentYou should set this parent on the created widget.
Returns
A new widget

Implements QgsWidgetWrapper.

Definition at line 308 of file qgsvaluerelationwidgetwrapper.cpp.

◆ initWidget()

void QgsValueRelationWidgetWrapper::initWidget ( QWidget *  editor)
overrideprotectedvirtual

This method should initialize the editor widget with runtime data.

Fill your comboboxes here.

Parameters
editorThe widget which will represent this attribute editor in a form.

Reimplemented from QgsWidgetWrapper.

Definition at line 336 of file qgsvaluerelationwidgetwrapper.cpp.

◆ parentFormValueChanged

void QgsValueRelationWidgetWrapper::parentFormValueChanged ( const QString &  attribute,
const QVariant &  value 
)
overrideslot

Definition at line 665 of file qgsvaluerelationwidgetwrapper.cpp.

◆ setEnabled()

void QgsValueRelationWidgetWrapper::setEnabled ( bool  enabled)
overridevirtual

Is used to enable or disable the edit functionality of the managed widget.

By default this will enable or disable the whole widget

Parameters
enabledEnable or Disable?

Reimplemented from QgsEditorWidgetWrapper.

Definition at line 650 of file qgsvaluerelationwidgetwrapper.cpp.

◆ setFeature()

void QgsValueRelationWidgetWrapper::setFeature ( const QgsFeature feature)
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

Parameters
featureThe new feature

Implements QgsWidgetWrapper.

Definition at line 492 of file qgsvaluerelationwidgetwrapper.cpp.

◆ showIndeterminateState()

void QgsValueRelationWidgetWrapper::showIndeterminateState ( )
overridevirtual

Sets the widget to display in an indeterminate "mixed value" state.

Reimplemented from QgsEditorWidgetWrapper.

Definition at line 634 of file qgsvaluerelationwidgetwrapper.cpp.

◆ valid()

bool QgsValueRelationWidgetWrapper::valid ( ) const
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.

Returns
Validity status of this widget.

Implements QgsWidgetWrapper.

Definition at line 370 of file qgsvaluerelationwidgetwrapper.cpp.

◆ value()

QVariant QgsValueRelationWidgetWrapper::value ( ) const
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.

Returns
The current value the widget represents

Implements QgsEditorWidgetWrapper.

Definition at line 239 of file qgsvaluerelationwidgetwrapper.cpp.

◆ widgetValueChanged()

void QgsValueRelationWidgetWrapper::widgetValueChanged ( const QString &  attribute,
const QVariant &  newValue,
bool  attributeChanged 
)
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

Parameters
attributeThe name of the attribute that changed.
newValueThe new value of the attribute.
attributeChangedIf true, it corresponds to an actual change of the feature attribute
Since
QGIS 3.2.0

Definition at line 453 of file qgsvaluerelationwidgetwrapper.cpp.

Friends And Related Symbol Documentation

◆ QgsValueRelationWidgetFactory

friend class QgsValueRelationWidgetFactory
friend

Definition at line 231 of file qgsvaluerelationwidgetwrapper.h.

◆ TestQgsValueRelationWidgetWrapper

friend class TestQgsValueRelationWidgetWrapper
friend

Definition at line 232 of file qgsvaluerelationwidgetwrapper.h.


The documentation for this class was generated from the following files: