Added method to clear all individual layer settings in QgsSnappingConfig

This commit is contained in:
uclaros 2020-09-25 00:45:20 +03:00 committed by Nyall Dawson
parent 138762146e
commit 9953570e30
4 changed files with 20 additions and 1 deletions

View File

@ -411,6 +411,13 @@ Returns individual layer snappings settings (applied if mode is AdvancedConfigur
void setIndividualLayerSettings( QgsVectorLayer *vl, const QgsSnappingConfig::IndividualLayerSettings &individualLayerSettings );
%Docstring
Sets individual layer snappings settings (applied if mode is AdvancedConfiguration)
%End
void clearIndividualLayerSettings();
%Docstring
Removes all individual layer snapping settings
.. versionadded:: 3.16
%End
bool operator!= ( const QgsSnappingConfig &other ) const;

View File

@ -797,7 +797,7 @@ QgsPointLocator::Match QgsVertexTool::snapToEditableLayer( QgsMapMouseEvent *e )
config.setEnabled( true );
config.setMode( QgsSnappingConfig::AdvancedConfiguration );
config.setIntersectionSnapping( false ); // only snap to layers
config.individualLayerSettings().clear();
config.clearIndividualLayerSettings();
typedef QHash<QgsVectorLayer *, QgsSnappingConfig::IndividualLayerSettings> SettingsHashMap;
SettingsHashMap oldLayerSettings = oldConfig.individualLayerSettings();

View File

@ -373,6 +373,11 @@ QgsSnappingConfig::IndividualLayerSettings QgsSnappingConfig::individualLayerSet
}
}
void QgsSnappingConfig::clearIndividualLayerSettings()
{
mIndividualLayerSettings.clear();
}
void QgsSnappingConfig::setIndividualLayerSettings( QgsVectorLayer *vl, const IndividualLayerSettings &individualLayerSettings )
{
if ( !vl || !vl->isSpatial() || mIndividualLayerSettings.value( vl ) == individualLayerSettings )

View File

@ -401,6 +401,13 @@ class CORE_EXPORT QgsSnappingConfig
//! Sets individual layer snappings settings (applied if mode is AdvancedConfiguration)
void setIndividualLayerSettings( QgsVectorLayer *vl, const QgsSnappingConfig::IndividualLayerSettings &individualLayerSettings );
/**
* Removes all individual layer snapping settings
*
* \since QGIS 3.16
*/
void clearIndividualLayerSettings();
/**
* Compare this configuration to other.
*/