|
9 | 9 |
|
10 | 10 |
|
11 | 11 | class PlanManager:
|
12 |
| - def __init__(self): |
13 |
| - self.kaava_layer = get_layer_by_name("Kaava") |
14 |
| - |
15 | 12 | def add_new_plan(self):
|
16 | 13 | """Initiate the process to add a new plan to the Kaava layer."""
|
17 | 14 | if not handle_unsaved_changes():
|
18 | 15 | return
|
19 | 16 |
|
| 17 | + kaava_layer = get_layer_by_name("Kaava") |
20 | 18 | self.clear_all_filters()
|
21 | 19 |
|
22 |
| - if not self.kaava_layer: |
| 20 | + if not kaava_layer: |
23 | 21 | return
|
24 | 22 |
|
25 |
| - if not self.kaava_layer.isEditable(): |
26 |
| - self.kaava_layer.startEditing() |
| 23 | + if not kaava_layer.isEditable(): |
| 24 | + kaava_layer.startEditing() |
27 | 25 |
|
28 |
| - iface.setActiveLayer(self.kaava_layer) |
| 26 | + iface.setActiveLayer(kaava_layer) |
29 | 27 | iface.actionAddFeature().trigger()
|
30 | 28 |
|
31 | 29 | # 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) |
33 | 31 |
|
34 | 32 | def feature_added(self):
|
35 | 33 | """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: |
37 | 37 | return
|
38 | 38 |
|
39 | 39 | # Disconnect the signal to avoid repeated triggers
|
40 |
| - self.kaava_layer.featureAdded.disconnect() |
| 40 | + kaava_layer.featureAdded.disconnect() |
41 | 41 |
|
42 |
| - feature_ids_before_commit = self.kaava_layer.allFeatureIds() |
| 42 | + feature_ids_before_commit = kaava_layer.allFeatureIds() |
43 | 43 |
|
44 |
| - if self.kaava_layer.isEditable(): |
45 |
| - if not self.kaava_layer.commitChanges(): |
| 44 | + if kaava_layer.isEditable(): |
| 45 | + if not kaava_layer.commitChanges(): |
46 | 46 | iface.messageBar().pushMessage("Error", "Failed to commit changes to the layer.", level=3)
|
47 | 47 | return
|
48 | 48 | else:
|
49 | 49 | iface.messageBar().pushMessage("Error", "Layer is not editable.", level=3)
|
50 | 50 | return
|
51 | 51 |
|
52 |
| - feature_ids_after_commit = self.kaava_layer.allFeatureIds() |
| 52 | + feature_ids_after_commit = kaava_layer.allFeatureIds() |
53 | 53 | new_feature_id = next((fid for fid in feature_ids_after_commit if fid not in feature_ids_before_commit), None)
|
54 | 54 |
|
55 | 55 | 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) |
57 | 57 | if new_feature.isValid():
|
58 | 58 | feature_id_value = new_feature["id"]
|
59 | 59 | update_selected_plan(LandUsePlan(feature_id_value))
|
|
0 commit comments