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 );