@@ -106,6 +106,24 @@ void QgsSnappingDialog::update()
106106 QSettings myQsettings;
107107 bool myDockFlag = myQsettings.value ( " /qgis/dockSnapping" , false ).toBool ();
108108
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+
109127 bool layerIdListOk, enabledListOk, toleranceListOk, toleranceUnitListOk, snapToListOk;
110128 QStringList layerIdList = QgsProject::instance ()->readListEntry ( " Digitizing" , " /LayerSnappingList" , &layerIdListOk );
111129 QStringList enabledList = QgsProject::instance ()->readListEntry ( " Digitizing" , " /LayerSnappingEnabledList" , &enabledListOk );
@@ -135,19 +153,22 @@ void QgsSnappingDialog::update()
135153 cbxSnapTo->insertItem ( 0 , tr ( " to vertex" ) );
136154 cbxSnapTo->insertItem ( 1 , tr ( " to segment" ) );
137155 cbxSnapTo->insertItem ( 2 , tr ( " to vertex and segment" ) );
156+ cbxSnapTo->setCurrentIndex ( defaultSnappingStringIdx );
138157 mLayerTreeWidget ->setItemWidget ( item, 2 , cbxSnapTo );
139158
140159 // snapping tolerance
141160 QLineEdit *leTolerance = new QLineEdit ( mLayerTreeWidget );
142161 QDoubleValidator *validator = new QDoubleValidator ( leTolerance );
143162 leTolerance->setValidator ( validator );
163+ leTolerance->setText ( QString::number ( defaultSnapppingTolerance, ' f' ) );
144164
145165 mLayerTreeWidget ->setItemWidget ( item, 3 , leTolerance );
146166
147167 // snap to vertex/ snap to segment
148168 QComboBox *cbxUnits = new QComboBox ( mLayerTreeWidget );
149169 cbxUnits->insertItem ( 0 , tr ( " map units" ) );
150170 cbxUnits->insertItem ( 1 , tr ( " pixels" ) );
171+ cbxUnits->setCurrentIndex ( defaultSnapppingUnit );
151172 mLayerTreeWidget ->setItemWidget ( item, 4 , cbxUnits );
152173
153174 int idx = layerIdList.indexOf ( currentVectorLayer->getLayerID () );
@@ -158,7 +179,21 @@ void QgsSnappingDialog::update()
158179 }
159180
160181 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 );
162197 leTolerance->setText ( QString::number ( toleranceList[idx].toDouble (), ' f' ) );
163198 cbxUnits->setCurrentIndex ( toleranceUnitList[idx].toInt () );
164199 }
@@ -222,7 +257,7 @@ void QgsSnappingDialog::apply()
222257
223258void QgsSnappingDialog::show ()
224259{
225- if ( mDock )
260+ if ( mDock )
226261 mDock ->setVisible ( true );
227262 else
228263 QDialog::show ();
0 commit comments