Skip to content

Commit 326f2e5

Browse files
committedDec 20, 2016
Fix loading legacy snapping configuration
1 parent eed4f0f commit 326f2e5

File tree

1 file changed

+18
-16
lines changed

1 file changed

+18
-16
lines changed
 

‎src/core/qgssnappingconfig.cpp

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -417,25 +417,17 @@ void QgsSnappingConfig::readLegacySettings()
417417

418418
QString snapMode = mProject->readEntry( QStringLiteral( "Digitizing" ), QStringLiteral( "/SnappingMode" ) );
419419

420-
QString snapType = mProject->readEntry( QStringLiteral( "Digitizing" ), QStringLiteral( "/DefaultSnapType" ), QStringLiteral( "off" ) );
421-
if ( snapType == QLatin1String( "to segment" ) )
422-
mType = Segment;
423-
else if ( snapType == QLatin1String( "to vertex and segment" ) )
424-
mType = VertexAndSegment;
425-
else if ( snapType == QLatin1String( "to vertex" ) )
426-
mType = Vertex;
427420
mTolerance = mProject->readDoubleEntry( QStringLiteral( "Digitizing" ), QStringLiteral( "/DefaultSnapTolerance" ), 0 );
428421
mUnits = static_cast< QgsTolerance::UnitType >( mProject->readNumEntry( QStringLiteral( "Digitizing" ), QStringLiteral( "/DefaultSnapToleranceUnit" ), QgsTolerance::ProjectUnits ) );
429422

430423
mIntersectionSnapping = mProject->readNumEntry( QStringLiteral( "Digitizing" ), QStringLiteral( "/IntersectionSnapping" ), 0 );
431424

432425
//read snapping settings from project
433-
bool snappingDefinedInProject, ok;
434-
QStringList layerIdList = mProject->readListEntry( QStringLiteral( "Digitizing" ), QStringLiteral( "/LayerSnappingList" ), QStringList(), &snappingDefinedInProject );
435-
QStringList enabledList = mProject->readListEntry( QStringLiteral( "Digitizing" ), QStringLiteral( "/LayerSnappingEnabledList" ), QStringList(), &ok );
436-
QStringList toleranceList = mProject->readListEntry( QStringLiteral( "Digitizing" ), QStringLiteral( "/LayerSnappingToleranceList" ), QStringList(), &ok );
437-
QStringList toleranceUnitList = mProject->readListEntry( QStringLiteral( "Digitizing" ), QStringLiteral( "/LayerSnappingToleranceUnitList" ), QStringList(), &ok );
438-
QStringList snapToList = mProject->readListEntry( QStringLiteral( "Digitizing" ), QStringLiteral( "/LayerSnapToList" ), QStringList(), &ok );
426+
QStringList layerIdList = mProject->readListEntry( QStringLiteral( "Digitizing" ), QStringLiteral( "/LayerSnappingList" ), QStringList() );
427+
QStringList enabledList = mProject->readListEntry( QStringLiteral( "Digitizing" ), QStringLiteral( "/LayerSnappingEnabledList" ), QStringList() );
428+
QStringList toleranceList = mProject->readListEntry( QStringLiteral( "Digitizing" ), QStringLiteral( "/LayerSnappingToleranceList" ), QStringList() );
429+
QStringList toleranceUnitList = mProject->readListEntry( QStringLiteral( "Digitizing" ), QStringLiteral( "/LayerSnappingToleranceUnitList" ), QStringList() );
430+
QStringList snapToList = mProject->readListEntry( QStringLiteral( "Digitizing" ), QStringLiteral( "/LayerSnapToList" ), QStringList() );
439431

440432
// lists must have the same size, otherwise something is wrong
441433
if ( layerIdList.size() != enabledList.size() ||
@@ -444,9 +436,6 @@ void QgsSnappingConfig::readLegacySettings()
444436
layerIdList.size() != snapToList.size() )
445437
return;
446438

447-
if ( !snappingDefinedInProject )
448-
return; // nothing defined in project - use current layer
449-
450439
// Use snapping information from the project
451440
if ( snapMode == QLatin1String( "current_layer" ) )
452441
mMode = ActiveLayer;
@@ -475,6 +464,19 @@ void QgsSnappingConfig::readLegacySettings()
475464

476465
mIndividualLayerSettings.insert( vlayer, IndividualLayerSettings( *enabledIt == QLatin1String( "enabled" ), t, tolIt->toDouble(), static_cast<QgsTolerance::UnitType>( tolUnitIt->toInt() ) ) );
477466
}
467+
468+
QString snapType = mProject->readEntry( QStringLiteral( "Digitizing" ), QStringLiteral( "/DefaultSnapType" ), QStringLiteral( "off" ) );
469+
mEnabled = true;
470+
if ( snapType == QLatin1String( "to segment" ) )
471+
mType = Segment;
472+
else if ( snapType == QLatin1String( "to vertex and segment" ) )
473+
mType = VertexAndSegment;
474+
else if ( snapType == QLatin1String( "to vertex" ) )
475+
mType = Vertex;
476+
else if ( mMode != AdvancedConfiguration ) // Type is off but mode is advanced
477+
{
478+
mEnabled = false;
479+
}
478480
}
479481

480482
QgsProject* QgsSnappingConfig::project() const

0 commit comments

Comments
 (0)
Please sign in to comment.