Skip to content

Commit 5eb03f2

Browse files
committed
dont allow changing filter when in edit mode
1 parent ed51d92 commit 5eb03f2

File tree

1 file changed

+26
-2
lines changed

1 file changed

+26
-2
lines changed

urkataster_tools/tools/timeslider/feature_updater.py

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,26 @@ def filter_layers(self, filter_from_date: QDate, filter_to_date: QDate, gesicher
3535
date (QDate): The date to filter layers by.
3636
gesichert (bool): If True, use gesichert fields; otherwise, use vermutlich fields.
3737
"""
38+
project_layers = QgsProject.instance().mapLayers().values()
39+
40+
if not next(iter(project_layers), None):
41+
self.iface.messageBar().pushWarning("Urkataster Tools", "Es sind keine Layer im Projekt vorhanden.")
42+
return
43+
3844
from_field = self.GESICHERT_AB_FIELD if gesichert else self.VERMUTLICH_AB_FIELD
3945
to_field = self.GESICHERT_BIS_FIELD if gesichert else self.VERMUTLICH_BIS_FIELD
4046

4147
filter_from_date_str = filter_from_date.toString("yyyy-MM-dd")
4248
filter_to_date_str = filter_to_date.toString("yyyy-MM-dd")
43-
for layer in QgsProject.instance().mapLayers().values():
49+
50+
for layer in project_layers:
4451
if layer.type() == QgsMapLayer.VectorLayer:
52+
if layer.isEditable():
53+
self.iface.messageBar().pushWarning(
54+
"Urkataster Tools",
55+
"Filter können nicht angewendet werden, solange ein Layer nicht im Bearbeitungsmodus ist.",
56+
)
57+
return
4558
if layer.fields().indexFromName(from_field) != -1 and layer.fields().indexFromName(to_field) != -1:
4659
self._apply_filter(layer, filter_from_date_str, filter_to_date_str, from_field, to_field)
4760
self.iface.mainWindow().statusBar().showMessage(
@@ -72,9 +85,20 @@ def clear_filters(self):
7285
date (QDate): The date to filter layers by.
7386
gesichert (bool): If True, use gesichert fields; otherwise, use vermutlich fields.
7487
"""
88+
project_layers = QgsProject.instance().mapLayers().values()
89+
90+
if not next(iter(project_layers), None):
91+
self.iface.messageBar().pushWarning("Urkataster Tools", "Es sind keine Layer im Projekt vorhanden.")
92+
return
7593

76-
for layer in QgsProject.instance().mapLayers().values():
94+
for layer in project_layers:
7795
if layer.type() == QgsMapLayer.VectorLayer:
96+
if layer.isEditable():
97+
self.iface.messageBar().pushWarning(
98+
"Urkataster Tools",
99+
"Filter können nicht entfernt werden, solange ein Layer nicht im Bearbeitungsmodus ist.",
100+
)
101+
return
78102
if layer.name() == "Referenzobjekt (Gebäude)":
79103
layer.setSubsetString("(art = 'gebaeude')")
80104
elif layer.name() == "Referenzobjekt (Parzelle)":

0 commit comments

Comments
 (0)