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




class QgsDatabaseTableModel : QAbstractItemModel
{
%Docstring(signature="appended")
A model containing tables from a database connection.

This class does not automatically subscribe to database updates. Tables
are queried from the database initially upon model construction. In
order to update the listed tbales,
:py:func:`QgsDatabaseTableModel.refresh()` must be manually called.

.. versionadded:: 3.14
%End

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


    enum class CustomRole /BaseType=IntEnum/
    {
      TableName,
      Schema,
      TableFlags,
      Comment,
      CustomInfo,
      WkbType,
      Crs,
      Empty,
    };

    explicit QgsDatabaseTableModel( const QString &provider, const QString &connection, const QString &schema = QString(), QObject *parent /TransferThis/ = 0 );
%Docstring
Constructor for QgsDatabaseTableModel, for the specified ``provider``
and ``connection`` name.

The optional ``schema`` argument can be used to restrict the tables to
those from a specific schema.

.. warning::

   The ``provider`` must support the connection API methods in its :py:class:`QgsProviderMetadata` implementation
   in order for the model to work correctly.
%End

    explicit QgsDatabaseTableModel( QgsAbstractDatabaseProviderConnection *connection /Transfer/, const QString &schema = QString(), QObject *parent /TransferThis/ = 0 );
%Docstring
Constructor for QgsDatabaseTableModel, for the specified ``connection``.

The optional ``schema`` argument can be used to restrict the tables to
those from a specific schema.

Ownership of ``connection`` is transferred to the model.
%End

    virtual QModelIndex parent( const QModelIndex &child ) const;

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

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

    virtual QVariant data( const QModelIndex &index, int role = Qt::DisplayRole ) const;

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


    void setAllowEmptyTable( bool allowEmpty );
%Docstring
Sets whether an optional empty table ("not set") option is present in
the model.

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

    bool allowEmptyTable() const;
%Docstring
Returns ``True`` if the model allows the empty table ("not set") choice.

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

  public slots:

    void refresh();
%Docstring
Refreshes the table list by querying the underlying connection.
%End

};

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