DataGrabber.py hatte einen harten Top-Level-Import von
sn_plan41.modules.listenauswerter.Listenauswerter, obwohl DataGrabber sich
selbst als generischer, plugin-übergreifender Orchestrator dokumentiert.
sn_verfahrensgebiet importiert DataGrabber und instanziiert ihn beim
Plugin-Start – dadurch schlug classFactory() fehl, sobald sn_plan41 nicht
installiert war (ModuleNotFoundError: No module named 'sn_plan41').
Import in die einzige Stelle verschoben, die ihn tatsächlich braucht
(_process_excel_source, nur für Excel-Quellen relevant), mit klarer
Fehlermeldung falls doch mal ohne sn_plan41 eine Excel-Quelle verarbeitet
werden soll.
Fixes sn_verfahrensgebiet#35
Portiert aus origin/unstable: sn_basis/functions/laenderkennung.py bildet
Plugin-Präfix -> zweistellige ALKIS-Länderkennung ab (aktuell nur Sachsen).
Wird von der neuen Beteiligungsprüfung in sn_verfahrensgebiet für die
Flurstückskennzeichen-Bildung genutzt.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Landkreisliste liegt jetzt in data/landkreise.json statt hartcodiert in
landkreise.py, damit sie ohne Codeänderung pflegbar und auch aus anderen
Modulen nutzbar ist (Sentinel ALLE_LANDKREISE für "Alle Landkreise").
- ask_bror_kombinationen, ask_landkreis_objekte und ask_landkreis_auswahl aus
dialog_wrapper.py entfernt: sie sind sn_verfahrensgebiet-spezifisches
Vokabular (BROR/VKZ/Landkreis-Fallback) und gehören nicht in den
domänenfreien sn_basis-Hub. Sie leben jetzt in
sn_verfahrensgebiet/functions/verfahrensgebiet_dialoge.py.
- qt_wrapper.py: QTableWidget/QTableWidgetItem/QTableWidgetSelectionRange,
SelectRows, NoEditTriggers, AscendingOrder ergänzt (für die neue
Tabellen-Auswahl im Landkreis-Objektdialog).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Landkreis-Feld in den Projekteigenschaften als Dropdown statt Freitext,
Landkreiskennzahl zusätzlich als eigene Projektvariable verfügbar.
- ask_bror_kombination(en) auf echte Mehrfachauswahl umgestellt, inkl.
Titel, Wappen-Icon, kompakter/anpassbarer Größe und Scrollbar-Fix.
- Neuer Dialog ask_landkreis_objekte für die landkreisweite Objektsuche
(Mehrfachauswahl, "Alle auswählen", "Nur laden ohne weiteren Ablauf").
- qt_wrapper um QDialog/QDialogButtonBox/QListWidget/QListWidgetItem/
QAbstractItemView/QIcon sowie QComboBox-userData/currentData erweitert.
QgsProject-Signale (readProject, newProjectCreated, cleared) wurden beim
Shutdown von QGIS nicht getrennt. Das Signal 'cleared' wurde emittiert
waehrend QgsProject sich selbst zerstoerte, was _on_project_changed
triggerte und zu einem Zugriff auf bereits destrukturierte Objekte fuehrte.
Loesung: aboutToQuit-Signal verbunden mit neuer _cleanup_signals()-Methode,
die alle QGIS-Signalverbindungen sauber trennt, bevor QGIS Kernobjekte
zerstoert.