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:
+26
-3
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user