mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-07 00:15:48 -04:00
344 lines
10 KiB
Plaintext
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 *
|
|
************************************************************************/
|