mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -05:00 
			
		
		
		
	reverting 3fb0f66 (followup #45348) Using --no-public-is-protected (default on Windows) also works on Linux and fixes #45331 too
		
			
				
	
	
		
			264 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			264 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
/************************************************************************
 | 
						|
 * This file has been generated automatically from                      *
 | 
						|
 *                                                                      *
 | 
						|
 * src/gui/qgsfieldexpressionwidget.h                                   *
 | 
						|
 *                                                                      *
 | 
						|
 * Do not edit manually ! Edit header and run scripts/sipify.pl again   *
 | 
						|
 ************************************************************************/
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
class QgsFieldExpressionWidget : QWidget
 | 
						|
{
 | 
						|
%Docstring(signature="appended")
 | 
						|
The :py:class:`QgsFieldExpressionWidget` class reates a widget to choose fields and edit expressions
 | 
						|
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).
 | 
						|
 | 
						|
.. versionadded:: 2.14
 | 
						|
%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`
 | 
						|
 | 
						|
.. versionadded:: 3.0
 | 
						|
%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.
 | 
						|
 | 
						|
.. versionadded:: 3.0
 | 
						|
%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.
 | 
						|
 | 
						|
.. versionadded:: 3.0
 | 
						|
%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.
 | 
						|
 | 
						|
.. versionadded:: 3.0
 | 
						|
%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.
 | 
						|
 | 
						|
.. versionadded:: 3.0
 | 
						|
%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.
 | 
						|
 | 
						|
.. versionadded:: 3.0
 | 
						|
%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.pl again   *
 | 
						|
 ************************************************************************/
 |