Skip to content

Commit 70a1419

Browse files
committed
Fix layer loading
Previously kaava_layer was loaded on plugin load when the layer usually is not yet present.
1 parent 677c916 commit 70a1419

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

arho_feature_template/core/plan_manager.py

+15-15
Original file line numberDiff line numberDiff line change
@@ -9,51 +9,51 @@
99

1010

1111
class PlanManager:
12-
def __init__(self):
13-
self.kaava_layer = get_layer_by_name("Kaava")
14-
1512
def add_new_plan(self):
1613
"""Initiate the process to add a new plan to the Kaava layer."""
1714
if not handle_unsaved_changes():
1815
return
1916

17+
kaava_layer = get_layer_by_name("Kaava")
2018
self.clear_all_filters()
2119

22-
if not self.kaava_layer:
20+
if not kaava_layer:
2321
return
2422

25-
if not self.kaava_layer.isEditable():
26-
self.kaava_layer.startEditing()
23+
if not kaava_layer.isEditable():
24+
kaava_layer.startEditing()
2725

28-
iface.setActiveLayer(self.kaava_layer)
26+
iface.setActiveLayer(kaava_layer)
2927
iface.actionAddFeature().trigger()
3028

3129
# Connect the featureAdded signal to a callback method
32-
self.kaava_layer.featureAdded.connect(self.feature_added)
30+
kaava_layer.featureAdded.connect(self.feature_added)
3331

3432
def feature_added(self):
3533
"""Callback for when a new feature is added to the Kaava layer."""
36-
if not self.kaava_layer:
34+
35+
kaava_layer = get_layer_by_name("Kaava")
36+
if not kaava_layer:
3737
return
3838

3939
# Disconnect the signal to avoid repeated triggers
40-
self.kaava_layer.featureAdded.disconnect()
40+
kaava_layer.featureAdded.disconnect()
4141

42-
feature_ids_before_commit = self.kaava_layer.allFeatureIds()
42+
feature_ids_before_commit = kaava_layer.allFeatureIds()
4343

44-
if self.kaava_layer.isEditable():
45-
if not self.kaava_layer.commitChanges():
44+
if kaava_layer.isEditable():
45+
if not kaava_layer.commitChanges():
4646
iface.messageBar().pushMessage("Error", "Failed to commit changes to the layer.", level=3)
4747
return
4848
else:
4949
iface.messageBar().pushMessage("Error", "Layer is not editable.", level=3)
5050
return
5151

52-
feature_ids_after_commit = self.kaava_layer.allFeatureIds()
52+
feature_ids_after_commit = kaava_layer.allFeatureIds()
5353
new_feature_id = next((fid for fid in feature_ids_after_commit if fid not in feature_ids_before_commit), None)
5454

5555
if new_feature_id is not None:
56-
new_feature = self.kaava_layer.getFeature(new_feature_id)
56+
new_feature = kaava_layer.getFeature(new_feature_id)
5757
if new_feature.isValid():
5858
feature_id_value = new_feature["id"]
5959
update_selected_plan(LandUsePlan(feature_id_value))

0 commit comments

Comments
 (0)