21   : QAbstractItemModel( parent )
 
   27   Q_ASSERT( mConnection );
 
   32   : QAbstractItemModel( parent )
 
   33   , mConnection( connection )
 
   35   Q_ASSERT( mConnection );
 
   39 void QgsDatabaseSchemaModel::init()
 
   41   Q_ASSERT( mConnection->capabilities() & QgsAbstractDatabaseProviderConnection::Capability::Schemas );
 
   42   mSchemas = mConnection->schemas();
 
   57   return mSchemas.count() + ( mAllowEmpty ? 1 : 0 );
 
   69   if ( !
index.isValid() )
 
   72   if ( 
index.row() == 0 && mAllowEmpty )
 
   80   const QString schemaName = mSchemas.value( 
index.row() - ( mAllowEmpty ? 1 : 0 ) );
 
   99   if ( hasIndex( row, column, 
parent ) )
 
  101     return createIndex( row, column, row );
 
  104   return QModelIndex();
 
  109   if ( allowEmpty == mAllowEmpty )
 
  114     beginInsertRows( QModelIndex(), 0, 0 );
 
  120     beginRemoveRows( QModelIndex(), 0, 0 );
 
  128   const QStringList newSchemas = mConnection->schemas();
 
  129   const QStringList oldSchemas = mSchemas;
 
  131   for ( 
const QString &oldSchema : oldSchemas )
 
  133     if ( !newSchemas.contains( oldSchema ) )
 
  135       const int r = mSchemas.indexOf( oldSchema ) ;
 
  136       beginRemoveRows( QModelIndex(), r + ( mAllowEmpty ? 1 : 0 ), r + ( mAllowEmpty ? 1 : 0 ) );
 
  137       mSchemas.removeAt( r );
 
  142   for ( 
const QString &newSchema : newSchemas )
 
  144     if ( !mSchemas.contains( newSchema ) )
 
  146       beginInsertRows( QModelIndex(), mSchemas.count() + ( mAllowEmpty ? 1 : 0 ), mSchemas.count() + ( mAllowEmpty ? 1 : 0 ) );
 
  147       mSchemas.append( newSchema );
 
The QgsAbstractDatabaseProviderConnection class provides common functionality for DB based connection...
void setAllowEmptySchema(bool allowEmpty)
Sets whether an optional empty schema ("not set") option is present in the model.
QModelIndex parent(const QModelIndex &child) const override
@ RoleEmpty
Entry is an empty entry.
int rowCount(const QModelIndex &parent=QModelIndex()) const override
QgsDatabaseSchemaModel(const QString &provider, const QString &connection, QObject *parent=nullptr)
Constructor for QgsDatabaseSchemaModel, for the specified provider and connection name.
void refresh()
Refreshes the schema list by querying the underlying connection.
int columnCount(const QModelIndex &parent=QModelIndex()) const override
QModelIndex index(int row, int column, const QModelIndex &parent) const override
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
static QgsProviderRegistry * instance(const QString &pluginPath=QString())
Means of accessing canonical single instance.
QgsProviderMetadata * providerMetadata(const QString &providerKey) const
Returns metadata of the provider or nullptr if not found.