QGIS API Documentation  2.99.0-Master (e077efd)
Public Types | Public Slots | Public Member Functions | Static 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 Types

typedef QVector< ValueRelationItemValueRelationCache
 
typedef QPair< QVariant, QString > ValueRelationItem
 
- Public Types inherited from QgsEditorWidgetWrapper
enum  ConstraintResult { ConstraintResultPass = 0, ConstraintResultFailHard, ConstraintResultFailSoft }
 Result of constraint checks. More...
 

Public Slots

void setValue (const QVariant &value) override
 
- Public Slots inherited from QgsEditorWidgetWrapper
void setFeature (const QgsFeature &feature) override
 Will be called when the feature changes. More...
 
virtual void setValue (const QVariant &value)=0
 Is called, when the value of the widget needs to be changed. More...
 
- Public Slots inherited from QgsWidgetWrapper
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 *vl, int fieldIdx, QWidget *editor=nullptr, QWidget *parent=nullptr)
 
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...
 
QString constraintFailureReason () const
 Returns the reason why a constraint check has failed (or an empty string if constraint check was successful). 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
 Get the current constraint status. More...
 
void setEnabled (bool enabled) override
 Is used to enable or disable the edit functionality of the managed widget. More...
 
void updateConstraint (const QgsFeature &featureContext, QgsFieldConstraints::ConstraintOrigin constraintOrigin=QgsFieldConstraints::ConstraintOriginNotSet)
 Update constraint. More...
 
- Public Member Functions inherited from QgsWidgetWrapper
 QgsWidgetWrapper (QgsVectorLayer *vl, QWidget *editor=nullptr, QWidget *parent=nullptr)
 Create a new widget wrapper. More...
 
QVariant config (const QString &key, const QVariant &defaultVal=QVariant()) const
 Use this inside your overridden classes to access the configuration. More...
 
QgsEditorWidgetConfig config () const
 Returns the whole config. More...
 
const QgsAttributeEditorContextcontext () const
 Returns information about the context in which this widget is shown. More...
 
QgsVectorLayerlayer () const
 Access the QgsVectorLayer, you are working on. More...
 
void setConfig (const QgsEditorWidgetConfig &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...
 
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 Example: QPushButton* pb = wrapper->widget<QPushButton*>();. More...
 

Static Public Member Functions

static ValueRelationCache createCache (const QgsEditorWidgetConfig &config)
 
static bool orderByKeyLessThan (const QgsValueRelationWidgetWrapper::ValueRelationItem &p1, const QgsValueRelationWidgetWrapper::ValueRelationItem &p2)
 
static bool orderByValueLessThan (const QgsValueRelationWidgetWrapper::ValueRelationItem &p1, const QgsValueRelationWidgetWrapper::ValueRelationItem &p2)
 
- Static Public Member Functions inherited from QgsEditorWidgetWrapper
static QgsEditorWidgetWrapperfromWidget (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 QgsWidgetWrapperfromWidget (QWidget *widget)
 Will return a wrapper for a given widget. 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...
 
bool valid () const override
 Return true if the widget has been properly initialized. More...
 
- Protected Member Functions inherited from QgsEditorWidgetWrapper
virtual void updateConstraintWidgetStatus (ConstraintResult status)
 This should update the widget with a visual cue if a constraint status changed. More...
 

Friends

class QgsValueRelationWidgetFactory
 

Additional Inherited Members

- Signals inherited from QgsEditorWidgetWrapper
void constraintStatusChanged (const QString &constraint, const QString &desc, const QString &err, ConstraintResult status)
 Emit this signal when the constraint status changed. More...
 
void valueChanged (const QVariant &value)
 Emit this signal, whenever the value changed. More...
 
- Protected Slots inherited from QgsEditorWidgetWrapper
void valueChanged (const QString &value)
 If you emit to this slot in your implementation, an appropriate change notification will be broadcasted. More...
 
void valueChanged (int value)
 If you emit to this slot in your implementation, an appropriate change notification will be broadcasted. More...
 
void valueChanged (double value)
 If you emit to this slot in your implementation, an appropriate change notification will be broadcasted. More...
 
void valueChanged (bool value)
 If you emit to this slot in your implementation, an appropriate change notification will be broadcasted. More...
 
void valueChanged (qlonglong value)
 If you emit to this slot in your implementation, an appropriate change notification will be broadcasted. More...
 
void valueChanged ()
 Will call the value() method to determine the emitted value. More...
 

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 47 of file qgsvaluerelationwidgetwrapper.h.

Member Typedef Documentation

§ ValueRelationCache

Definition at line 53 of file qgsvaluerelationwidgetwrapper.h.

§ ValueRelationItem

typedef QPair< QVariant, QString > QgsValueRelationWidgetWrapper::ValueRelationItem

Definition at line 52 of file qgsvaluerelationwidgetwrapper.h.

Constructor & Destructor Documentation

§ QgsValueRelationWidgetWrapper()

QgsValueRelationWidgetWrapper::QgsValueRelationWidgetWrapper ( QgsVectorLayer vl,
int  fieldIdx,
QWidget *  editor = nullptr,
QWidget *  parent = nullptr 
)
explicit

Definition at line 41 of file qgsvaluerelationwidgetwrapper.cpp.

Member Function Documentation

§ createCache()

QgsValueRelationWidgetWrapper::ValueRelationCache QgsValueRelationWidgetWrapper::createCache ( const QgsEditorWidgetConfig config)
static

Definition at line 192 of file qgsvaluerelationwidgetwrapper.cpp.

§ 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(QWidget*).

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

Implements QgsWidgetWrapper.

Definition at line 92 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 107 of file qgsvaluerelationwidgetwrapper.cpp.

§ orderByKeyLessThan()

bool QgsValueRelationWidgetWrapper::orderByKeyLessThan ( const QgsValueRelationWidgetWrapper::ValueRelationItem p1,
const QgsValueRelationWidgetWrapper::ValueRelationItem p2 
)
static

Definition at line 29 of file qgsvaluerelationwidgetwrapper.cpp.

§ orderByValueLessThan()

bool QgsValueRelationWidgetWrapper::orderByValueLessThan ( const QgsValueRelationWidgetWrapper::ValueRelationItem p1,
const QgsValueRelationWidgetWrapper::ValueRelationItem p2 
)
static

Definition at line 35 of file qgsvaluerelationwidgetwrapper.cpp.

§ setValue

void QgsValueRelationWidgetWrapper::setValue ( const QVariant &  value)
overrideslot

Definition at line 162 of file qgsvaluerelationwidgetwrapper.cpp.

§ showIndeterminateState()

void QgsValueRelationWidgetWrapper::showIndeterminateState ( )
overridevirtual

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

Note
added in QGIS 2.16

Reimplemented from QgsEditorWidgetWrapper.

Definition at line 233 of file qgsvaluerelationwidgetwrapper.cpp.

§ valid()

bool QgsValueRelationWidgetWrapper::valid ( ) const
overrideprotectedvirtual

Return 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 tothe caller that he may try to find another suitable widget type instead.

Returns
Validity status of this widget.
Note
Added in 2.12

Implements QgsWidgetWrapper.

Definition at line 157 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 51 of file qgsvaluerelationwidgetwrapper.cpp.

Friends And Related Function Documentation

§ QgsValueRelationWidgetFactory

friend class QgsValueRelationWidgetFactory
friend

Definition at line 87 of file qgsvaluerelationwidgetwrapper.h.


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