QGIS/python/gui/auto_generated/qgsfieldexpressionwidget.sip.in
Nyall Dawson 3f6b490218 Sipify
2025-04-02 11:11:10 +10:00

344 lines
10 KiB
Plaintext

/************************************************************************
* This file has been generated automatically from *
* *
* src/gui/qgsfieldexpressionwidget.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/
class QgsFieldExpressionWidget : QWidget
{
%Docstring(signature="appended")
A widget for selection of layer fields or expression creation.
It contains a combo box to display the fields and expression and a
button to open the expression dialog. The combo box is editable,
allowing expressions to be edited inline.
The validity of the expression is checked live on key press, invalid
expressions are displayed in red. The expression will be added to the
model (and the fieldChanged signals emitted) only when editing in the
line edit is finished (focus lost, enter key pressed).
%End
%TypeHeaderCode
#include "qgsfieldexpressionwidget.h"
%End
public:
explicit QgsFieldExpressionWidget( QWidget *parent /TransferThis/ = 0 );
%Docstring
QgsFieldExpressionWidget creates a widget with a combo box to display
the fields and expression and a button to open the expression dialog
%End
void setExpressionDialogTitle( const QString &title );
%Docstring
define the title used in the expression dialog
%End
void appendScope( QgsExpressionContextScope *scope /Transfer/ );
%Docstring
Appends a scope to the current expression context.
:param scope: The scope to add.
.. versionadded:: 3.2
%End
const QString expressionDialogTitle();
%Docstring
Returns the title used for the expression dialog
%End
void setFilters( QgsFieldProxyModel::Filters filters );
%Docstring
setFilters allows filtering according to the type of field
%End
void setAllowEmptyFieldName( bool allowEmpty );
%Docstring
Sets whether an optional empty field ("not set") option is shown in the
combo box.
.. seealso:: :py:func:`allowEmptyFieldName`
.. versionadded:: 3.4.6
%End
bool allowEmptyFieldName() const;
%Docstring
Returns ``True`` if the combo box allows the empty field ("not set")
choice.
.. seealso:: :py:func:`setAllowEmptyFieldName`
.. versionadded:: 3.4.6
%End
void setLeftHandButtonStyle( bool isLeft );
QgsFieldProxyModel::Filters filters() const;
%Docstring
currently used filter on list of fields
%End
void setGeomCalculator( const QgsDistanceArea &da );
%Docstring
Sets the geometry calculator used in the expression dialog
%End
QString currentField( bool *isExpression = 0, bool *isValid = 0 ) const;
%Docstring
currentField returns the currently selected field or expression if
allowed
:param isExpression: determines if the string returned is the name of a
field or an expression
:param isValid: determines if the expression (or field) returned is
valid
%End
bool isValidExpression( QString *expressionError = 0 ) const;
%Docstring
Returns ``True`` if the current expression is valid
%End
bool isExpression() const;
%Docstring
If the content is not just a simple field this method will return
``True``.
%End
QString currentText() const;
%Docstring
Returns the current text that is set in the expression area
%End
QString asExpression() const;
%Docstring
Returns the currently selected field or expression. If a field is
currently selected, the returned value will be converted to a valid
expression referencing this field (ie enclosing the field name with
appropriate quotations).
%End
QString expression() const;
%Docstring
Returns the currently selected field or expression. If a field is
currently selected, the returned value will be converted to a valid
expression referencing this field (ie enclosing the field name with
appropriate quotations).
Alias for :py:func:`~QgsFieldExpressionWidget.asExpression`
%End
QgsVectorLayer *layer() const;
%Docstring
Returns the layer currently associated with the widget.
.. seealso:: :py:func:`setLayer`
%End
void registerExpressionContextGenerator( const QgsExpressionContextGenerator *generator );
%Docstring
Register an expression context generator class that will be used to
retrieve an expression context for the widget.
:param generator: A :py:class:`QgsExpressionContextGenerator` class that
will be used to create an expression context when
required.
%End
void setCustomPreviewGenerator( const QString &label, const QList<QPair<QString, QVariant>> &choices, SIP_PYCALLABLE );
%Docstring
Sets the widget to run using a custom preview generator.
In this mode, the widget will call a callback function to generate a new
:py:class:`QgsExpressionContext` as the previewed object changes. This
can be used to provide custom preview values for different objects (i.e.
for objects which aren't vector layer features).
:param label: The label to display for the combo box presenting choices
of objects. This should be a representative name, eg
"Band" if the widget is showing choices of raster layer
bands
:param choices: A list of choices to present to the user. Each choice is
a pair of a human-readable label and a QVariant
representing the object to preview.
:param previewContextGenerator: A function which takes a QVariant
representing the object to preview, and
returns a
:py:class:`QgsExpressionContext` to use
for previewing the object.
.. versionadded:: 3.38
%End
%MethodCode
Py_XINCREF( a2 );
Py_BEGIN_ALLOW_THREADS
sipCpp->setCustomPreviewGenerator( *a0, *a1, [a2]( const QVariant &value ) -> QgsExpressionContext {
QgsExpressionContext res;
SIP_BLOCK_THREADS
PyObject *s = sipCallMethod( NULL, a2, "D", &value, sipType_QVariant, NULL );
int state;
int sipIsError = 0;
QgsExpressionContext *t1 = reinterpret_cast<QgsExpressionContext *>( sipConvertToType( s, sipType_QgsExpressionContext, 0, SIP_NOT_NONE, &state, &sipIsError ) );
if ( sipIsError == 0 )
{
res = QgsExpressionContext( *t1 );
}
sipReleaseType( t1, sipType_QgsExpressionContext, state );
SIP_UNBLOCK_THREADS
return res;
} );
Py_END_ALLOW_THREADS
%End
bool allowEvalErrors() const;
%Docstring
Allow accepting expressions with evaluation errors. This can be useful
when we are not able to provide an expression context of which we are
sure it's completely populated.
%End
void setAllowEvalErrors( bool allowEvalErrors );
%Docstring
Allow accepting expressions with evaluation errors. This can be useful
when we are not able to provide an expression context of which we are
sure it's completely populated.
%End
bool buttonVisible() const;
%Docstring
Returns the visibility of the button
If button is hidden, the widget essentially becomes an editable combo
box
.. versionadded:: 3.36
%End
void setButtonVisible( bool visible );
%Docstring
Set the visibility of the button
If button is hidden, the widget essentially becomes an editable combo
box
.. versionadded:: 3.36
%End
signals:
void fieldChanged( const QString &fieldName );
%Docstring
Emitted when the currently selected field changes.
%End
void fieldChanged( const QString &fieldName, bool isValid );
%Docstring
fieldChanged signal with indication of the validity of the expression
%End
void allowEvalErrorsChanged();
%Docstring
Allow accepting expressions with evaluation errors. This can be useful
when we are not able to provide an expression context of which we are
sure it's completely populated.
%End
void buttonVisibleChanged();
%Docstring
Emitted when the button visibility changes
.. versionadded:: 3.36
%End
public slots:
void setLayer( QgsMapLayer *layer );
%Docstring
Sets the layer used to display the fields and expression.
.. seealso:: :py:func:`layer`
%End
void setRow( int row );
%Docstring
sets the current row in the widget
%End
void setField( const QString &fieldName );
%Docstring
sets the current field or expression in the widget
%End
void setFields( const QgsFields &fields );
%Docstring
Sets the fields used in the widget to ``fields``, this allows the widget
to work without a layer.
.. versionadded:: 3.14
%End
void setExpression( const QString &expression );
%Docstring
Sets the current expression text and if applicable also the field. Alias
for setField.
%End
protected slots:
void editExpression();
%Docstring
open the expression dialog to edit the current or add a new expression
%End
void expressionEdited( const QString &expression );
%Docstring
when expression is edited by the user in the line edit, it will be
checked for validity
%End
void expressionEditingFinished();
%Docstring
when expression has been edited (finished) it will be added to the model
%End
void currentFieldChanged();
void updateLineEditStyle( const QString &expression = QString() );
%Docstring
updateLineEditStyle will re-style (color/font) the line edit depending
on content and status
:param expression: if expression is given it will be evaluated for the
given string, otherwise it takes current expression
from the model
%End
bool isExpressionValid( const QString &expressionStr );
protected:
virtual void changeEvent( QEvent *event );
virtual bool eventFilter( QObject *watched, QEvent *event );
};
/************************************************************************
* This file has been generated automatically from *
* *
* src/gui/qgsfieldexpressionwidget.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/