Feat: Projekt-Baum verschlanken und XSL-Dateiname im Edit-Dialog anzeigen (v1.5.0)
Mittlere Spalte (Kontextinfos) aus dem Projekt-Baum entfernt, sodass nur noch Bezeichnung und Diff-PDF-Anzahl angezeigt werden. XSL-Dateiname wird jetzt als nur-lese Label oben im XslFileEditDialog angezeigt. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -4,7 +4,7 @@
|
|||||||
<!-- Paket-Definition (ersetzt Product in v4) -->
|
<!-- Paket-Definition (ersetzt Product in v4) -->
|
||||||
<Package
|
<Package
|
||||||
Name="DocuMentor"
|
Name="DocuMentor"
|
||||||
Version="1.4.1"
|
Version="1.5.0"
|
||||||
Manufacturer="Vitali Graf / Software- und Datenbankentwicklung"
|
Manufacturer="Vitali Graf / Software- und Datenbankentwicklung"
|
||||||
UpgradeCode="F498B66C-726D-44AA-95F4-CB4FBDCEF26E"
|
UpgradeCode="F498B66C-726D-44AA-95F4-CB4FBDCEF26E"
|
||||||
Language="1031"
|
Language="1031"
|
||||||
|
|||||||
@@ -253,5 +253,5 @@ HINWEISE
|
|||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
Stand: April 2026
|
Stand: April 2026
|
||||||
Erstellt für: DocuMentor v1.4.1
|
Erstellt für: DocuMentor v1.5.0
|
||||||
================================================================================
|
================================================================================
|
||||||
|
|||||||
+1
-1
@@ -10,7 +10,7 @@
|
|||||||
; Build-Befehl: iscc installer.iss
|
; Build-Befehl: iscc installer.iss
|
||||||
|
|
||||||
#define MyAppName "DocuMentor"
|
#define MyAppName "DocuMentor"
|
||||||
#define MyAppVersion "1.4.1"
|
#define MyAppVersion "1.5.0"
|
||||||
#define MyAppPublisher "Ihr Name/Organisation"
|
#define MyAppPublisher "Ihr Name/Organisation"
|
||||||
#define MyAppURL "https://github.com/yourusername/xsl-validator"
|
#define MyAppURL "https://github.com/yourusername/xsl-validator"
|
||||||
#define MyAppExeName "DocuMentor.exe"
|
#define MyAppExeName "DocuMentor.exe"
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "DocuMentor"
|
name = "DocuMentor"
|
||||||
version = "1.4.1"
|
version = "1.5.0"
|
||||||
description = "Professionelle XSL-Transformations-Verwaltung und PDF-Generierung"
|
description = "Professionelle XSL-Transformations-Verwaltung und PDF-Generierung"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
license = {text = "MIT"}
|
license = {text = "MIT"}
|
||||||
|
|||||||
+5
-10
@@ -7,7 +7,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>1263</width>
|
<width>1263</width>
|
||||||
<height>774</height>
|
<height>779</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
@@ -100,7 +100,7 @@ QTreeWidget::item:selected {
|
|||||||
}</string>
|
}</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="columnCount">
|
<property name="columnCount">
|
||||||
<number>3</number>
|
<number>2</number>
|
||||||
</property>
|
</property>
|
||||||
<attribute name="headerHighlightSections">
|
<attribute name="headerHighlightSections">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
@@ -118,11 +118,6 @@ QTreeWidget::item:selected {
|
|||||||
<string notr="true">2</string>
|
<string notr="true">2</string>
|
||||||
</property>
|
</property>
|
||||||
</column>
|
</column>
|
||||||
<column>
|
|
||||||
<property name="text">
|
|
||||||
<string notr="true">3</string>
|
|
||||||
</property>
|
|
||||||
</column>
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
@@ -149,7 +144,7 @@ QTreeWidget::item:selected {
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>68</width>
|
<width>68</width>
|
||||||
<height>728</height>
|
<height>733</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
@@ -385,8 +380,8 @@ QTreeWidget::item:selected {
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>880</width>
|
<width>892</width>
|
||||||
<height>697</height>
|
<height>702</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||||
|
|||||||
@@ -91,7 +91,6 @@ class Ui_MainWindow(object):
|
|||||||
|
|
||||||
self.treeWidget = QTreeWidget(self.frame)
|
self.treeWidget = QTreeWidget(self.frame)
|
||||||
__qtreewidgetitem = QTreeWidgetItem()
|
__qtreewidgetitem = QTreeWidgetItem()
|
||||||
__qtreewidgetitem.setText(2, u"3");
|
|
||||||
__qtreewidgetitem.setText(1, u"2");
|
__qtreewidgetitem.setText(1, u"2");
|
||||||
__qtreewidgetitem.setText(0, u"1");
|
__qtreewidgetitem.setText(0, u"1");
|
||||||
self.treeWidget.setHeaderItem(__qtreewidgetitem)
|
self.treeWidget.setHeaderItem(__qtreewidgetitem)
|
||||||
@@ -109,7 +108,7 @@ class Ui_MainWindow(object):
|
|||||||
" background-color: palette(highlight);\n"
|
" background-color: palette(highlight);\n"
|
||||||
" color: palette(highlighted-text);\n"
|
" color: palette(highlighted-text);\n"
|
||||||
"}")
|
"}")
|
||||||
self.treeWidget.setColumnCount(3)
|
self.treeWidget.setColumnCount(2)
|
||||||
self.treeWidget.header().setHighlightSections(True)
|
self.treeWidget.header().setHighlightSections(True)
|
||||||
self.treeWidget.header().setStretchLastSection(True)
|
self.treeWidget.header().setStretchLastSection(True)
|
||||||
|
|
||||||
|
|||||||
@@ -586,7 +586,7 @@ class MainWindow(
|
|||||||
if expected_pdf.exists():
|
if expected_pdf.exists():
|
||||||
# Icon setzen
|
# Icon setzen
|
||||||
icon_widget = self._create_centered_diff_icon(xml_path, xsl_id_str)
|
icon_widget = self._create_centered_diff_icon(xml_path, xsl_id_str)
|
||||||
self.ui.treeWidget.setItemWidget(tree_item, 2, icon_widget)
|
self.ui.treeWidget.setItemWidget(tree_item, 1, icon_widget)
|
||||||
icon_count += 1
|
icon_count += 1
|
||||||
logger.debug(f"Diff-Icon für existierende PDF gesetzt: {map_key}")
|
logger.debug(f"Diff-Icon für existierende PDF gesetzt: {map_key}")
|
||||||
|
|
||||||
@@ -755,9 +755,9 @@ class MainWindow(
|
|||||||
map_key = f"{xml_relative_path}|{xsl_id_str}"
|
map_key = f"{xml_relative_path}|{xsl_id_str}"
|
||||||
if map_key in self.xml_item_map:
|
if map_key in self.xml_item_map:
|
||||||
tree_item = self.xml_item_map[map_key]
|
tree_item = self.xml_item_map[map_key]
|
||||||
# Entferne Icon-Widget aus Spalte 2
|
# Entferne Icon-Widget aus Spalte 1
|
||||||
tree_item.setData(2, Qt.ItemDataRole.UserRole, None)
|
tree_item.setData(1, Qt.ItemDataRole.UserRole, None)
|
||||||
self.ui.treeWidget.setItemWidget(tree_item, 2, None)
|
self.ui.treeWidget.setItemWidget(tree_item, 1, None)
|
||||||
|
|
||||||
logger.info(f"Änderungen akzeptiert für: {pdf_basename}")
|
logger.info(f"Änderungen akzeptiert für: {pdf_basename}")
|
||||||
return True
|
return True
|
||||||
@@ -904,9 +904,9 @@ class MainWindow(
|
|||||||
map_key = f"{self.current_diff_xml_path}|{self.current_diff_xsl_id}"
|
map_key = f"{self.current_diff_xml_path}|{self.current_diff_xsl_id}"
|
||||||
if map_key in self.xml_item_map:
|
if map_key in self.xml_item_map:
|
||||||
tree_item = self.xml_item_map[map_key]
|
tree_item = self.xml_item_map[map_key]
|
||||||
# Entferne Icon-Widget aus Spalte 2
|
# Entferne Icon-Widget aus Spalte 1
|
||||||
tree_item.setData(2, Qt.ItemDataRole.UserRole, None)
|
tree_item.setData(1, Qt.ItemDataRole.UserRole, None)
|
||||||
self.ui.treeWidget.setItemWidget(tree_item, 2, None)
|
self.ui.treeWidget.setItemWidget(tree_item, 1, None)
|
||||||
logger.info(f"Diff-Icon entfernt für: {map_key}")
|
logger.info(f"Diff-Icon entfernt für: {map_key}")
|
||||||
|
|
||||||
# Diff-PDF-Anzahl auf übergeordneten Ebenen aktualisieren
|
# Diff-PDF-Anzahl auf übergeordneten Ebenen aktualisieren
|
||||||
|
|||||||
@@ -7,3 +7,10 @@ class XslFileEditDialog(XsltParamsEditDialog):
|
|||||||
|
|
||||||
def _create_ui(self):
|
def _create_ui(self):
|
||||||
return Ui_XslFileEditDialog()
|
return Ui_XslFileEditDialog()
|
||||||
|
|
||||||
|
def _load_data(self):
|
||||||
|
"""Lädt die Daten des XslFile-Knotens in den Dialog."""
|
||||||
|
if not self.node:
|
||||||
|
return
|
||||||
|
self.ui.xslFileValueLabel.setText(str(self.node.xsl_file) if self.node.xsl_file else "")
|
||||||
|
super()._load_data()
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>865</width>
|
<width>865</width>
|
||||||
<height>400</height>
|
<height>403</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
@@ -23,13 +23,30 @@
|
|||||||
<enum>QLayout::SizeConstraint::SetMaximumSize</enum>
|
<enum>QLayout::SizeConstraint::SetMaximumSize</enum>
|
||||||
</property>
|
</property>
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="xslFileLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>XSL-Datei:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QLabel" name="xslFileValueLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::TextInteractionFlag::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
<widget class="QLabel" name="bezLabel">
|
<widget class="QLabel" name="bezLabel">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Bezeichnung:</string>
|
<string>Bezeichnung:</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="1">
|
<item row="1" column="1">
|
||||||
<widget class="QLineEdit" name="bezEdit"/>
|
<widget class="QLineEdit" name="bezEdit"/>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
|||||||
@@ -33,15 +33,26 @@ class Ui_XslFileEditDialog(object):
|
|||||||
self.formLayout = QFormLayout()
|
self.formLayout = QFormLayout()
|
||||||
self.formLayout.setObjectName(u"formLayout")
|
self.formLayout.setObjectName(u"formLayout")
|
||||||
self.formLayout.setSizeConstraint(QLayout.SizeConstraint.SetMaximumSize)
|
self.formLayout.setSizeConstraint(QLayout.SizeConstraint.SetMaximumSize)
|
||||||
|
self.xslFileLabel = QLabel(XslFileEditDialog)
|
||||||
|
self.xslFileLabel.setObjectName(u"xslFileLabel")
|
||||||
|
|
||||||
|
self.formLayout.setWidget(0, QFormLayout.ItemRole.LabelRole, self.xslFileLabel)
|
||||||
|
|
||||||
|
self.xslFileValueLabel = QLabel(XslFileEditDialog)
|
||||||
|
self.xslFileValueLabel.setObjectName(u"xslFileValueLabel")
|
||||||
|
self.xslFileValueLabel.setTextInteractionFlags(Qt.TextInteractionFlag.TextSelectableByMouse)
|
||||||
|
|
||||||
|
self.formLayout.setWidget(0, QFormLayout.ItemRole.FieldRole, self.xslFileValueLabel)
|
||||||
|
|
||||||
self.bezLabel = QLabel(XslFileEditDialog)
|
self.bezLabel = QLabel(XslFileEditDialog)
|
||||||
self.bezLabel.setObjectName(u"bezLabel")
|
self.bezLabel.setObjectName(u"bezLabel")
|
||||||
|
|
||||||
self.formLayout.setWidget(0, QFormLayout.ItemRole.LabelRole, self.bezLabel)
|
self.formLayout.setWidget(1, QFormLayout.ItemRole.LabelRole, self.bezLabel)
|
||||||
|
|
||||||
self.bezEdit = QLineEdit(XslFileEditDialog)
|
self.bezEdit = QLineEdit(XslFileEditDialog)
|
||||||
self.bezEdit.setObjectName(u"bezEdit")
|
self.bezEdit.setObjectName(u"bezEdit")
|
||||||
|
|
||||||
self.formLayout.setWidget(0, QFormLayout.ItemRole.FieldRole, self.bezEdit)
|
self.formLayout.setWidget(1, QFormLayout.ItemRole.FieldRole, self.bezEdit)
|
||||||
|
|
||||||
|
|
||||||
self.verticalLayout.addLayout(self.formLayout)
|
self.verticalLayout.addLayout(self.formLayout)
|
||||||
@@ -151,6 +162,8 @@ class Ui_XslFileEditDialog(object):
|
|||||||
|
|
||||||
def retranslateUi(self, XslFileEditDialog):
|
def retranslateUi(self, XslFileEditDialog):
|
||||||
XslFileEditDialog.setWindowTitle(QCoreApplication.translate("XslFileEditDialog", u"XSL-Datei bearbeiten", None))
|
XslFileEditDialog.setWindowTitle(QCoreApplication.translate("XslFileEditDialog", u"XSL-Datei bearbeiten", None))
|
||||||
|
self.xslFileLabel.setText(QCoreApplication.translate("XslFileEditDialog", u"XSL-Datei:", None))
|
||||||
|
self.xslFileValueLabel.setText("")
|
||||||
self.bezLabel.setText(QCoreApplication.translate("XslFileEditDialog", u"Bezeichnung:", None))
|
self.bezLabel.setText(QCoreApplication.translate("XslFileEditDialog", u"Bezeichnung:", None))
|
||||||
self.xsltParamsGroupBox.setTitle(QCoreApplication.translate("XslFileEditDialog", u"XSLT-Parameter", None))
|
self.xsltParamsGroupBox.setTitle(QCoreApplication.translate("XslFileEditDialog", u"XSLT-Parameter", None))
|
||||||
___qtablewidgetitem = self.xsltParamsTable.horizontalHeaderItem(0)
|
___qtablewidgetitem = self.xsltParamsTable.horizontalHeaderItem(0)
|
||||||
|
|||||||
@@ -227,7 +227,7 @@ class TransformationMixin:
|
|||||||
|
|
||||||
def _update_diff_pdf_counts_recursive(self, tree_item: QTreeWidgetItem):
|
def _update_diff_pdf_counts_recursive(self, tree_item: QTreeWidgetItem):
|
||||||
"""
|
"""
|
||||||
Aktualisiert rekursiv die Diff-PDF-Anzahl in Spalte 2 für alle TreeNode und XslFile Items.
|
Aktualisiert rekursiv die Diff-PDF-Anzahl in Spalte 1 für alle TreeNode und XslFile Items.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
tree_item: Das TreeWidgetItem (kann Root oder beliebiger Knoten sein)
|
tree_item: Das TreeWidgetItem (kann Root oder beliebiger Knoten sein)
|
||||||
@@ -237,7 +237,7 @@ class TransformationMixin:
|
|||||||
# Aktualisiere nur für TreeNode und XslFile, nicht für XmlFile
|
# Aktualisiere nur für TreeNode und XslFile, nicht für XmlFile
|
||||||
if isinstance(node, (TreeNode, XslFile)):
|
if isinstance(node, (TreeNode, XslFile)):
|
||||||
count = self._count_diff_pdfs_under_node(node, tree_item)
|
count = self._count_diff_pdfs_under_node(node, tree_item)
|
||||||
tree_item.setText(2, str(count) if count > 0 else "")
|
tree_item.setText(1, str(count) if count > 0 else "")
|
||||||
|
|
||||||
# Rekursiv für alle Kinder
|
# Rekursiv für alle Kinder
|
||||||
for i in range(tree_item.childCount()):
|
for i in range(tree_item.childCount()):
|
||||||
@@ -614,11 +614,11 @@ class TransformationMixin:
|
|||||||
self.ui.treeWidget.scrollToItem(tree_item)
|
self.ui.treeWidget.scrollToItem(tree_item)
|
||||||
|
|
||||||
# Entferne vorhandenes Widget (falls Icon vorhanden)
|
# Entferne vorhandenes Widget (falls Icon vorhanden)
|
||||||
self.ui.treeWidget.removeItemWidget(tree_item, 2)
|
self.ui.treeWidget.removeItemWidget(tree_item, 1)
|
||||||
|
|
||||||
# Erstelle und setze Progress Bar
|
# Erstelle und setze Progress Bar
|
||||||
progress_widget, progress_bar = self._create_centered_progress_bar()
|
progress_widget, progress_bar = self._create_centered_progress_bar()
|
||||||
self.ui.treeWidget.setItemWidget(tree_item, 2, progress_widget)
|
self.ui.treeWidget.setItemWidget(tree_item, 1, progress_widget)
|
||||||
|
|
||||||
logger.debug(f"Progress Bar für {xml_file_name} gesetzt und Eltern-Knoten geöffnet")
|
logger.debug(f"Progress Bar für {xml_file_name} gesetzt und Eltern-Knoten geöffnet")
|
||||||
else:
|
else:
|
||||||
@@ -659,7 +659,7 @@ class TransformationMixin:
|
|||||||
self, "Transformation fehlgeschlagen", f"XML-Datei: {xml_file}\n\nFehler:\n{error_text}"
|
self, "Transformation fehlgeschlagen", f"XML-Datei: {xml_file}\n\nFehler:\n{error_text}"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Update Widget in Spalte 2: Entferne Progress Bar, zeige Icon wenn Diff-PDF existiert
|
# Update Widget in Spalte 1: Entferne Progress Bar, zeige Icon wenn Diff-PDF existiert
|
||||||
xml_file_str = result.get("xml_file", "")
|
xml_file_str = result.get("xml_file", "")
|
||||||
xsl_id = result.get("xsl_id", None)
|
xsl_id = result.get("xsl_id", None)
|
||||||
xsl_id_str = "_".join(str(x) for x in xsl_id) if xsl_id else ""
|
xsl_id_str = "_".join(str(x) for x in xsl_id) if xsl_id else ""
|
||||||
@@ -669,13 +669,13 @@ class TransformationMixin:
|
|||||||
|
|
||||||
if tree_item:
|
if tree_item:
|
||||||
# Entferne Progress Bar
|
# Entferne Progress Bar
|
||||||
self.ui.treeWidget.removeItemWidget(tree_item, 2)
|
self.ui.treeWidget.removeItemWidget(tree_item, 1)
|
||||||
|
|
||||||
# Wenn Diff-PDF existiert, zeige Icon
|
# Wenn Diff-PDF existiert, zeige Icon
|
||||||
if diff_pdf_str and Path(diff_pdf_str).exists():
|
if diff_pdf_str and Path(diff_pdf_str).exists():
|
||||||
xml_file_path = Path(xml_file_str)
|
xml_file_path = Path(xml_file_str)
|
||||||
icon_widget = self._create_centered_diff_icon(xml_file_path, xsl_id_str)
|
icon_widget = self._create_centered_diff_icon(xml_file_path, xsl_id_str)
|
||||||
self.ui.treeWidget.setItemWidget(tree_item, 2, icon_widget)
|
self.ui.treeWidget.setItemWidget(tree_item, 1, icon_widget)
|
||||||
logger.debug(f"Diff-Icon für {xml_file_str} gesetzt")
|
logger.debug(f"Diff-Icon für {xml_file_str} gesetzt")
|
||||||
else:
|
else:
|
||||||
logger.debug(f"Keine Diff-PDF für {xml_file_str}, kein Icon gesetzt")
|
logger.debug(f"Keine Diff-PDF für {xml_file_str}, kein Icon gesetzt")
|
||||||
@@ -699,7 +699,7 @@ class TransformationMixin:
|
|||||||
map_key = f"{xml_file_name}|{xsl_id_str}"
|
map_key = f"{xml_file_name}|{xsl_id_str}"
|
||||||
tree_item = self.xml_item_map.get(map_key)
|
tree_item = self.xml_item_map.get(map_key)
|
||||||
if tree_item:
|
if tree_item:
|
||||||
self.ui.treeWidget.removeItemWidget(tree_item, 2)
|
self.ui.treeWidget.removeItemWidget(tree_item, 1)
|
||||||
logger.debug(f"Progress Bar für {map_key} entfernt (Fehler)")
|
logger.debug(f"Progress Bar für {map_key} entfernt (Fehler)")
|
||||||
|
|
||||||
def _on_all_transformations_finished(self, successful_count: int, total_count: int, total_duration: float):
|
def _on_all_transformations_finished(self, successful_count: int, total_count: int, total_duration: float):
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ class TreeManagerMixin:
|
|||||||
if node_type == ItemType.XML_FILE:
|
if node_type == ItemType.XML_FILE:
|
||||||
# Hole XmlFile-Objekt und XSL-ID aus UserRole
|
# Hole XmlFile-Objekt und XSL-ID aus UserRole
|
||||||
xml_file_obj = item.data(0, Qt.ItemDataRole.UserRole)
|
xml_file_obj = item.data(0, Qt.ItemDataRole.UserRole)
|
||||||
xsl_id_str = item.data(1, Qt.ItemDataRole.UserRole)
|
xsl_id_str = item.data(0, Qt.ItemDataRole.UserRole + 2)
|
||||||
|
|
||||||
logger.debug(f"XML-File-Daten: xml_file_obj={xml_file_obj}, xsl_id_str={xsl_id_str}")
|
logger.debug(f"XML-File-Daten: xml_file_obj={xml_file_obj}, xsl_id_str={xsl_id_str}")
|
||||||
|
|
||||||
@@ -630,12 +630,7 @@ class TreeManagerMixin:
|
|||||||
xsl_icon = QIcon.fromTheme("text-x-generic")
|
xsl_icon = QIcon.fromTheme("text-x-generic")
|
||||||
item.setIcon(0, xsl_icon)
|
item.setIcon(0, xsl_icon)
|
||||||
|
|
||||||
# Setze zusätzliche Informationen in Spalte 1
|
|
||||||
if isinstance(node, TreeNode):
|
if isinstance(node, TreeNode):
|
||||||
# TreeNode: Zeige Anzahl der Knoten
|
|
||||||
child_count = len(node.children) if node.children else 0
|
|
||||||
item.setText(1, f"{child_count} Knoten")
|
|
||||||
|
|
||||||
# Speichere zusätzlich die Node-ID in UserRole+1 für Kompatibilität
|
# Speichere zusätzlich die Node-ID in UserRole+1 für Kompatibilität
|
||||||
item.setData(0, Qt.ItemDataRole.UserRole + 1, node.id)
|
item.setData(0, Qt.ItemDataRole.UserRole + 1, node.id)
|
||||||
|
|
||||||
@@ -646,22 +641,19 @@ class TreeManagerMixin:
|
|||||||
child_item = self._create_tree_item_from_node(child)
|
child_item = self._create_tree_item_from_node(child)
|
||||||
item.addChild(child_item)
|
item.addChild(child_item)
|
||||||
|
|
||||||
# Setze Diff-PDF-Anzahl in Spalte 2 (wird später aktualisiert)
|
# Setze Diff-PDF-Anzahl in Spalte 1
|
||||||
diff_count = self._count_diff_pdfs_under_node(node, item)
|
diff_count = self._count_diff_pdfs_under_node(node, item)
|
||||||
if diff_count > 0:
|
if diff_count > 0:
|
||||||
item.setText(2, str(diff_count))
|
item.setText(1, str(diff_count))
|
||||||
|
|
||||||
elif isinstance(node, XslFile):
|
elif isinstance(node, XslFile):
|
||||||
# XslFile: Zeige XSL-Datei-Pfad
|
|
||||||
item.setText(1, str(node.xsl_file))
|
|
||||||
|
|
||||||
# Speichere zusätzlich die Node-ID in UserRole+1 für Kompatibilität
|
# Speichere zusätzlich die Node-ID in UserRole+1 für Kompatibilität
|
||||||
item.setData(0, Qt.ItemDataRole.UserRole + 1, node.id)
|
item.setData(0, Qt.ItemDataRole.UserRole + 1, node.id)
|
||||||
|
|
||||||
# Setze Diff-PDF-Anzahl in Spalte 2 (wird später aktualisiert)
|
# Setze Diff-PDF-Anzahl in Spalte 1
|
||||||
diff_count = self._count_diff_pdfs_under_node(node, item)
|
diff_count = self._count_diff_pdfs_under_node(node, item)
|
||||||
if diff_count > 0:
|
if diff_count > 0:
|
||||||
item.setText(2, str(diff_count))
|
item.setText(1, str(diff_count))
|
||||||
|
|
||||||
# Prüfe ob XSL-Datei existiert
|
# Prüfe ob XSL-Datei existiert
|
||||||
xsl_file_missing = False
|
xsl_file_missing = False
|
||||||
@@ -689,15 +681,14 @@ class TreeManagerMixin:
|
|||||||
for xml in node.xmls:
|
for xml in node.xmls:
|
||||||
xml_item = QTreeWidgetItem()
|
xml_item = QTreeWidgetItem()
|
||||||
xml_item.setText(0, f"XML: {xml.xml.name}")
|
xml_item.setText(0, f"XML: {xml.xml.name}")
|
||||||
xml_item.setText(1, str(xml.xml))
|
|
||||||
|
|
||||||
# Speichere auch das XmlFile-Objekt für XML-Items
|
# Speichere auch das XmlFile-Objekt für XML-Items
|
||||||
xml_item.setData(0, Qt.ItemDataRole.UserRole, xml)
|
xml_item.setData(0, Qt.ItemDataRole.UserRole, xml)
|
||||||
xml_item.setData(0, Qt.ItemDataRole.UserRole + 1, f"xml_{xml.xml.name}")
|
xml_item.setData(0, Qt.ItemDataRole.UserRole + 1, f"xml_{xml.xml.name}")
|
||||||
|
|
||||||
# Speichere XSL-ID in Spalte 1, UserRole für einfachen Zugriff
|
# Speichere XSL-ID in Spalte 0, UserRole+2 für einfachen Zugriff
|
||||||
xsl_id_str = "_".join(str(x) for x in node.id)
|
xsl_id_str = "_".join(str(x) for x in node.id)
|
||||||
xml_item.setData(1, Qt.ItemDataRole.UserRole, xsl_id_str)
|
xml_item.setData(0, Qt.ItemDataRole.UserRole + 2, xsl_id_str)
|
||||||
|
|
||||||
# Setze XML-Icon
|
# Setze XML-Icon
|
||||||
xml_icon = QIcon.fromTheme("text-xml")
|
xml_icon = QIcon.fromTheme("text-xml")
|
||||||
@@ -736,7 +727,7 @@ class TreeManagerMixin:
|
|||||||
# Fallback: Erstelle einfaches Item
|
# Fallback: Erstelle einfaches Item
|
||||||
fallback_item = QTreeWidgetItem()
|
fallback_item = QTreeWidgetItem()
|
||||||
fallback_item.setText(0, "Fehler beim Laden")
|
fallback_item.setText(0, "Fehler beim Laden")
|
||||||
fallback_item.setText(1, str(e))
|
fallback_item.setToolTip(0, str(e))
|
||||||
return fallback_item
|
return fallback_item
|
||||||
|
|
||||||
def _create_centered_progress_bar(self) -> tuple[QWidget, QProgressBar]:
|
def _create_centered_progress_bar(self) -> tuple[QWidget, QProgressBar]:
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "documentor"
|
name = "documentor"
|
||||||
version = "1.4.1"
|
version = "1.5.0"
|
||||||
source = { virtual = "." }
|
source = { virtual = "." }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "connectorx" },
|
{ name = "connectorx" },
|
||||||
|
|||||||
Reference in New Issue
Block a user