Feat: Ref-PDF automatisch im internen Viewer anzeigen wenn keine Diff-PDF vorhanden

Beim Auswählen eines XML-Knotens im Baum wird jetzt die Ref-PDF direkt im
internen Viewer geladen, sofern keine Diff-PDF existiert. Der Kontextmenü-Eintrag
"Ref-PDF öffnen" und der zugehörige Handler wurden entfernt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-14 17:01:19 +01:00
parent 93f9bb90dd
commit 4f2d136d17
3 changed files with 121 additions and 92 deletions
+7 -30
View File
@@ -140,9 +140,13 @@ class TreeManagerMixin:
logger.info(f"XML-Knoten mit Diff-PDF ausgewählt: {pdf_basename}, lade automatisch")
self._load_pdf_for_comparison(xml_file_path, xsl_id_str)
else:
# Kein Diff-PDF - Viewer leeren falls noch ein PDF geladen ist
if self.pdf_documents:
logger.debug("XML-Knoten ohne Diff-PDF ausgewählt, leere Viewer")
# Kein Diff-PDF - Ref-PDF laden falls vorhanden, sonst Viewer leeren
ref_pdf_path = self.project.project_dir / "ref" / pdf_basename
if ref_pdf_path.exists():
logger.info(f"XML-Knoten ohne Diff-PDF, lade Ref-PDF: {pdf_basename}")
self._load_ref_pdf_for_display(xml_file_path, xsl_id_str)
elif self.pdf_documents:
logger.debug("XML-Knoten ohne Diff-PDF und ohne Ref-PDF, leere Viewer")
self._clear_pdf_viewer()
else:
logger.debug("XML-File-Daten fehlen (xml_file_obj oder xsl_id_str ist None)")
@@ -410,33 +414,6 @@ class TreeManagerMixin:
menu.addSeparator()
# Ref-PDF öffnen Aktion (nur enabled wenn Ref-PDF existiert und keine Diff-PDF)
xml_file_obj = item.data(0, Qt.ItemDataRole.UserRole)
parent_item = item.parent()
ref_pdf_can_open = False
if xml_file_obj and parent_item and self.project:
xsl_file_obj = parent_item.data(0, Qt.ItemDataRole.UserRole)
if xsl_file_obj:
# Erstelle Pfade zu Ref-PDF und Diff-PDF
xsl_id_str = "_".join(map(str, xsl_file_obj.id))
xml_stem = xml_file_obj.xml.stem
pdf_basename = f"{xml_stem}_xsl_{xsl_id_str}.pdf"
ref_pdf_path = self.project.project_dir / "ref" / pdf_basename
diff_pdf_path = self.project.project_dir / "diff" / pdf_basename
# Ref-PDF kann geöffnet werden, wenn sie existiert und keine Diff-PDF vorhanden ist
ref_pdf_can_open = ref_pdf_path.exists() and not diff_pdf_path.exists()
action_open_ref_pdf = QAction("Ref-PDF öffnen", self)
action_open_ref_pdf.setIcon(QIcon(QIcon.fromTheme("document-open")))
action_open_ref_pdf.triggered.connect(lambda: self._open_ref_pdf_for_xml_file(item))
action_open_ref_pdf.setEnabled(ref_pdf_can_open)
menu.addAction(action_open_ref_pdf)
menu.addSeparator()
action_edit = QAction("Bearbeiten", self)
action_edit.setIcon(QIcon(QIcon.fromTheme(QIcon.ThemeIcon.DocumentProperties)))
action_edit.triggered.connect(lambda: self._edit_xml_file(item))