Fassung 0.7.1: Liste der Geodienste gehoert zur Auswahl

Nach einem Wechsel von Verfahren oder Landkreis blieb die geholte Liste
stehen; "Ausgewaehlte laden" lud sie dann unter dem Namen der neuen
Auswahl. Jetzt merkt sich die Seitenleiste, fuer welche Auswahl die
Liste geholt wurde, und leert sie bei jedem Wechsel (auch beim stillen
Wiederherstellen aus der Projektdatei). Ein Filter, der die Auswahl
behaelt, laesst sie stehen. Die Meldung nach "Liste holen" nennt beim
Landkreis den Landkreis statt "dieses Verfahren".

Gefunden am 07.10.2026 bei der Aufnahme des Erklaervideos Linkliste.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
KAI
2026-10-07 20:12:29 +02:00
co-authored by Claude Opus 5.5
parent c3386dc454
commit 8253f4f863
5 changed files with 63 additions and 8 deletions
+26 -3
View File
@@ -72,6 +72,7 @@ class VlnPanel(QDockWidget):
self._cb = callbacks or {}
self._verfahren = [] # [(beschriftung, vkz)] — ungefiltert
self._stumm = False # unterdrückt Signale beim programmatischen Füllen
self._dienste_vkz = None # Auswahl, für die die Liste der Geodienste geholt wurde
inhalt = QWidget()
aussen = QVBoxLayout(inhalt)
@@ -330,9 +331,14 @@ class VlnPanel(QDockWidget):
for eintrag, an in zip(eintraege, vorhaken(daten, self.gewaehlte_karten())):
eintrag.setCheckState(Qt.CheckState.Checked if an else Qt.CheckState.Unchecked)
def set_dienste(self, dienste):
def set_dienste(self, dienste, vkz=None):
"""Die geholte Liste anzeigen: Name, Gruppe › Untergruppe und Herkunft, alle zunächst
angehakt."""
angehakt.
:param vkz: Verfahren oder Landkreis, für das die Liste geholt wurde (ohne Angabe: die
aktuelle Auswahl). Wechselt die Auswahl, leert sich die Liste (seit 0.7.1).
"""
self._dienste_vkz = self.combo.currentData() if vkz is None else vkz
self.dienste_liste.clear()
for d in dienste or []:
gruppe = d.get("gruppe_name") or ""
@@ -404,6 +410,7 @@ class VlnPanel(QDockWidget):
self.combo.addItem("— bitte anmelden —", None)
self.filter_feld.clear()
self.dienste_liste.clear()
self._dienste_vkz = None
self._stumm = False
def set_verfahren(self, verfahren, aemter=()):
@@ -441,11 +448,13 @@ class VlnPanel(QDockWidget):
return {name for name, haken in self.gruppen_haken.items() if haken.isChecked()}
def waehle_vkz(self, vkz):
"""Setzt die Auswahl ohne Rückruf (Wiederherstellen aus der Projektdatei)."""
"""Setzt die Auswahl ohne Rückruf (Wiederherstellen aus der Projektdatei); eine Liste
der Geodienste für eine andere Auswahl leert sich trotzdem."""
self._stumm = True
index = self.combo.findData(vkz) if vkz else -1
self.combo.setCurrentIndex(index if index >= 0 else 0)
self._stumm = False
self._dienste_zur_auswahl()
def anzahl_eintraege(self):
return self.combo.count()
@@ -472,6 +481,7 @@ class VlnPanel(QDockWidget):
index = self.combo.findData(vorher) if vorher else -1
self.combo.setCurrentIndex(index if index >= 0 else 0)
self._stumm = False
self._dienste_zur_auswahl()
if index < 0 and vorher:
self._auswahl_geaendert(0)
@@ -480,8 +490,21 @@ class VlnPanel(QDockWidget):
def _auswahl_geaendert(self, _index):
if not self._stumm:
self._dienste_zur_auswahl()
self._ruf("verfahren_gewaehlt", self.combo.currentData())
def _dienste_zur_auswahl(self):
"""Die Liste der Geodienste gehört zu der Auswahl, für die sie geholt wurde.
Nach einem Wechsel leert sie sich — sonst lüde „Ausgewählte laden“ die alte Liste unter
dem Namen der neuen Auswahl (bis 0.7.0). Ein Filter, der die Auswahl behält, lässt sie
stehen.
"""
if self.dienste_liste.count() and self.combo.currentData() != self._dienste_vkz:
self.dienste_liste.clear()
self._dienste_vkz = None
self.set_status("Auswahl gewechselt — „Liste holen“ zeigt die Geodienste.")
def _ruf(self, name, *args):
rueckruf = self._cb.get(name)
if rueckruf: