From 0f144187498b8b517b06344b2dacfbf7844cfae5 Mon Sep 17 00:00:00 2001 From: Vitali Graf Date: Sun, 1 Feb 2026 15:06:22 +0100 Subject: [PATCH] UI: PDF-Thumbnails kompakt und zentriert anzeigen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Thumbnails horizontal zentriert im ScrollArea-Layout - Layout-Spacing auf 5px reduziert für kompakte Darstellung - Seitennummer-Labels auf 18px Höhe begrenzt - Ränder um Layout und Labels entfernt - Expandierenden Spacer am Ende hinzugefügt, damit Thumbnails oben bleiben - Verbesserte Übersichtlichkeit der Thumbnail-Navigation --- src/ui/mixins/pdf_viewer.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/ui/mixins/pdf_viewer.py b/src/ui/mixins/pdf_viewer.py index eb1ac47..7c61fda 100644 --- a/src/ui/mixins/pdf_viewer.py +++ b/src/ui/mixins/pdf_viewer.py @@ -16,7 +16,7 @@ from pathlib import Path from PySide6.QtCore import Qt, QSize, QUrl from PySide6.QtGui import QCursor, QPixmap, QPainter, QDesktopServices -from PySide6.QtWidgets import QLabel, QMessageBox +from PySide6.QtWidgets import QLabel, QMessageBox, QSpacerItem, QSizePolicy from PySide6.QtPdf import QPdfDocument @@ -343,6 +343,10 @@ class PdfViewerMixin: self._clear_layout(self.ui.verticalLayout_2) self._clear_layout(self.ui.verticalLayout_3) + # Setze kompaktes Spacing für Thumbnail-Layout + self.ui.verticalLayout_2.setSpacing(5) # Minimaler Abstand zwischen Widgets + self.ui.verticalLayout_2.setContentsMargins(0, 0, 0, 0) # Keine Ränder + # Dicts zurücksetzen self.thumbnail_to_page = {} self.pdf_documents = {} @@ -413,11 +417,14 @@ class PdfViewerMixin: thumbnail.setPixmap(diff_pixmap.scaledToWidth(200, Qt.TransformationMode.SmoothTransformation)) thumbnail.setCursor(QCursor(Qt.CursorShape.PointingHandCursor)) thumbnail.setMouseTracking(True) + thumbnail.setAlignment(Qt.AlignmentFlag.AlignCenter) self.ui.verticalLayout_2.addWidget(thumbnail) # Seitennummer für Thumbnail anzeigen thumbnail_info = QLabel(f"Seite {page_num + 1}") thumbnail_info.setAlignment(Qt.AlignmentFlag.AlignCenter) + thumbnail_info.setMaximumHeight(18) # Kompakte Höhe + thumbnail_info.setContentsMargins(0, 0, 0, 0) # Keine Ränder self.ui.verticalLayout_2.addWidget(thumbnail_info) # Beziehung zwischen Thumbnail und Seitennummer speichern @@ -426,6 +433,10 @@ class PdfViewerMixin: # Click-Event für das Thumbnail einrichten thumbnail.mousePressEvent = lambda event, t=thumbnail: self.on_thumbnail_clicked(event, t) + # Füge expandierenden Spacer am Ende hinzu, damit Thumbnails oben bleiben + spacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + self.ui.verticalLayout_2.addItem(spacer) + # Erstelle das Vollbild-Label für die rechte Spalte (falls noch nicht vorhanden) if self.fullsize_label is None: self.fullsize_label = QLabel()