mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-16 00:03:12 -04:00
Add a new filter for WritableLayers to QgsMapLayerProxyModel
This commit is contained in:
parent
93e73ac66f
commit
ae7b657da3
@ -20,6 +20,7 @@ class QgsMapLayerProxyModel : QSortFilterProxyModel
|
||||
HasGeometry,
|
||||
VectorLayer,
|
||||
PluginLayer,
|
||||
WritableLayer,
|
||||
All
|
||||
};
|
||||
typedef QFlags<QgsMapLayerProxyModel::Filter> Filters;
|
||||
|
@ -84,6 +84,11 @@ bool QgsMapLayerProxyModel::filterAcceptsRow( int source_row, const QModelIndex
|
||||
if ( mExceptList.contains( layer ) )
|
||||
return false;
|
||||
|
||||
QgsVectorLayer* vl = qobject_cast<QgsVectorLayer*>( layer );
|
||||
|
||||
if ( mFilters.testFlag( WritableLayer ) && layer->readOnly() )
|
||||
return false;
|
||||
|
||||
// layer type
|
||||
if (( mFilters.testFlag( RasterLayer ) && layer->type() == QgsMapLayer::RasterLayer ) ||
|
||||
( mFilters.testFlag( VectorLayer ) && layer->type() == QgsMapLayer::VectorLayer ) ||
|
||||
@ -98,7 +103,6 @@ bool QgsMapLayerProxyModel::filterAcceptsRow( int source_row, const QModelIndex
|
||||
mFilters.testFlag( HasGeometry );
|
||||
if ( detectGeometry && layer->type() == QgsMapLayer::VectorLayer )
|
||||
{
|
||||
QgsVectorLayer* vl = dynamic_cast<QgsVectorLayer*>( layer );
|
||||
if ( vl )
|
||||
{
|
||||
if ( mFilters.testFlag( HasGeometry ) && vl->hasGeometryType() )
|
||||
|
@ -46,6 +46,7 @@ class GUI_EXPORT QgsMapLayerProxyModel : public QSortFilterProxyModel
|
||||
HasGeometry = PointLayer | LineLayer | PolygonLayer,
|
||||
VectorLayer = NoGeometry | HasGeometry,
|
||||
PluginLayer = 32,
|
||||
WritableLayer = 64,
|
||||
All = RasterLayer | VectorLayer | PluginLayer
|
||||
};
|
||||
Q_DECLARE_FLAGS( Filters, Filter )
|
||||
|
Loading…
x
Reference in New Issue
Block a user