refactor: Code-Cleanup nach Review

- Ungenutzte Variable `self.letzte_pdf` entfernt
- Inline-Imports nach oben verschoben (QTextEdit, QAction, etc.)
- `shutil` und `subprocess` zentral importiert
- Keine funktionalen Änderungen

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Eduard Wisch 2026-03-05 09:38:15 +01:00
parent 9752963ead
commit 6ee34055f1

View file

@ -15,10 +15,14 @@ from PySide6.QtWidgets import (
QFormLayout, QGridLayout, QStackedWidget, QListWidget, QListWidgetItem, QFormLayout, QGridLayout, QStackedWidget, QListWidget, QListWidgetItem,
QLineEdit, QDoubleSpinBox, QSpinBox, QPushButton, QLabel, QGroupBox, QLineEdit, QDoubleSpinBox, QSpinBox, QPushButton, QLabel, QGroupBox,
QTableWidget, QTableWidgetItem, QHeaderView, QMessageBox, QFileDialog, QTableWidget, QTableWidgetItem, QHeaderView, QMessageBox, QFileDialog,
QComboBox, QFrame, QSplitter, QScrollArea, QSizePolicy QComboBox, QFrame, QSplitter, QScrollArea, QSizePolicy, QTextEdit
) )
from PySide6.QtCore import Qt, QSize from PySide6.QtCore import Qt, QSize
from PySide6.QtGui import QFont, QIcon, QColor from PySide6.QtGui import QFont, QIcon, QColor, QAction, QKeySequence
from PySide6.QtPrintSupport import QPrinter, QPrintDialog
import shutil
import subprocess
from reportlab.lib.pagesizes import A4 from reportlab.lib.pagesizes import A4
from reportlab.lib.units import cm from reportlab.lib.units import cm
@ -157,8 +161,6 @@ class DatenManager:
def speichere_entwurf(self, jahr, kosten, belege, anzahl_monate, bemerkungen=""): def speichere_entwurf(self, jahr, kosten, belege, anzahl_monate, bemerkungen=""):
"""Speichert einen Entwurf (ohne PDF zu erstellen)""" """Speichert einen Entwurf (ohne PDF zu erstellen)"""
import shutil
belege_ordner = self.get_belege_ordner(jahr) belege_ordner = self.get_belege_ordner(jahr)
gespeicherte_belege = {} gespeicherte_belege = {}
@ -583,7 +585,6 @@ class AbrechnungSeite(QWidget):
layout.addWidget(summen_group) layout.addWidget(summen_group)
# Bemerkungen # Bemerkungen
from PySide6.QtWidgets import QTextEdit
bemerk_group = QGroupBox("Bemerkungen (erscheint im PDF)") bemerk_group = QGroupBox("Bemerkungen (erscheint im PDF)")
bemerk_layout = QVBoxLayout(bemerk_group) bemerk_layout = QVBoxLayout(bemerk_group)
self.bemerkungen = QTextEdit() self.bemerkungen = QTextEdit()
@ -747,7 +748,6 @@ class AbrechnungSeite(QWidget):
self.lbl_status.setText(f"[PDF erstellt: {datetime.now().strftime('%H:%M')}]") self.lbl_status.setText(f"[PDF erstellt: {datetime.now().strftime('%H:%M')}]")
# PDF öffnen # PDF öffnen
import subprocess
subprocess.run(["xdg-open", pdf_pfad]) subprocess.run(["xdg-open", pdf_pfad])
def _erstelle_pdf(self, jahr, kosten, anzahl_monate, belege=None, bemerkungen=""): def _erstelle_pdf(self, jahr, kosten, anzahl_monate, belege=None, bemerkungen=""):
@ -1356,7 +1356,6 @@ class HauptFenster(QMainWindow):
def __init__(self): def __init__(self):
super().__init__() super().__init__()
self.daten = DatenManager() self.daten = DatenManager()
self.letzte_pdf = None
self.setup_ui() self.setup_ui()
self.setup_menu() self.setup_menu()
@ -1430,8 +1429,6 @@ class HauptFenster(QMainWindow):
def setup_menu(self): def setup_menu(self):
"""Erstellt die Menüleiste""" """Erstellt die Menüleiste"""
from PySide6.QtGui import QAction, QKeySequence
menubar = self.menuBar() menubar = self.menuBar()
# Datei-Menü # Datei-Menü
@ -1490,9 +1487,6 @@ class HauptFenster(QMainWindow):
def drucken(self): def drucken(self):
"""Öffnet den Druckdialog für das letzte PDF""" """Öffnet den Druckdialog für das letzte PDF"""
from PySide6.QtPrintSupport import QPrinter, QPrintDialog
from PySide6.QtGui import QPainter, QPixmap
# Prüfen ob ein PDF existiert # Prüfen ob ein PDF existiert
jahr = self.abrechnung_seite.jahr.value() jahr = self.abrechnung_seite.jahr.value()
mieter_name = self.daten.mieter.get("name", "").replace(" ", "_") mieter_name = self.daten.mieter.get("name", "").replace(" ", "_")
@ -1514,7 +1508,6 @@ class HauptFenster(QMainWindow):
def ordner_oeffnen(self): def ordner_oeffnen(self):
"""Öffnet den Dokumente-Ordner""" """Öffnet den Dokumente-Ordner"""
import subprocess
subprocess.run(["xdg-open", self.daten.dokumente_ordner]) subprocess.run(["xdg-open", self.daten.dokumente_ordner])
def zeige_info(self): def zeige_info(self):
@ -1565,8 +1558,6 @@ class HauptFenster(QMainWindow):
def installiere_startmenu(): def installiere_startmenu():
"""Installiert Startmenü-Eintrag beim ersten Start""" """Installiert Startmenü-Eintrag beim ersten Start"""
import shutil
# Pfade # Pfade
programm_ordner = Path(__file__).parent.resolve() programm_ordner = Path(__file__).parent.resolve()
desktop_quelle = programm_ordner / "nebenkostenabrechnung.desktop" desktop_quelle = programm_ordner / "nebenkostenabrechnung.desktop"