Skip to content

Commit 44b27c3

Browse files
authored
Merge pull request #714 from meyerlor/feature/snap-on-start
feat: add snap_on_start checkbox for edition layers
2 parents a914d15 + ff0a610 commit 44b27c3

File tree

3 files changed

+37
-0
lines changed

3 files changed

+37
-0
lines changed

lizmap/definitions/edition.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,13 @@ def __init__(self):
119119
'tooltip': tr('Snapping tolerance for intersections.'),
120120
'version': LwcVersions.Lizmap_3_4,
121121
}
122+
self._layer_config['snap_on_start'] = {
123+
'type': InputType.CheckBox,
124+
'header': tr('Activate snapping when editing starts'),
125+
'default': False,
126+
'tooltip': tr('If snapping should be activated automatically when editing starts.'),
127+
'version': LwcVersions.Lizmap_3_10,
128+
}
122129
self._layer_config['provider'] = {
123130
'type': InputType.Text,
124131
'read_only': True,

lizmap/forms/edition_edition.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ def __init__(
5050
self.config.add_layer_widget('snap_vertices_tolerance', self.vertices_tolerance)
5151
self.config.add_layer_widget('snap_segments_tolerance', self.segments_tolerance)
5252
self.config.add_layer_widget('snap_intersections_tolerance', self.intersections_tolerance)
53+
self.config.add_layer_widget('snap_on_start', self.snap_on_start)
5354
self.config.add_layer_widget('provider', self.provider)
5455

5556
self.config.add_layer_label('layerId', self.label_layer)
@@ -60,6 +61,7 @@ def __init__(
6061
self.config.add_layer_label('deleteFeature', self.label_delete)
6162
self.config.add_layer_label('acl', self.label_allowed_groups)
6263
self.config.add_layer_label('snap_layers', self.label_layers_snapping)
64+
self.config.add_layer_label('snap_on_start', self.label_snap_on_start)
6365
self.config.add_layer_label('provider', self.label_provider)
6466

6567
self.layer.layerChanged.connect(self.layer_changed)
@@ -76,6 +78,10 @@ def __init__(
7678
self.lwc_versions[LwcVersions.Lizmap_3_6] = [
7779
self.button_wizard_group,
7880
]
81+
self.lwc_versions[LwcVersions.Lizmap_3_10] = [
82+
self.snap_on_start,
83+
self.label_snap_on_start,
84+
]
7985

8086
# Wizard ACL group
8187
icon = QIcon(resources_path('icons', 'user_group.svg'))
@@ -85,6 +91,9 @@ def __init__(
8591
self.button_wizard_group.setToolTip(tr("Open the group wizard"))
8692

8793
self.setup_ui()
94+
# Default to checked for new layers; legacy layers without the key
95+
# get False from the definition default during from_json loading.
96+
self.snap_on_start.setChecked(True)
8897
self.check_layer_wfs()
8998
self.layer_changed()
9099

lizmap/resources/ui/ui_form_edition.ui

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,27 @@
151151
<string>Snapping</string>
152152
</property>
153153
<layout class="QVBoxLayout" name="verticalLayout_2">
154+
<item>
155+
<layout class="QHBoxLayout" name="snap_on_start_layout">
156+
<item>
157+
<widget class="QLabel" name="label_snap_on_start">
158+
<property name="text">
159+
<string>Activate snapping when editing starts</string>
160+
</property>
161+
</widget>
162+
</item>
163+
<item>
164+
<widget class="QCheckBox" name="snap_on_start">
165+
<property name="text">
166+
<string/>
167+
</property>
168+
<property name="checked">
169+
<bool>true</bool>
170+
</property>
171+
</widget>
172+
</item>
173+
</layout>
174+
</item>
154175
<item>
155176
<widget class="QLabel" name="label_layers_snapping">
156177
<property name="text">

0 commit comments

Comments
 (0)