QGIS API Documentation  3.37.0-Master (a5b4d9743e8)
Public Member Functions | List of all members
QgsEditorWidgetFactory Class Referenceabstract

Every attribute editor widget needs a factory, which inherits this class. More...

#include <qgseditorwidgetfactory.h>

Inheritance diagram for QgsEditorWidgetFactory:
Inheritance graph
[legend]

Public Member Functions

 QgsEditorWidgetFactory (const QString &name)
 Constructor. More...
 
virtual ~QgsEditorWidgetFactory ()=default
 
virtual QgsEditorConfigWidgetconfigWidget (QgsVectorLayer *vl, int fieldIdx, QWidget *parent) const =0
 Override this in your implementation. More...
 
virtual QgsEditorWidgetWrappercreate (QgsVectorLayer *vl, int fieldIdx, QWidget *editor, QWidget *parent) const =0
 Override this in your implementation. More...
 
virtual QgsSearchWidgetWrappercreateSearchWidget (QgsVectorLayer *vl, int fieldIdx, QWidget *parent) const
 By default a simple QgsFilterLineEdit is returned as search widget. More...
 
virtual unsigned int fieldScore (const QgsVectorLayer *vl, int fieldIdx) const
 This method allows disabling this editor widget type for a certain field. More...
 
QString name () const
 Returns The human readable identifier name of this widget type. More...
 
virtual QHash< const char *, int > supportedWidgetTypes ()
 Returns a list of widget types which this editor widget supports. More...
 
bool supportsField (const QgsVectorLayer *vl, int fieldIdx) const
 Check if this editor widget type supports a certain field. More...
 

Detailed Description

Every attribute editor widget needs a factory, which inherits this class.

It provides metadata for the widgets such as the name (human readable), it serializes the configuration to an xml structure and loads the configuration from there.

It also has factory methods to create a widget wrapper for the attribute editor itself and another factory method to create a configuration dialog.

Definition at line 42 of file qgseditorwidgetfactory.h.

Constructor & Destructor Documentation

◆ QgsEditorWidgetFactory()

QgsEditorWidgetFactory::QgsEditorWidgetFactory ( const QString &  name)

Constructor.

Parameters
nameA human readable name for this widget type

Definition at line 26 of file qgseditorwidgetfactory.cpp.

◆ ~QgsEditorWidgetFactory()

virtual QgsEditorWidgetFactory::~QgsEditorWidgetFactory ( )
virtualdefault

Member Function Documentation

◆ configWidget()

virtual QgsEditorConfigWidget* QgsEditorWidgetFactory::configWidget ( QgsVectorLayer vl,
int  fieldIdx,
QWidget *  parent 
) const
pure virtual

Override this in your implementation.

Create a new configuration widget for this widget type.

Parameters
vlThe layer for which the widget will be created
fieldIdxThe field index for which the widget will be created
parentThe parent widget of the created config widget
Returns
A configuration widget

Implemented in QgsValueRelationWidgetFactory, QgsValueMapWidgetFactory, QgsUuidWidgetFactory, QgsUniqueValueWidgetFactory, QgsTextEditWidgetFactory, QgsRelationReferenceFactory, QgsRangeWidgetFactory, QgsListWidgetFactory, QgsKeyValueWidgetFactory, QgsJsonEditWidgetFactory, QgsHiddenWidgetFactory, QgsGeometryWidgetFactory, QgsExternalResourceWidgetFactory, QgsEnumerationWidgetFactory, QgsDateTimeEditFactory, QgsColorWidgetFactory, QgsClassificationWidgetWrapperFactory, QgsCheckboxWidgetFactory, and QgsBinaryWidgetFactory.

◆ create()

virtual QgsEditorWidgetWrapper* QgsEditorWidgetFactory::create ( QgsVectorLayer vl,
int  fieldIdx,
QWidget *  editor,
QWidget *  parent 
) const
pure virtual

Override this in your implementation.

Create a new editor widget wrapper. Call QgsEditorWidgetRegistry::create() instead of calling this method directly.

Parameters
vlThe vector layer on which this widget will act
fieldIdxThe field index on which this widget will act
editorAn editor widget if already existent. If nullptr is provided, a new widget will be created.
parentThe parent for the wrapper class and any created widget.
Returns
A new widget wrapper

Implemented in QgsValueRelationWidgetFactory, QgsValueMapWidgetFactory, QgsUuidWidgetFactory, QgsUniqueValueWidgetFactory, QgsTextEditWidgetFactory, QgsRelationReferenceFactory, QgsRangeWidgetFactory, QgsListWidgetFactory, QgsKeyValueWidgetFactory, QgsJsonEditWidgetFactory, QgsHiddenWidgetFactory, QgsGeometryWidgetFactory, QgsExternalResourceWidgetFactory, QgsEnumerationWidgetFactory, QgsDateTimeEditFactory, QgsColorWidgetFactory, QgsClassificationWidgetWrapperFactory, QgsCheckboxWidgetFactory, and QgsBinaryWidgetFactory.

◆ createSearchWidget()

QgsSearchWidgetWrapper * QgsEditorWidgetFactory::createSearchWidget ( QgsVectorLayer vl,
int  fieldIdx,
QWidget *  parent 
) const
virtual

By default a simple QgsFilterLineEdit is returned as search widget.

Override in own factory to get something different than the default.

Reimplemented in QgsValueRelationWidgetFactory, QgsValueMapWidgetFactory, QgsTextEditWidgetFactory, QgsRelationReferenceFactory, QgsDateTimeEditFactory, and QgsCheckboxWidgetFactory.

Definition at line 35 of file qgseditorwidgetfactory.cpp.

◆ fieldScore()

unsigned int QgsEditorWidgetFactory::fieldScore ( const QgsVectorLayer vl,
int  fieldIdx 
) const
virtual

This method allows disabling this editor widget type for a certain field.

By default, it returns 5 for every fields. Reimplement this if you only support certain fields.

Typical return values are:

  • 0: not supported
  • 5: maybe support (for example, Datetime support strings depending on their content)
  • 10: basic support (this is what returns TextEdit for example, since it supports everything in a crude way)
  • 20: specialized support
Parameters
vl
fieldIdx
Returns
0 if the field is not supported or a bigger number if it can (the widget with the biggest number will be taken by default). The default implementation returns 5..
See also
supportsField()

Reimplemented in QgsUuidWidgetFactory, QgsTextEditWidgetFactory, QgsRelationReferenceFactory, QgsListWidgetFactory, QgsKeyValueWidgetFactory, QgsJsonEditWidgetFactory, QgsGeometryWidgetFactory, QgsExternalResourceWidgetFactory, QgsEnumerationWidgetFactory, QgsDateTimeEditFactory, QgsColorWidgetFactory, QgsCheckboxWidgetFactory, and QgsBinaryWidgetFactory.

Definition at line 45 of file qgseditorwidgetfactory.cpp.

◆ name()

QString QgsEditorWidgetFactory::name ( ) const

Returns The human readable identifier name of this widget type.

Returns
a name

Definition at line 40 of file qgseditorwidgetfactory.cpp.

◆ supportedWidgetTypes()

virtual QHash<const char *, int> QgsEditorWidgetFactory::supportedWidgetTypes ( )
inlinevirtual

Returns a list of widget types which this editor widget supports.

Each widget type can have a priority value attached, the factory with the highest one will be used.

Returns
A map of widget type names and weight values
Note
not available in Python bindings

Reimplemented in QgsValueMapWidgetFactory, QgsRelationReferenceFactory, QgsRangeWidgetFactory, QgsDateTimeEditFactory, and QgsCheckboxWidgetFactory.

Definition at line 109 of file qgseditorwidgetfactory.h.

◆ supportsField()

bool QgsEditorWidgetFactory::supportsField ( const QgsVectorLayer vl,
int  fieldIdx 
) const
inline

Check if this editor widget type supports a certain field.

Parameters
vlThe layer
fieldIdxThe field index
Returns
true if the type is supported for this field
See also
fieldScore()

Definition at line 99 of file qgseditorwidgetfactory.h.


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