Skip to content

Commit 6590d69

Browse files
committedJul 11, 2020
Browser proxy model: hide layer operations if layer filter is set
This is to avoid layer operations to be shown when selecting data source
1 parent 462ce2f commit 6590d69

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed
 

‎src/core/qgsbrowserproxymodel.cpp

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -289,17 +289,24 @@ void QgsBrowserProxyModel::setShownDataItemProviderKeyFilter( const QStringList
289289
{
290290
mShownDataItemsKeys = filter;
291291
invalidateFilter();
292-
293292
}
294293

295294

296295
bool QgsBrowserProxyModel::hasChildren( const QModelIndex &parent ) const
297296
{
298297
bool isFertile { QSortFilterProxyModel::hasChildren( parent ) };
299-
if ( isFertile && ! mShowLayers && parent.isValid() )
298+
if ( isFertile && parent.isValid() )
300299
{
301300
QgsDataItem *item = dataItem( parent );
302-
return ! item->layerCollection();
301+
if ( ! mShowLayers )
302+
{
303+
return ! item->layerCollection();
304+
}
305+
// Hide everything below layers if filter is set
306+
else if ( mFilterByLayerType && qobject_cast< QgsLayerItem * >( item ) )
307+
{
308+
return false;
309+
}
303310
}
304311
return isFertile;
305312
}

0 commit comments

Comments
 (0)
Please sign in to comment.