diff --git a/src/ui/MainWindow.py b/src/ui/MainWindow.py index 598143d..45f1168 100644 --- a/src/ui/MainWindow.py +++ b/src/ui/MainWindow.py @@ -615,7 +615,7 @@ class MainWindow(QMainWindow): print(f"Performance: Seite {page_num + 1} gerendert in {render_time:.3f}s") except Exception as e: - print(f"Fehler beim Rendern der Seite {page_num + 1}: {e}") + logger.error(f"Fehler beim Rendern der Seite {page_num + 1}: {e}", exc_info=True) def update_current_display(self): """ @@ -630,24 +630,29 @@ class MainWindow(QMainWindow): print("Fullsize-Label ist nicht verfügbar") return - # Hole die gecachten Pixmaps - ref_pixmap = self.current_rendered_pixmaps["ref"] - diff_pixmap = self.current_rendered_pixmaps["diff"] - new_pixmap = self.current_rendered_pixmaps["new"] + try: + # Hole die gecachten Pixmaps + ref_pixmap = self.current_rendered_pixmaps["ref"] + diff_pixmap = self.current_rendered_pixmaps["diff"] + new_pixmap = self.current_rendered_pixmaps["new"] - # Erstelle das überlagerte Bild mit aktuellem Alpha-Wert - alpha_value = self.ui.alpha.value() - layered_pixmap = self.create_layered_pixmap(ref_pixmap, diff_pixmap, new_pixmap, alpha_value) + # Erstelle das überlagerte Bild mit aktuellem Alpha-Wert + alpha_value = self.ui.alpha.value() + layered_pixmap = self.create_layered_pixmap(ref_pixmap, diff_pixmap, new_pixmap, alpha_value) - # Wende aktuellen Zoom an - zoom_factor = self.current_zoom / 100.0 - if zoom_factor != 1.0: - new_width = int(layered_pixmap.width() * zoom_factor) - layered_pixmap = layered_pixmap.scaledToWidth(new_width, Qt.TransformationMode.SmoothTransformation) + # Wende aktuellen Zoom an + zoom_factor = self.current_zoom / 100.0 + if zoom_factor != 1.0: + new_width = int(layered_pixmap.width() * zoom_factor) + layered_pixmap = layered_pixmap.scaledToWidth(new_width, Qt.TransformationMode.SmoothTransformation) - # Setze das überlagerte Bild - self.fullsize_label.setPixmap(layered_pixmap) - self.fullsize_label.setAlignment(Qt.AlignmentFlag.AlignHCenter) + # Setze das überlagerte Bild + self.fullsize_label.setPixmap(layered_pixmap) + self.fullsize_label.setAlignment(Qt.AlignmentFlag.AlignHCenter) + except RuntimeError as e: + # C++-Objekt wurde bereits gelöscht + logger.warning(f"Fullsize-Label wurde bereits gelöscht: {e}") + self.fullsize_label = None def create_layered_pixmap(self, ref_pixmap, diff_pixmap, new_pixmap, alpha_value): """ @@ -1382,6 +1387,7 @@ class MainWindow(QMainWindow): self.thumbnail_to_page = {} self.pdf_documents = {} self.current_rendered_pixmaps = None + self.fullsize_label = None # Label wurde durch _clear_layout gelöscht # Alle drei PDF-Dateien öffnen mit QtPdf diff_doc = QPdfDocument()