Skip to content

Commit 31c79da

Browse files
committedDec 1, 2017
Don't crash when project has no layers
This only crashes when Qt is built in debug mode because there is an assert in the item model class that checks for index range validity.
1 parent 19b062c commit 31c79da

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed
 

‎src/core/qgsmaplayermodel.cpp

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -154,17 +154,20 @@ void QgsMapLayerModel::removeLayers( const QStringList &layerIds )
154154

155155
void QgsMapLayerModel::addLayers( const QList<QgsMapLayer *> &layers )
156156
{
157-
int offset = 0;
158-
if ( mAllowEmpty )
159-
offset++;
160-
161-
beginInsertRows( QModelIndex(), mLayers.count() + offset, mLayers.count() + layers.count() - 1 + offset );
162-
Q_FOREACH ( QgsMapLayer *layer, layers )
157+
if ( layers.count( ) )
163158
{
164-
mLayers.append( layer );
165-
mLayersChecked.insert( layer->id(), Qt::Unchecked );
159+
int offset = 0;
160+
if ( mAllowEmpty )
161+
offset++;
162+
163+
beginInsertRows( QModelIndex(), mLayers.count() + offset, mLayers.count() + layers.count() - 1 + offset );
164+
Q_FOREACH ( QgsMapLayer *layer, layers )
165+
{
166+
mLayers.append( layer );
167+
mLayersChecked.insert( layer->id(), Qt::Unchecked );
168+
}
169+
endInsertRows();
166170
}
167-
endInsertRows();
168171
}
169172

170173
QModelIndex QgsMapLayerModel::index( int row, int column, const QModelIndex &parent ) const

0 commit comments

Comments
 (0)
Please sign in to comment.