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






class QgsProjectionSelectionWidget : QWidget
{
%Docstring(signature="appended")
A widget for selecting a projection.

.. versionadded:: 2.7
%End

%TypeHeaderCode
#include "qgsprojectionselectionwidget.h"
%End
  public:

    enum CrsOption
    {
      LayerCrs,
      ProjectCrs,
      CurrentCrs,
      DefaultCrs,
      RecentCrs,
      CrsNotSet,
    };

    explicit QgsProjectionSelectionWidget( QWidget *parent /TransferThis/ = 0 );
%Docstring
Constructor for QgsProjectionSelectionWidget
%End

    QgsCoordinateReferenceSystem crs() const;
%Docstring
Returns the currently selected CRS for the widget

:return: current CRS
%End

    void setOptionVisible( CrsOption option, bool visible );
%Docstring
Sets whether a predefined CRS option should be shown in the widget.

:param option: CRS option to show/hide
:param visible: whether the option should be shown

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

    bool optionVisible( CrsOption option ) const;
%Docstring
Returns whether the specified CRS option is visible in the widget.

.. seealso:: :py:func:`setOptionVisible`

.. versionadded:: 3.0
%End

    void setNotSetText( const QString &text );
%Docstring
Sets the text to show for the not set option. Note that this option is not shown
by default and must be set visible by calling :py:func:`~QgsProjectionSelectionWidget.setOptionVisible`.

.. versionadded:: 3.0
%End

    void setMessage( const QString &text );
%Docstring
Sets a ``message`` to show in the dialog. If an empty string is
passed, the message will be a generic
'define the CRS for this layer'.

.. versionadded:: 3.0
%End


    bool showAccuracyWarnings() const;
%Docstring
Returns ``True`` if the widget will show a warning to users when they select a CRS which has
low accuracy.

.. seealso:: :py:func:`setShowAccuracyWarnings`

.. versionadded:: 3.20
%End

    void setShowAccuracyWarnings( bool show );
%Docstring
Sets whether the widget will ``show`` warnings to users when they select a CRS which has
low accuracy.

.. seealso:: :py:func:`showAccuracyWarnings`

.. versionadded:: 3.20
%End

    void setSourceEnsemble( const QString &ensemble );
%Docstring
Sets the original source ``ensemble`` datum name.

If set, CRS accuracy warnings will not be shown when the selected CRS in the widget has a matching
ensemble datum, regardless of the ensemble's accuracy.

.. seealso:: :py:func:`sourceEnsemble`

.. versionadded:: 3.20
%End

    QString sourceEnsemble() const;
%Docstring
Returns the original source ensemble datum name.

If set, CRS accuracy warnings will not be shown when the selected CRS in the widget has a matching
ensemble datum, regardless of the ensemble's accuracy.

.. seealso:: :py:func:`setSourceEnsemble`

.. versionadded:: 3.20
%End

  signals:

    void crsChanged( const QgsCoordinateReferenceSystem & );
%Docstring
Emitted when the selected CRS is changed
%End

    void cleared();
%Docstring
Emitted when the not set option is selected.

.. versionadded:: 3.0
%End

  public slots:

    void setCrs( const QgsCoordinateReferenceSystem &crs );
%Docstring
Sets the current CRS for the widget

:param crs: new CRS
%End

    void setLayerCrs( const QgsCoordinateReferenceSystem &crs );
%Docstring
Sets the layer CRS for the widget. If set, this will be added as an option
to the preset CRSes shown in the widget.

:param crs: layer CRS
%End

    void selectCrs();
%Docstring
Opens the dialog for selecting a new CRS
%End

  protected:

    virtual void dragEnterEvent( QDragEnterEvent *event );

    virtual void dragLeaveEvent( QDragLeaveEvent *event );

    virtual void dropEvent( QDropEvent *event );


};

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