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






class QgsCoordinateReferenceSystemModel : QAbstractItemModel
{
%Docstring(signature="appended")
A tree model for display of known coordinate reference systems.

.. versionadded:: 3.34
%End

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

    enum class CustomRole /BaseType=IntEnum/
    {
      NodeType,
      Name,
      AuthId,
      Deprecated,
      Type,
      GroupId,
      Wkt,
      Proj,
      Group,
      Projection,
    };

    QgsCoordinateReferenceSystemModel( QObject *parent /TransferThis/ = 0 );
%Docstring
Constructor for QgsCoordinateReferenceSystemModel, with the specified
``parent`` object.
%End

    virtual Qt::ItemFlags flags( const QModelIndex &index ) const;

    virtual QVariant data( const QModelIndex &index, int role ) const;

    virtual QVariant headerData( int section, Qt::Orientation orientation, int role ) const;

    virtual int rowCount( const QModelIndex &parent = QModelIndex() ) const;

    virtual int columnCount( const QModelIndex & = QModelIndex() ) const;

    virtual QModelIndex index( int row, int column, const QModelIndex &parent = QModelIndex() ) const;

    virtual QModelIndex parent( const QModelIndex &index ) const;


    QModelIndex addCustomCrs( const QgsCoordinateReferenceSystem &crs );
%Docstring
Adds a custom ``crs`` to the model.

This method can be used to add CRS which aren't present in either the
standard PROJ SRS database or the user's custom CRS database to the
model.
%End

    QModelIndex authIdToIndex( const QString &authId ) const;
%Docstring
Retrieves the model index corresponding to a CRS with the specified
``authId``.

Returns an invalid index if the CRS was not found.
%End

};


class QgsCoordinateReferenceSystemProxyModel : QSortFilterProxyModel
{
%Docstring(signature="appended")
A sort/filter proxy model for coordinate reference systems.

.. versionadded:: 3.34
%End

%TypeHeaderCode
#include "qgscoordinatereferencesystemmodel.h"
%End
  public:
    enum Filter /BaseType=IntEnum/
    {
      FilterHorizontal,
      FilterVertical,
      FilterCompound,
    };
    typedef QFlags<QgsCoordinateReferenceSystemProxyModel::Filter> Filters;


    explicit QgsCoordinateReferenceSystemProxyModel( QObject *parent /TransferThis/ = 0 );
%Docstring
Constructor for QgsCoordinateReferenceSystemProxyModel, with the given
``parent`` object.
%End

    QgsCoordinateReferenceSystemModel *coordinateReferenceSystemModel();
%Docstring
Returns the underlying source model.
%End


    void setFilters( QgsCoordinateReferenceSystemProxyModel::Filters filters );
%Docstring
Set ``filters`` that affect how CRS are filtered.

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

    Filters filters() const;
%Docstring
Returns any filters that affect how CRS are filtered.

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

    void setFilterString( const QString &filter );
%Docstring
Sets a ``filter`` string, such that only coordinate reference systems
matching the specified string will be shown.

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

    QString filterString() const;
%Docstring
Returns the current filter string, if set.

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

    void setFilterAuthIds( const QSet<QString> &filter );
%Docstring
Sets a ``filter`` list of CRS auth ID strings, such that only coordinate
reference systems matching the specified auth IDs will be shown.

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

    QSet<QString> filterAuthIds() const;
%Docstring
Returns the current filter list of auth ID strings, if set.

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

    void setFilterDeprecated( bool filter );
%Docstring
Sets whether deprecated CRS should be filtered from the results.

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

    bool filterDeprecated() const;
%Docstring
Returns whether deprecated CRS will be filtered from the results.

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

    virtual bool filterAcceptsRow( int sourceRow, const QModelIndex &sourceParent ) const;

    virtual bool lessThan( const QModelIndex &left, const QModelIndex &right ) const;


};

QFlags<QgsCoordinateReferenceSystemProxyModel::Filter> operator|(QgsCoordinateReferenceSystemProxyModel::Filter f1, QFlags<QgsCoordinateReferenceSystemProxyModel::Filter> f2);



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