diff --git a/changelog.txt b/changelog.txt index 84adbba..ab084ad 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,5 +1,5 @@ --- -Version 26.4.2-testing: +Version 26.4.3-unstable: --- Version 26.04.1-unstable: --- diff --git a/metadata.txt b/metadata.txt index db36529..d86a7cc 100644 --- a/metadata.txt +++ b/metadata.txt @@ -1,5 +1,5 @@ [general] -version=26.4.2-testing +version=26.4.3-unstable name=LNO Sachsen | Plugin Basisfunktionen description=Plugin mit Basisfunktionen author=Daniel Helbig, Michael Otto diff --git a/ui/tabs/__init__.py b/ui/tabs/__init__.py index 7d46e9d..8e6a94a 100644 --- a/ui/tabs/__init__.py +++ b/ui/tabs/__init__.py @@ -1,4 +1,4 @@ -from sn_basis.ui.tabs.print_tab import PrintTab -from sn_basis.ui.tabs.settings_tab import SettingsTab +# from sn_basis.ui.tabs.print_tab import PrintTab +# from sn_basis.ui.tabs.settings_tab import SettingsTab -__all__ = ["PrintTab", "SettingsTab"] +# __all__ = ["PrintTab", "SettingsTab"] diff --git a/ui/tabs/print_tab.py b/ui/tabs/print_tab.py index b7434e5..2f8536d 100644 --- a/ui/tabs/print_tab.py +++ b/ui/tabs/print_tab.py @@ -13,10 +13,7 @@ from sn_basis.functions.qt_wrapper import ( QCheckBox, QHBoxLayout, QPushButton, - QToolButton, - ToolButtonTextBesideIcon, - ArrowDown, - ArrowRight, + QCoreApplication, ) from sn_basis.functions.qgiscore_wrapper import QgsProject, QgsMapLayerProxyModel from sn_basis.functions.qgisui_wrapper import iface, QgsMapLayerComboBox @@ -65,9 +62,11 @@ class PrintTab(QWidget): def __init__(self, parent: Optional[Any] = None): super().__init__(parent) - self.pruefmanager: Optional[Pruefmanager] = None - self.logic: Optional[PrintLogic] = None + self.logic = PrintLogic(self.pruefmanager) + + + #self.logic: Optional[PrintLogic] = None self._kartenname_combo: Optional[Any] = None self._massstab_combo: Optional[Any] = None self._thema_combo: Optional[Any] = None @@ -89,6 +88,13 @@ class PrintTab(QWidget): self._connect_theme_collection_signals() self._connect_project_signals() + app = QCoreApplication.instance() + if app is not None: + try: + app.aboutToQuit.connect(self._cleanup_signals) + except Exception: + pass + def set_services(self, pruefmanager: Pruefmanager, data_grabber: DataGrabber) -> None: _ = data_grabber self.pruefmanager = pruefmanager @@ -436,6 +442,24 @@ class PrintTab(QWidget): druckbereich_auswahl=self._druckbereich_combo.currentText() if self._druckbereich_combo else DRUCKBEREICH_VERFAHRENSGEBIET, ) + def _cleanup_signals(self) -> None: + """Trennt alle QGIS-Signalverbindungen vor dem Beenden von QGIS.""" + self._disconnect_theme_collection_signals() + try: + project = QgsProject.instance() + if project is None: + return + for signal_name in ("readProject", "newProjectCreated", "cleared"): + signal = getattr(project, signal_name, None) + if signal is None: + continue + try: + signal.disconnect(self._on_project_changed) + except Exception: + pass + except Exception: + pass + def _connect_project_signals(self) -> None: project = QgsProject.instance() for signal_name in ("readProject", "newProjectCreated", "cleared"):