QGIS API Documentation 3.28.0-Firenze (ed3ad0430f)
Classes | Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
QgsEditFormConfig Class Reference

Contains configuration settings for an editor form. More...

#include <qgseditformconfig.h>

Classes

struct  GroupData
 
struct  TabData
 

Public Types

enum  DataDefinedProperty { NoProperty = 0 , AllProperties = 1 , Alias = 2 }
 Data defined properties. More...
 
enum  EditorLayout { GeneratedLayout = 0 , TabLayout = 1 , UiFileLayout = 2 }
 The different types to layout the attribute editor. More...
 
enum  FeatureFormSuppress { SuppressDefault = 0 , SuppressOn = 1 , SuppressOff = 2 }
 Types of feature form suppression after feature creation. More...
 
enum  PythonInitCodeSource { CodeSourceNone = 0 , CodeSourceFile = 1 , CodeSourceDialog = 2 , CodeSourceEnvironment = 3 }
 The Python init code source options. More...
 

Public Member Functions

 QgsEditFormConfig ()
 Create a new edit form config. More...
 
 QgsEditFormConfig (const QgsEditFormConfig &o)
 Copy constructor. More...
 
 ~QgsEditFormConfig ()
 
void addTab (QgsAttributeEditorElement *data)
 Adds a new element to the invisible root container in the layout. More...
 
Q_DECL_DEPRECATED QgsAttributeEditorElementattributeEditorElementFromDomElement (QDomElement &elem, QgsAttributeEditorElement *parent, const QString &layerId=QString(), const QgsReadWriteContext &context=QgsReadWriteContext())
 Deserialize drag and drop designer elements. More...
 
void clearTabs ()
 Clears all the tabs for the attribute editor form with EditorLayout::TabLayout. More...
 
QgsPropertyCollection dataDefinedFieldProperties (const QString &fieldName) const
 Returns data defined properties for fieldName. More...
 
QString initCode () const
 Gets Python code for edit form initialization. More...
 
PythonInitCodeSource initCodeSource () const
 Returns Python code source for edit form initialization (if it shall be loaded from a file, read from the provided dialog editor or inherited from the environment) More...
 
QString initFilePath () const
 Gets Python external file path for edit form initialization. More...
 
QString initFunction () const
 Gets Python function for edit form initialization. More...
 
QgsAttributeEditorContainerinvisibleRootContainer ()
 Gets the invisible root container for the drag and drop designer form (EditorLayout::TabLayout). More...
 
bool labelOnTop (int idx) const
 If this returns true, the widget at the given index will receive its label on the previous line while if it returns false, the widget will receive its label on the left hand side. More...
 
EditorLayout layout () const
 Gets the active layout style for the attribute editor for this layer. More...
 
QgsEditFormConfigoperator= (const QgsEditFormConfig &o)
 
bool operator== (const QgsEditFormConfig &o) const
 
bool readOnly (int idx) const
 This returns true if the field is manually set to read only or if the field does not support editing like joins or virtual fields. More...
 
void readXml (const QDomNode &node, QgsReadWriteContext &context)
 Read XML information Deserialize on project load. More...
 
bool removeWidgetConfig (const QString &widgetName)
 Remove the configuration for the editor widget with the given name. More...
 
bool reuseLastValue (int index) const
 If this returns true, the widget at the given index will remember the previously entered value from this QGIS session when creating new features. More...
 
void setDataDefinedFieldProperties (const QString &fieldName, const QgsPropertyCollection &properties)
 Set data defined properties for fieldName to properties. More...
 
void setInitCode (const QString &code)
 Set Python code for edit form initialization. More...
 
void setInitCodeSource (PythonInitCodeSource initCodeSource)
 Sets if Python code shall be used for edit form initialization and its origin. More...
 
void setInitFilePath (const QString &filePath)
 Set Python external file path for edit form initialization. More...
 
void setInitFunction (const QString &function)
 Set Python function for edit form initialization. More...
 
void setLabelOnTop (int idx, bool onTop)
 If this is set to true, the widget at the given index will receive its label on the previous line while if it is set to false, the widget will receive its label on the left hand side. More...
 
void setLayout (EditorLayout editorLayout)
 Sets the active layout style for the attribute editor for this layer. More...
 
void setReadOnly (int idx, bool readOnly=true)
 If set to false, the widget at the given index will be read-only. More...
 
void setReuseLastValue (int index, bool reuse)
 Sets whether the widget at the given index will remember the previously entered value from this QGIS session when creating new features. More...
 
void setSuppress (FeatureFormSuppress s)
 Sets type of feature form pop-up suppression after feature creation (overrides app setting) More...
 
void setUiForm (const QString &ui)
 Set path to the .ui form. More...
 
bool setWidgetConfig (const QString &widgetName, const QVariantMap &config)
 Set the editor widget config for a widget which is not for a simple field. More...
 
FeatureFormSuppress suppress () const
 Type of feature form pop-up suppression after feature creation (overrides app setting) More...
 
QList< QgsAttributeEditorElement * > tabs () const
 Returns a list of tabs for EditorLayout::TabLayout obtained from the invisible root container. More...
 
QString uiForm () const
 Returns the path or URL to the .ui form. More...
 
QVariantMap widgetConfig (const QString &widgetName) const
 Gets the configuration for the editor widget with the given name. More...
 
void writeXml (QDomNode &node, const QgsReadWriteContext &context) const
 Write XML information Serialize on project save. More...
 

Static Public Member Functions

static const QgsPropertiesDefinitionpropertyDefinitions ()
 Returns data defined property definitions. More...
 

Friends

class QgsVectorLayer
 

Detailed Description

Contains configuration settings for an editor form.

Definition at line 39 of file qgseditformconfig.h.

Member Enumeration Documentation

◆ DataDefinedProperty

Data defined properties.

Form data defined overrides are stored in a property collection and they can be retrieved using the indexes specified in this enum.

Since
QGIS 3.14
Enumerator
NoProperty 

No property.

AllProperties 

All properties for item.

Alias 

Alias.

Definition at line 111 of file qgseditformconfig.h.

◆ EditorLayout

The different types to layout the attribute editor.

Enumerator
GeneratedLayout 

Autogenerate a simple tabular layout for the form.

TabLayout 

Use a layout with tabs and group boxes. Needs to be configured.

UiFileLayout 

Load a .ui file for the layout. Needs to be configured.

Definition at line 47 of file qgseditformconfig.h.

◆ FeatureFormSuppress

Types of feature form suppression after feature creation.

Enumerator
SuppressDefault 

Use the application-wide setting.

SuppressOn 

Suppress feature form.

SuppressOff 

Do not suppress feature form.

Definition at line 84 of file qgseditformconfig.h.

◆ PythonInitCodeSource

The Python init code source options.

Enumerator
CodeSourceNone 

Do not use Python code at all.

CodeSourceFile 

Load the Python code from an external file.

CodeSourceDialog 

Use the Python code provided in the dialog.

CodeSourceEnvironment 

Use the Python code available in the Python environment.

Definition at line 95 of file qgseditformconfig.h.

Constructor & Destructor Documentation

◆ QgsEditFormConfig() [1/2]

QgsEditFormConfig::QgsEditFormConfig ( const QgsEditFormConfig o)

Copy constructor.

Since
QGIS 3.0

Definition at line 155 of file qgseditformconfig.cpp.

◆ ~QgsEditFormConfig()

QgsEditFormConfig::~QgsEditFormConfig ( )

Definition at line 160 of file qgseditformconfig.cpp.

◆ QgsEditFormConfig() [2/2]

QgsEditFormConfig::QgsEditFormConfig ( )
explicit

Create a new edit form config.

Normally invoked by QgsVectorLayer

Definition at line 32 of file qgseditformconfig.cpp.

Member Function Documentation

◆ addTab()

void QgsEditFormConfig::addTab ( QgsAttributeEditorElement data)

Adds a new element to the invisible root container in the layout.

This is only useful in combination with EditorLayout::TabLayout.

Definition at line 174 of file qgseditformconfig.cpp.

◆ attributeEditorElementFromDomElement()

QgsAttributeEditorElement * QgsEditFormConfig::attributeEditorElementFromDomElement ( QDomElement &  elem,
QgsAttributeEditorElement parent,
const QString &  layerId = QString(),
const QgsReadWriteContext context = QgsReadWriteContext() 
)

Deserialize drag and drop designer elements.

Deprecated:
since QGIS 3.18 use QgsAttributeEditorElement::create instead

Definition at line 671 of file qgseditformconfig.cpp.

◆ clearTabs()

void QgsEditFormConfig::clearTabs ( )

Clears all the tabs for the attribute editor form with EditorLayout::TabLayout.

Definition at line 185 of file qgseditformconfig.cpp.

◆ dataDefinedFieldProperties()

QgsPropertyCollection QgsEditFormConfig::dataDefinedFieldProperties ( const QString &  fieldName) const

Returns data defined properties for fieldName.

Since
QGIS 3.14

Definition at line 43 of file qgseditformconfig.cpp.

◆ initCode()

QString QgsEditFormConfig::initCode ( ) const

Gets Python code for edit form initialization.

Definition at line 301 of file qgseditformconfig.cpp.

◆ initCodeSource()

QgsEditFormConfig::PythonInitCodeSource QgsEditFormConfig::initCodeSource ( ) const

Returns Python code source for edit form initialization (if it shall be loaded from a file, read from the provided dialog editor or inherited from the environment)

Definition at line 330 of file qgseditformconfig.cpp.

◆ initFilePath()

QString QgsEditFormConfig::initFilePath ( ) const

Gets Python external file path for edit form initialization.

Definition at line 312 of file qgseditformconfig.cpp.

◆ initFunction()

QString QgsEditFormConfig::initFunction ( ) const

Gets Python function for edit form initialization.

Will be looked up in a Python file relative to the project folder if it includes a module name or if it's a pure function name it will searched in the Python code set with setInitCode().

Definition at line 290 of file qgseditformconfig.cpp.

◆ invisibleRootContainer()

QgsAttributeEditorContainer * QgsEditFormConfig::invisibleRootContainer ( )

Gets the invisible root container for the drag and drop designer form (EditorLayout::TabLayout).

Since
QGIS 3

Definition at line 191 of file qgseditformconfig.cpp.

◆ labelOnTop()

bool QgsEditFormConfig::labelOnTop ( int  idx) const

If this returns true, the widget at the given index will receive its label on the previous line while if it returns false, the widget will receive its label on the left hand side.

Labeling on top leaves more horizontal space for the widget itself.

Definition at line 247 of file qgseditformconfig.cpp.

◆ layout()

QgsEditFormConfig::EditorLayout QgsEditFormConfig::layout ( ) const

Gets the active layout style for the attribute editor for this layer.

Definition at line 196 of file qgseditformconfig.cpp.

◆ operator=()

QgsEditFormConfig & QgsEditFormConfig::operator= ( const QgsEditFormConfig o)

Definition at line 163 of file qgseditformconfig.cpp.

◆ operator==()

bool QgsEditFormConfig::operator== ( const QgsEditFormConfig o) const

Definition at line 169 of file qgseditformconfig.cpp.

◆ propertyDefinitions()

const QgsPropertiesDefinition & QgsEditFormConfig::propertyDefinitions ( )
static

Returns data defined property definitions.

Since
QGIS 3.14

Definition at line 48 of file qgseditformconfig.cpp.

◆ readOnly()

bool QgsEditFormConfig::readOnly ( int  idx) const

This returns true if the field is manually set to read only or if the field does not support editing like joins or virtual fields.

Definition at line 234 of file qgseditformconfig.cpp.

◆ readXml()

void QgsEditFormConfig::readXml ( const QDomNode &  node,
QgsReadWriteContext context 
)

Read XML information Deserialize on project load.

Definition at line 352 of file qgseditformconfig.cpp.

◆ removeWidgetConfig()

bool QgsEditFormConfig::removeWidgetConfig ( const QString &  widgetName)

Remove the configuration for the editor widget with the given name.

Parameters
widgetNameThe name of the widget.
Returns
true if a configuration has been removed

Definition at line 149 of file qgseditformconfig.cpp.

◆ reuseLastValue()

bool QgsEditFormConfig::reuseLastValue ( int  index) const

If this returns true, the widget at the given index will remember the previously entered value from this QGIS session when creating new features.

See also
setReuseLastValue()
Since
QGIS 3.20

Definition at line 273 of file qgseditformconfig.cpp.

◆ setDataDefinedFieldProperties()

void QgsEditFormConfig::setDataDefinedFieldProperties ( const QString &  fieldName,
const QgsPropertyCollection properties 
)

Set data defined properties for fieldName to properties.

Since
QGIS 3.14

Definition at line 37 of file qgseditformconfig.cpp.

◆ setInitCode()

void QgsEditFormConfig::setInitCode ( const QString &  code)

Set Python code for edit form initialization.

Make sure that you also set the appropriate function name in setInitFunction().

Definition at line 306 of file qgseditformconfig.cpp.

◆ setInitCodeSource()

void QgsEditFormConfig::setInitCodeSource ( const QgsEditFormConfig::PythonInitCodeSource  initCodeSource)

Sets if Python code shall be used for edit form initialization and its origin.

Definition at line 335 of file qgseditformconfig.cpp.

◆ setInitFilePath()

void QgsEditFormConfig::setInitFilePath ( const QString &  filePath)

Set Python external file path for edit form initialization.

Make sure that you also set the appropriate function name in setInitFunction().

Definition at line 317 of file qgseditformconfig.cpp.

◆ setInitFunction()

void QgsEditFormConfig::setInitFunction ( const QString &  function)

Set Python function for edit form initialization.

Will be looked up in a Python file relative to the project folder if it includes a module name or if it's a pure function name it will searched in the Python code set with setInitCode().

Definition at line 295 of file qgseditformconfig.cpp.

◆ setLabelOnTop()

void QgsEditFormConfig::setLabelOnTop ( int  idx,
bool  onTop 
)

If this is set to true, the widget at the given index will receive its label on the previous line while if it is set to false, the widget will receive its label on the left hand side.

Labeling on top leaves more horizontal space for the widget itself.

Definition at line 264 of file qgseditformconfig.cpp.

◆ setLayout()

void QgsEditFormConfig::setLayout ( QgsEditFormConfig::EditorLayout  editorLayout)

Sets the active layout style for the attribute editor for this layer.

Definition at line 201 of file qgseditformconfig.cpp.

◆ setReadOnly()

void QgsEditFormConfig::setReadOnly ( int  idx,
bool  readOnly = true 
)

If set to false, the widget at the given index will be read-only.

Definition at line 255 of file qgseditformconfig.cpp.

◆ setReuseLastValue()

void QgsEditFormConfig::setReuseLastValue ( int  index,
bool  reuse 
)

Sets whether the widget at the given index will remember the previously entered value from this QGIS session when creating new features.

See also
reuseLastValue()
Since
QGIS 3.20

Definition at line 281 of file qgseditformconfig.cpp.

◆ setSuppress()

void QgsEditFormConfig::setSuppress ( QgsEditFormConfig::FeatureFormSuppress  s)

Sets type of feature form pop-up suppression after feature creation (overrides app setting)

Definition at line 346 of file qgseditformconfig.cpp.

◆ setUiForm()

void QgsEditFormConfig::setUiForm ( const QString &  ui)

Set path to the .ui form.

When a string is provided in ui, the layout style will be set to EditorLayout::UiFileLayout, if an empty or a null string is provided, the layout style will be set to EditorLayout::GeneratedLayout. If ui is a URL, a local copy of the file will be made and will be used to create the forms context is provided to save error messages

Definition at line 215 of file qgseditformconfig.cpp.

◆ setWidgetConfig()

bool QgsEditFormConfig::setWidgetConfig ( const QString &  widgetName,
const QVariantMap &  config 
)

Set the editor widget config for a widget which is not for a simple field.

Example

editFormConfig = layer.editFormConfig()
editFormConfig.setWidgetConfig( 'relation_id', { 'nm-rel': 'other_relation' } )
layer.setEditFormConfig(editFormConfig)
Parameters
widgetNameThe name of the widget to configure
configThe config to set for this widget
Returns
false if a field exists with the provided widgetName. In this case QgsVectorLayer::setEditorWidgetSetup should be used.
See also
QgsVectorLayer::setEditorWidgetSetup() for field configurations.

Definition at line 129 of file qgseditformconfig.cpp.

◆ suppress()

QgsEditFormConfig::FeatureFormSuppress QgsEditFormConfig::suppress ( ) const

Type of feature form pop-up suppression after feature creation (overrides app setting)

Definition at line 341 of file qgseditformconfig.cpp.

◆ tabs()

QList< QgsAttributeEditorElement * > QgsEditFormConfig::tabs ( ) const

Returns a list of tabs for EditorLayout::TabLayout obtained from the invisible root container.

Definition at line 180 of file qgseditformconfig.cpp.

◆ uiForm()

QString QgsEditFormConfig::uiForm ( ) const

Returns the path or URL to the .ui form.

Only meaningful with EditorLayout::UiFileLayout

Definition at line 210 of file qgseditformconfig.cpp.

◆ widgetConfig()

QVariantMap QgsEditFormConfig::widgetConfig ( const QString &  widgetName) const

Gets the configuration for the editor widget with the given name.

Parameters
widgetNameThe name of the widget.
Returns
The configuration for the editor widget or an empty config if the field does not exist

Definition at line 53 of file qgseditformconfig.cpp.

◆ writeXml()

void QgsEditFormConfig::writeXml ( QDomNode &  node,
const QgsReadWriteContext context 
) const

Write XML information Serialize on project save.

Definition at line 545 of file qgseditformconfig.cpp.

Friends And Related Function Documentation

◆ QgsVectorLayer

friend class QgsVectorLayer
friend

Definition at line 382 of file qgseditformconfig.h.


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