Verfahrensgebiet-Layerauswahl nach sn_verfahrensgebiet verschoben
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
from sn_basis.functions.qt_wrapper import QWidget, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QMessageBox
|
||||
from sn_basis.functions.qt_wrapper import Qt
|
||||
from sn_basis.functions import Qgis, QgsProject #QgsMessageLog
|
||||
from sn_basis.functions.qgisui_wrapper import QgsMapLayerComboBox
|
||||
from sn_basis.functions.qgiscore_wrapper import QgsMapLayerProxyModel
|
||||
from sn_basis.functions.verfahrensgebiet_manager import get_verfahrensgebiet_layer_id, set_verfahrensgebiet_layer_id
|
||||
from qgis.utils import iface
|
||||
|
||||
from sn_verfahrensgebiet.functions.verfahrensgebiet_alkis import verfahrensgebiet_alkis, LoadStatus
|
||||
@@ -32,7 +35,22 @@ class WorkingTab(QWidget):
|
||||
row_verf_buttons.addWidget(self.btn_verf_shape)
|
||||
layout.addLayout(row_verf_buttons)
|
||||
|
||||
# Abschnitt 1b: Verfahrensgebiet-Layer auswählen
|
||||
row_layer_label = QHBoxLayout()
|
||||
lbl_layer = QLabel("Oder: Verfahrensgebiet-Layer auswählen")
|
||||
lbl_layer.setStyleSheet("font-style: italic; color: gray; margin-top: 8px;")
|
||||
row_layer_label.addWidget(lbl_layer)
|
||||
row_layer_label.addStretch()
|
||||
layout.addLayout(row_layer_label)
|
||||
|
||||
self.verf_layer_combo = QgsMapLayerComboBox(self)
|
||||
self.verf_layer_combo.setFilters(QgsMapLayerProxyModel.VectorLayer)
|
||||
self.verf_layer_combo.setToolTip("Wähle den Verfahrensgebiet-Layer, oder lasse es leer für Automatik")
|
||||
self.verf_layer_combo.layerChanged.connect(self._on_verf_layer_changed)
|
||||
layout.addWidget(self.verf_layer_combo)
|
||||
|
||||
# Abschnitt 2: Flurstücke (Platzhalter für spätere Implementierung)
|
||||
|
||||
row_flurst_header = QHBoxLayout()
|
||||
lbl_flurst = QLabel("<b>Flurstücke</b>")
|
||||
self.haken_flurst = self._haken_label()
|
||||
@@ -57,6 +75,9 @@ class WorkingTab(QWidget):
|
||||
# self.btn_flurst_alkis.clicked.connect(self.handle_flurst_alkis)
|
||||
# self.btn_flurst_shape.clicked.connect(self.handle_flurst_shape)
|
||||
|
||||
# Beim Init: aktuelle Verfahrensgebiet-Layer-ID laden und im Dropdown anzeigen
|
||||
self._restore_verf_layer_selection()
|
||||
|
||||
def handle_verf_alkis(self):
|
||||
self._set_busy(self.btn_verf_alkis, True)
|
||||
try:
|
||||
@@ -110,3 +131,24 @@ class WorkingTab(QWidget):
|
||||
label.setText("")
|
||||
label.setStyleSheet("")
|
||||
|
||||
def _on_verf_layer_changed(self, layer) -> None:
|
||||
"""Callback: Nutzer hat einen anderen Layer im Dropdown gewählt."""
|
||||
if layer and layer.isValid():
|
||||
# Speichere die Layer-ID in der zentralen Variable
|
||||
set_verfahrensgebiet_layer_id(layer.id())
|
||||
else:
|
||||
# Layer is None oder invalid; leere die Variable
|
||||
set_verfahrensgebiet_layer_id("")
|
||||
|
||||
def _restore_verf_layer_selection(self) -> None:
|
||||
"""Beim Tab-Init: Lade die zuletzt gespeicherte Verfahrensgebiet-Layer-ID."""
|
||||
layer_id = get_verfahrensgebiet_layer_id()
|
||||
if layer_id:
|
||||
# Versuche, den Layer im Projekt zu finden
|
||||
try:
|
||||
project = QgsProject.instance()
|
||||
layer = project.mapLayer(layer_id)
|
||||
if layer and layer.isValid():
|
||||
self.verf_layer_combo.setLayer(layer)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user