@@ -106,6 +106,24 @@ void QgsSnappingDialog::update()
106
106
QSettings myQsettings;
107
107
bool myDockFlag = myQsettings.value ( " /qgis/dockSnapping" , false ).toBool ();
108
108
109
+ double defaultSnapppingTolerance = myQsettings.value ( " /qgis/digitizing/default_snapping_tolerance" , 0 ).toDouble ();
110
+ int defaultSnapppingUnit = myQsettings.value ( " /qgis/digitizing/default_snapping_tolerance_unit" , 0 ).toInt ();
111
+ QString defaultSnappingString = myQsettings.value ( " /qgis/digitizing/default_snap_mode" , " to vertex" ).toString ();
112
+
113
+ int defaultSnappingStringIdx = 0 ;
114
+ if ( defaultSnappingString == " to vertex" )
115
+ {
116
+ defaultSnappingStringIdx = 0 ;
117
+ }
118
+ else if ( defaultSnappingString == " to segment" )
119
+ {
120
+ defaultSnappingStringIdx = 1 ;
121
+ }
122
+ else // to vertex and segment
123
+ {
124
+ defaultSnappingStringIdx = 2 ;
125
+ }
126
+
109
127
bool layerIdListOk, enabledListOk, toleranceListOk, toleranceUnitListOk, snapToListOk;
110
128
QStringList layerIdList = QgsProject::instance ()->readListEntry ( " Digitizing" , " /LayerSnappingList" , &layerIdListOk );
111
129
QStringList enabledList = QgsProject::instance ()->readListEntry ( " Digitizing" , " /LayerSnappingEnabledList" , &enabledListOk );
@@ -135,19 +153,22 @@ void QgsSnappingDialog::update()
135
153
cbxSnapTo->insertItem ( 0 , tr ( " to vertex" ) );
136
154
cbxSnapTo->insertItem ( 1 , tr ( " to segment" ) );
137
155
cbxSnapTo->insertItem ( 2 , tr ( " to vertex and segment" ) );
156
+ cbxSnapTo->setCurrentIndex ( defaultSnappingStringIdx );
138
157
mLayerTreeWidget ->setItemWidget ( item, 2 , cbxSnapTo );
139
158
140
159
// snapping tolerance
141
160
QLineEdit *leTolerance = new QLineEdit ( mLayerTreeWidget );
142
161
QDoubleValidator *validator = new QDoubleValidator ( leTolerance );
143
162
leTolerance->setValidator ( validator );
163
+ leTolerance->setText ( QString::number ( defaultSnapppingTolerance, ' f' ) );
144
164
145
165
mLayerTreeWidget ->setItemWidget ( item, 3 , leTolerance );
146
166
147
167
// snap to vertex/ snap to segment
148
168
QComboBox *cbxUnits = new QComboBox ( mLayerTreeWidget );
149
169
cbxUnits->insertItem ( 0 , tr ( " map units" ) );
150
170
cbxUnits->insertItem ( 1 , tr ( " pixels" ) );
171
+ cbxUnits->setCurrentIndex ( defaultSnapppingUnit );
151
172
mLayerTreeWidget ->setItemWidget ( item, 4 , cbxUnits );
152
173
153
174
int idx = layerIdList.indexOf ( currentVectorLayer->getLayerID () );
@@ -158,7 +179,21 @@ void QgsSnappingDialog::update()
158
179
}
159
180
160
181
cbxEnable->setChecked ( enabledList[ idx ] == " enabled" );
161
- cbxSnapTo->setCurrentIndex ( snapToList[idx].toInt () );
182
+
183
+ int snappingStringIdx = 0 ;
184
+ if ( snapToList[idx] == " to_vertex" )
185
+ {
186
+ snappingStringIdx = 0 ;
187
+ }
188
+ else if ( snapToList[idx] == " to_segment" )
189
+ {
190
+ snappingStringIdx = 1 ;
191
+ }
192
+ else // to vertex and segment
193
+ {
194
+ snappingStringIdx = 2 ;
195
+ }
196
+ cbxSnapTo->setCurrentIndex ( snappingStringIdx );
162
197
leTolerance->setText ( QString::number ( toleranceList[idx].toDouble (), ' f' ) );
163
198
cbxUnits->setCurrentIndex ( toleranceUnitList[idx].toInt () );
164
199
}
@@ -222,7 +257,7 @@ void QgsSnappingDialog::apply()
222
257
223
258
void QgsSnappingDialog::show ()
224
259
{
225
- if ( mDock )
260
+ if ( mDock )
226
261
mDock ->setVisible ( true );
227
262
else
228
263
QDialog::show ();
0 commit comments