diff --git a/python/core/auto_generated/layertree/qgslayertreefilterproxymodel.sip.in b/python/core/auto_generated/layertree/qgslayertreefilterproxymodel.sip.in index c325e99f405f..adfa10b17bda 100644 --- a/python/core/auto_generated/layertree/qgslayertreefilterproxymodel.sip.in +++ b/python/core/auto_generated/layertree/qgslayertreefilterproxymodel.sip.in @@ -58,11 +58,6 @@ Rerturns the layer tree model void setLayerTreeModel( QgsLayerTreeModel *layerTreeModel ); %Docstring Sets the layer tree model -%End - - void resetLayerTreeModel(); -%Docstring -This will refresh the model %End void setFilters( const QgsMapLayerProxyModel::Filters &filters ); diff --git a/src/core/layertree/qgslayertreefilterproxymodel.cpp b/src/core/layertree/qgslayertreefilterproxymodel.cpp index d38379ad2ed7..6120ced91915 100644 --- a/src/core/layertree/qgslayertreefilterproxymodel.cpp +++ b/src/core/layertree/qgslayertreefilterproxymodel.cpp @@ -22,11 +22,16 @@ QgsLayerTreeFilterProxyModel::QgsLayerTreeFilterProxyModel( QObject *parent ) : QSortFilterProxyModel( parent ) { - connect( QgsProject::instance(), &QgsProject::readProject, this, [ = ] {resetLayerTreeModel();} ); + connect( QgsProject::instance(), &QgsProject::readProject, this, [ = ] + { + beginResetModel(); + endResetModel(); + } ); } void QgsLayerTreeFilterProxyModel::setCheckedLayers( const QList layers ) { + // do not use invalidate() since it's not the filter which changes but the data beginResetModel(); mCheckedLayers = layers; endResetModel(); @@ -101,17 +106,10 @@ void QgsLayerTreeFilterProxyModel::setLayerTreeModel( QgsLayerTreeModel *layerTr QSortFilterProxyModel::setSourceModel( layerTreeModel ); } -void QgsLayerTreeFilterProxyModel::resetLayerTreeModel() -{ - beginResetModel(); - endResetModel(); -} - void QgsLayerTreeFilterProxyModel::setFilters( const QgsMapLayerProxyModel::Filters &filters ) { - beginResetModel(); mFilters = filters; - endResetModel(); + invalidateFilter(); } bool QgsLayerTreeFilterProxyModel::filterAcceptsRow( int sourceRow, const QModelIndex &sourceParent ) const @@ -280,9 +278,9 @@ bool QgsLayerTreeFilterProxyModel::setData( const QModelIndex &index, const QVar return false; } if ( value.toInt() == Qt::Checked ) - setLayerChecked( layer, true ); + setLayerCheckedPrivate( layer, true ); else if ( value.toInt() == Qt::Unchecked ) - setLayerChecked( layer, false ); + setLayerCheckedPrivate( layer, false ); else Q_ASSERT( false ); // expected checked or unchecked } diff --git a/src/core/layertree/qgslayertreefilterproxymodel.h b/src/core/layertree/qgslayertreefilterproxymodel.h index 6de183236f6f..24d473e251f8 100644 --- a/src/core/layertree/qgslayertreefilterproxymodel.h +++ b/src/core/layertree/qgslayertreefilterproxymodel.h @@ -61,9 +61,6 @@ class CORE_EXPORT QgsLayerTreeFilterProxyModel : public QSortFilterProxyModel //! Sets the layer tree model void setLayerTreeModel( QgsLayerTreeModel *layerTreeModel ); - //! This will refresh the model - void resetLayerTreeModel(); - /** * Defines the type layers (vector, raster, etc) shown in the tree * If the list is empty, all types are shown. diff --git a/src/core/qgsmaplayerproxymodel.cpp b/src/core/qgsmaplayerproxymodel.cpp index 67704e4e5d04..92739ece4706 100644 --- a/src/core/qgsmaplayerproxymodel.cpp +++ b/src/core/qgsmaplayerproxymodel.cpp @@ -45,6 +45,9 @@ QgsMapLayerProxyModel *QgsMapLayerProxyModel::setFilters( Filters filters ) bool QgsMapLayerProxyModel::layerMatchesFilters( const QgsMapLayer *layer, const Filters &filters ) { + if ( filters.testFlag( All ) ) + return true; + // layer type if ( ( filters.testFlag( RasterLayer ) && layer->type() == QgsMapLayerType::RasterLayer ) || ( filters.testFlag( VectorLayer ) && layer->type() == QgsMapLayerType::VectorLayer ) || @@ -61,7 +64,7 @@ bool QgsMapLayerProxyModel::layerMatchesFilters( const QgsMapLayer *layer, const filters.testFlag( HasGeometry ); if ( detectGeometry && layer->type() == QgsMapLayerType::VectorLayer ) { - if ( QgsVectorLayer *vl = qobject_cast< QgsVectorLayer *>( layer ) ) + if ( const QgsVectorLayer *vl = qobject_cast( layer ) ) { if ( filters.testFlag( HasGeometry ) && vl->isSpatial() ) return true; diff --git a/src/ui/qgsvectorlayerpropertiesbase.ui b/src/ui/qgsvectorlayerpropertiesbase.ui index 72ce00cbbbb6..6ae8e7e660f8 100644 --- a/src/ui/qgsvectorlayerpropertiesbase.ui +++ b/src/ui/qgsvectorlayerpropertiesbase.ui @@ -363,7 +363,7 @@ - 0 + 18 @@ -439,8 +439,8 @@ 0 0 - 653 - 679 + 644 + 664 @@ -727,8 +727,8 @@ border-radius: 2px; 0 0 - 653 - 679 + 100 + 30 @@ -944,8 +944,8 @@ border-radius: 2px; 0 0 - 653 - 679 + 199 + 119 @@ -1339,8 +1339,8 @@ border-radius: 2px; 0 0 - 653 - 679 + 100 + 30 @@ -1541,8 +1541,8 @@ border-radius: 2px; 0 0 - 673 - 665 + 652 + 368 @@ -1954,7 +1954,7 @@ border-radius: 2px; - + true @@ -2033,8 +2033,8 @@ border-radius: 2px; 0 0 - 639 - 797 + 644 + 808 @@ -2588,12 +2588,6 @@ border-radius: 2px;
qgsfieldexpressionwidget.h
1 - - QgsLayerTreeView - QTreeView -
qgslayertreeview.h
- 1 -
QgsCodeEditorHTML QWidget