/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/gui/qgsexpressionlineedit.h                                      *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 ************************************************************************/




class QgsExpressionLineEdit : QWidget
{
%Docstring(signature="appended")
The :py:class:`QgsExpressionLineEdit` widget includes a line edit for
entering expressions together with a button to open the expression
creation dialog.

This widget is designed for use in contexts where no layer fields are
available for use in an expression. In contexts where the expression is
directly associated with a layer and fields can be used, then
:py:class:`QgsFieldExpressionWidget` is a more appropriate choice as it
gives users direct access to select fields from a drop-down list.

:py:class:`QgsExpressionLineEdit` also supports a multiline editor mode
which is useful where more space is available for the widget, but where
:py:class:`QgsExpressionBuilderWidget` is too complex or large for use.
%End

%TypeHeaderCode
#include "qgsexpressionlineedit.h"
%End
  public:
    explicit QgsExpressionLineEdit( QWidget *parent /TransferThis/ = 0 );
%Docstring
Constructor for QgsExpressionLineEdit.

:param parent: parent widget
%End
    ~QgsExpressionLineEdit();

    void setExpressionDialogTitle( const QString &title );
%Docstring
Sets the title used in the expression builder dialog

:param title: dialog title

.. seealso:: :py:func:`expressionDialogTitle`
%End

    QString expressionDialogTitle() const;
%Docstring
Returns the title used for the expression dialog.

.. seealso:: :py:func:`setExpressionDialogTitle`
%End

    void setMultiLine( bool multiLine );
%Docstring
Sets whether the widget should show a multiline text editor.

:param multiLine: set to ``True`` to show multiline editor, or ``False``
                  to show single line editor (the default).
%End

    QString expectedOutputFormat() const;
%Docstring
Returns the expected format string, which is shown in the expression
builder dialog for the widget. This is purely a text format and no
expression validation is done against it.

.. seealso:: :py:func:`setExpectedOutputFormat`

.. versionadded:: 3.4
%End

    void setExpectedOutputFormat( const QString &expected );
%Docstring
Set the ``expected`` format string, which is shown in the expression
builder dialog for the widget. This is purely a text format and no
expression validation is done against it.

.. seealso:: :py:func:`expectedOutputFormat`

.. versionadded:: 3.4
%End

    void setGeomCalculator( const QgsDistanceArea &distanceArea );
%Docstring
Set the geometry calculator used in the expression dialog.

:param distanceArea: calculator
%End

    void setLayer( QgsVectorLayer *layer );
%Docstring
Sets a layer associated with the widget. Required in order to get the
fields and values from the layer. This will also automatically register
the layer as expression context generator if no generator has been set
before or the previous layer has been used as generator.

.. seealso:: :py:func:`registerExpressionContextGenerator`
%End

    QString expression() const;
%Docstring
Returns the current expression shown in the widget.

.. seealso:: :py:func:`setExpression`
%End

    bool isValidExpression( QString *expressionError /Out/ = 0 ) const;
%Docstring
Determines if the current expression is valid.



:return: - ``True`` if the current expression is valid.
         - expressionError: any generated error message
%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

  signals:

    void expressionChanged( const QString &expression );
%Docstring
Emitted when the expression is changed.

:param expression: new expression
%End

  public slots:

    void setExpression( const QString &expression );
%Docstring
Sets the current expression to show in the widget.

:param expression: expression string

.. seealso:: :py:func:`expression`
%End

  protected:
    virtual void changeEvent( QEvent *event );


};

/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/gui/qgsexpressionlineedit.h                                      *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 ************************************************************************/
