22   : QAbstractItemModel( parent )
 
   29   Q_ASSERT( mConnection );
 
   34   : QAbstractItemModel( parent )
 
   35   , mConnection( connection )
 
   38   Q_ASSERT( mConnection );
 
   42 void QgsDatabaseTableModel::init()
 
   44   Q_ASSERT( mConnection->capabilities() & QgsAbstractDatabaseProviderConnection::Capability::Tables );
 
   45   mTables = mConnection->tables( mSchema );
 
   60   return mTables.count() + ( mAllowEmpty ? 1 : 0 );
 
   72   if ( !
index.isValid() )
 
   75   if ( 
index.row() == 0 && mAllowEmpty )
 
   83   if ( 
index.row() - ( mAllowEmpty ? 1 : 0 ) >= mTables.count() )
 
  104     case Qt::DecorationRole:
 
  110         if ( role == Qt::DecorationRole )
 
  116       if ( role == Qt::DecorationRole )
 
  151       return static_cast< int >( table.
flags() );
 
  166   if ( hasIndex( row, column, 
parent ) )
 
  168     return createIndex( row, column, row );
 
  171   return QModelIndex();
 
  176   if ( allowEmpty == mAllowEmpty )
 
  181     beginInsertRows( QModelIndex(), 0, 0 );
 
  187     beginRemoveRows( QModelIndex(), 0, 0 );
 
  195   const QList< QgsAbstractDatabaseProviderConnection::TableProperty > newTables = mConnection->tables( mSchema );
 
  196   const QList< QgsAbstractDatabaseProviderConnection::TableProperty > oldTables = mTables;
 
  200     if ( !newTables.contains( oldTable ) )
 
  202       int r = mTables.indexOf( oldTable );
 
  203       beginRemoveRows( QModelIndex(), r + ( mAllowEmpty ? 1 : 0 ), r + ( mAllowEmpty ? 1 : 0 ) );
 
  204       mTables.removeAt( r );
 
  211     if ( !mTables.contains( newTable ) )
 
  213       beginInsertRows( QModelIndex(), mTables.count() + ( mAllowEmpty ? 1 : 0 ), mTables.count() + ( mAllowEmpty ? 1 : 0 ) );
 
  214       mTables.append( newTable );