diff --git a/src/ui/MainWindow.py b/src/ui/MainWindow.py index 16a984d..cbaaa3c 100644 --- a/src/ui/MainWindow.py +++ b/src/ui/MainWindow.py @@ -726,7 +726,7 @@ class MainWindow(QMainWindow): else: # Kein Diff-PDF - Viewer leeren falls noch ein PDF geladen ist if self.pdf_documents: - logger.debug(f"XML-Knoten ohne Diff-PDF ausgewählt, leere Viewer") + logger.debug("XML-Knoten ohne Diff-PDF ausgewählt, leere Viewer") self._clear_pdf_viewer() else: logger.debug("XML-File-Daten fehlen (xml_file_obj oder xsl_id_str ist None)") @@ -3460,6 +3460,22 @@ class MainWindow(QMainWindow): logger.error(f"Fehler beim Starten der Transformation: {e}") QMessageBox.critical(self, "Fehler", f"Fehler beim Starten: {str(e)}") + def _expand_tree_item_parents(self, item: QTreeWidgetItem): + """ + Öffnet alle Eltern-Knoten eines Tree-Items rekursiv. + + Args: + item: Das Tree-Item, dessen Eltern geöffnet werden sollen + """ + if item is None: + return + + # Rekursiv alle Eltern öffnen + parent = item.parent() + while parent is not None: + parent.setExpanded(True) + parent = parent.parent() + def _on_transformation_job_started(self, xml_file_name: str, xsl_id_str: str): """ Signal-Handler: Ein Job wurde gestartet. @@ -3480,6 +3496,12 @@ class MainWindow(QMainWindow): logger.info(f"Map hat {len(self.xml_item_map)} Einträge") tree_item = self.xml_item_map.get(map_key) if tree_item: + # Öffne alle Eltern-Knoten, damit der Benutzer den Fortschritt sehen kann + self._expand_tree_item_parents(tree_item) + + # Scrolle zum Item, damit es sichtbar ist + self.ui.treeWidget.scrollToItem(tree_item) + # Entferne vorhandenes Widget (falls Icon vorhanden) self.ui.treeWidget.removeItemWidget(tree_item, 2) @@ -3487,7 +3509,7 @@ class MainWindow(QMainWindow): progress_widget, progress_bar = self._create_centered_progress_bar() self.ui.treeWidget.setItemWidget(tree_item, 2, progress_widget) - logger.debug(f"Progress Bar für {xml_file_name} gesetzt") + logger.debug(f"Progress Bar für {xml_file_name} gesetzt und Eltern-Knoten geöffnet") else: logger.warning(f"Kein TreeWidget-Item für {xml_file_name} gefunden")