@@ -120,13 +120,12 @@ QgsProjectProperties::QgsProjectProperties( QgsMapCanvas* mapCanvas, QWidget *pa
120
120
mAvoidIntersectionsCheckBox ->setCheckState ( Qt::Unchecked );
121
121
}
122
122
123
- bool ok;
124
- bool toleranceUnitOk; // 1.0 project files may not have a unit entry
125
- QStringList layerIdList = QgsProject::instance ()->readListEntry ( " Digitizing" , " /LayerSnappingList" , &ok );
126
- QStringList enabledList = QgsProject::instance ()->readListEntry ( " Digitizing" , " /LayerSnappingEnabledList" , &ok );
127
- QStringList toleranceList = QgsProject::instance ()->readListEntry ( " Digitizing" , " /LayerSnappingToleranceList" , &ok );
128
- QStringList toleranceUnitList = QgsProject::instance ()->readListEntry ( " Digitizing" , " /LayerSnappingToleranceUnitList" , &toleranceUnitOk );
129
- QStringList snapToList = QgsProject::instance ()->readListEntry ( " Digitizing" , " /LayerSnapToList" , &ok );
123
+ bool layerIdListOk, enabledListOk, toleranceListOk, toleranceUnitListOk, snapToListOk;
124
+ QStringList layerIdList = QgsProject::instance ()->readListEntry ( " Digitizing" , " /LayerSnappingList" , &layerIdListOk );
125
+ QStringList enabledList = QgsProject::instance ()->readListEntry ( " Digitizing" , " /LayerSnappingEnabledList" , &enabledListOk );
126
+ QStringList toleranceList = QgsProject::instance ()->readListEntry ( " Digitizing" , " /LayerSnappingToleranceList" , & toleranceListOk);
127
+ QStringList toleranceUnitList = QgsProject::instance ()->readListEntry ( " Digitizing" , " /LayerSnappingToleranceUnitList" , & toleranceUnitListOk);
128
+ QStringList snapToList = QgsProject::instance ()->readListEntry ( " Digitizing" , " /LayerSnapToList" , &snapToListOk );
130
129
131
130
QStringList::const_iterator idIter = layerIdList.constBegin ();
132
131
QStringList::const_iterator enabledIter = enabledList.constBegin ();
@@ -139,33 +138,62 @@ QgsProjectProperties::QgsProjectProperties( QgsMapCanvas* mapCanvas, QWidget *pa
139
138
// create the new layer entries
140
139
for ( ; idIter != layerIdList.constEnd (); ++idIter, ++enabledIter, ++tolIter, ++tolUnitIter, ++snapToIter )
141
140
{
142
- currentLayer = QgsMapLayerRegistry::instance ()->mapLayer ( *idIter );
141
+ if (layerIdListOk)
142
+ {
143
+ currentLayer = QgsMapLayerRegistry::instance ()->mapLayer ( *idIter );
144
+ }
145
+ else
146
+ {
147
+ break ;
148
+ }
149
+
143
150
if ( currentLayer )
144
151
{
145
152
LayerEntry newEntry;
146
153
newEntry.layerName = currentLayer->name ();
147
- if (( *enabledIter ) == " enabled" )
154
+
155
+ newEntry.checked = false ;
156
+ if (enabledListOk && enabledIter != enabledList.constEnd ())
148
157
{
149
- newEntry.checked = true ;
158
+ if (( *enabledIter ) == " enabled" )
159
+ {
160
+ newEntry.checked = true ;
161
+ }
150
162
}
151
- else
163
+
164
+ // snap to vertex / segment / vertex and segment
165
+ if (snapToListOk &&snapToIter != snapToList.constEnd ())
152
166
{
153
- newEntry.checked = false ;
167
+ if (( *snapToIter ) == " to_vertex" )
168
+ {
169
+ newEntry.snapTo = 0 ;
170
+ }
171
+ else if (( *snapToIter ) == " to_segment" )
172
+ {
173
+ newEntry.snapTo = 1 ;
174
+ }
175
+ else // to vertex and segment
176
+ {
177
+ newEntry.snapTo = 2 ;
178
+ }
154
179
}
155
- if (( *snapToIter ) == " to_vertex " )
180
+ else
156
181
{
157
182
newEntry.snapTo = 0 ;
158
183
}
159
- else if (( *snapToIter ) == " to_segment" )
184
+
185
+ // snap tolerance
186
+ if (toleranceListOk && tolIter != toleranceList.constEnd ())
160
187
{
161
- newEntry.snapTo = 1 ;
188
+ newEntry.tolerance = tolIter-> toDouble () ;
162
189
}
163
- else // to vertex and segment
190
+ else
164
191
{
165
- newEntry.snapTo = 2 ;
192
+ newEntry.tolerance = 0 ;
166
193
}
167
- newEntry.tolerance = tolIter->toDouble ();
168
- if ( toleranceUnitOk )
194
+
195
+ // snap tolerance unit
196
+ if (toleranceUnitListOk && tolUnitIter != toleranceUnitList.constEnd ())
169
197
{
170
198
newEntry.toleranceUnit = tolUnitIter->toInt ();
171
199
}
0 commit comments