Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Added method to clear all individual layer settings in QgsSnappingConfig
  • Loading branch information
uclaros authored and nyalldawson committed Sep 26, 2020
1 parent 1387621 commit 9953570
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 1 deletion.
7 changes: 7 additions & 0 deletions python/core/auto_generated/qgssnappingconfig.sip.in
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion src/app/vertextool/qgsvertextool.cpp
Expand Up @@ -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();
Expand Down
5 changes: 5 additions & 0 deletions src/core/qgssnappingconfig.cpp
Expand Up @@ -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 )
Expand Down
7 changes: 7 additions & 0 deletions src/core/qgssnappingconfig.h
Expand Up @@ -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.
*/
Expand Down

0 comments on commit 9953570

Please sign in to comment.