Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5b4cbc3127 | ||
|
|
f0944aab99 |
+3
-3
@@ -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"]
|
||||
|
||||
+30
-2
@@ -13,6 +13,7 @@ from sn_basis.functions.qt_wrapper import (
|
||||
QCheckBox,
|
||||
QHBoxLayout,
|
||||
QPushButton,
|
||||
QCoreApplication,
|
||||
)
|
||||
from sn_basis.functions.qgiscore_wrapper import QgsProject
|
||||
from sn_basis.functions.qgisui_wrapper import iface
|
||||
@@ -57,9 +58,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
|
||||
@@ -76,6 +79,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
|
||||
@@ -340,6 +350,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"):
|
||||
|
||||
Reference in New Issue
Block a user