1 Commits

Author SHA1 Message Date
info 5f10b79906 Version 1.6.5: 'Bearbeiten' als Standard-Aktion im Tree-Kontextmenü
Der Menüpunkt 'Bearbeiten' steht nun ganz oben im Kontextmenü aller
Knotentypen (TreeNode, XslFile, XmlFile), wird fett dargestellt und
öffnet sich per Doppelklick auf den jeweiligen Knoten.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 13:17:01 +02:00
6 changed files with 57 additions and 20 deletions
+1 -1
View File
@@ -4,7 +4,7 @@
<!-- Paket-Definition (ersetzt Product in v4) -->
<Package
Name="DocuMentor"
Version="1.6.4"
Version="1.6.5"
Manufacturer="Vitali Graf / Software- und Datenbankentwicklung"
UpgradeCode="F498B66C-726D-44AA-95F4-CB4FBDCEF26E"
Language="1031"
+1 -1
View File
@@ -253,5 +253,5 @@ HINWEISE
================================================================================
Stand: April 2026
Erstellt für: DocuMentor v1.6.4
Erstellt für: DocuMentor v1.6.5
================================================================================
+1 -1
View File
@@ -10,7 +10,7 @@
; Build-Befehl: iscc installer.iss
#define MyAppName "DocuMentor"
#define MyAppVersion "1.6.4"
#define MyAppVersion "1.6.5"
#define MyAppPublisher "Ihr Name/Organisation"
#define MyAppURL "https://github.com/yourusername/xsl-validator"
#define MyAppExeName "DocuMentor.exe"
+1 -1
View File
@@ -1,6 +1,6 @@
[project]
name = "DocuMentor"
version = "1.6.4"
version = "1.6.5"
description = "Professionelle XSL-Transformations-Verwaltung und PDF-Generierung"
readme = "README.md"
license = {text = "MIT"}
+52 -15
View File
@@ -59,12 +59,31 @@ class TreeManagerMixin:
# Aktiviere Kontextmenü für das TreeWidget
self.ui.treeWidget.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
self.ui.treeWidget.customContextMenuRequested.connect(self._show_tree_context_menu)
self.ui.treeWidget.itemDoubleClicked.connect(self._on_tree_item_double_clicked)
# Verbinde Selection-Changed-Signal für automatisches Laden von Diff-PDFs
self.ui.treeWidget.itemSelectionChanged.connect(self._on_tree_selection_changed)
logger.debug("Kontextmenü und Selection-Handler für TreeWidget eingerichtet")
def _on_tree_item_double_clicked(self, item, column):
"""
Behandelt Doppelklick auf ein TreeWidget-Item, indem die Bearbeiten-Aktion ausgeführt wird.
Args:
item: Das angeklickte TreeWidgetItem
column: Die Spalte des Doppelklicks
"""
if item.isDisabled():
return
node_type = self._get_node_type_from_item(item)
if node_type == ItemType.TREE_NODE:
self._edit_tree_node(item)
elif node_type == ItemType.XSL_FILE:
self._edit_xsl_file(item)
elif node_type == ItemType.XML_FILE:
self._edit_xml_file(item)
def _show_tree_context_menu(self, position):
"""
Zeigt das Kontextmenü für das TreeWidget an.
@@ -299,6 +318,17 @@ class TreeManagerMixin:
if node_type == ItemType.TREE_NODE:
# Kontextmenü für TreeNode
action_edit = QAction("Bearbeiten", self)
action_edit.setIcon(QIcon(QIcon.fromTheme(QIcon.ThemeIcon.DocumentProperties)))
action_edit.triggered.connect(lambda: self._edit_tree_node(item))
font = action_edit.font()
font.setBold(True)
action_edit.setFont(font)
menu.addAction(action_edit)
menu.setDefaultAction(action_edit)
menu.addSeparator()
action_add_child = QAction("Unterknoten hinzufügen", self)
action_add_child.setIcon(QIcon(QIcon.fromTheme("folder-new")))
action_add_child.triggered.connect(lambda: self._add_tree_node_child(item))
@@ -341,11 +371,6 @@ class TreeManagerMixin:
menu.addSeparator()
action_edit = QAction("Bearbeiten", self)
action_edit.setIcon(QIcon(QIcon.fromTheme(QIcon.ThemeIcon.DocumentProperties)))
action_edit.triggered.connect(lambda: self._edit_tree_node(item))
menu.addAction(action_edit)
action_delete = QAction("Löschen", self)
action_delete.setIcon(QIcon(QIcon.fromTheme(QIcon.ThemeIcon.EditDelete)))
action_delete.triggered.connect(lambda: self._delete_tree_node(item))
@@ -353,6 +378,17 @@ class TreeManagerMixin:
elif node_type == ItemType.XSL_FILE:
# Kontextmenü für XslFile
action_edit = QAction("Bearbeiten", self)
action_edit.setIcon(QIcon(QIcon.fromTheme(QIcon.ThemeIcon.DocumentProperties)))
action_edit.triggered.connect(lambda: self._edit_xsl_file(item))
font = action_edit.font()
font.setBold(True)
action_edit.setFont(font)
menu.addAction(action_edit)
menu.setDefaultAction(action_edit)
menu.addSeparator()
action_add_xml = QAction("XML-Datei hinzufügen", self)
action_add_xml.setIcon(QIcon(QIcon.fromTheme("document-new")))
action_add_xml.triggered.connect(lambda: self._add_xml_file_to_xsl(item))
@@ -397,11 +433,6 @@ class TreeManagerMixin:
menu.addSeparator()
action_edit = QAction("Bearbeiten", self)
action_edit.setIcon(QIcon(QIcon.fromTheme(QIcon.ThemeIcon.DocumentProperties)))
action_edit.triggered.connect(lambda: self._edit_xsl_file(item))
menu.addAction(action_edit)
action_delete = QAction("Löschen", self)
action_delete.setIcon(QIcon(QIcon.fromTheme(QIcon.ThemeIcon.EditDelete)))
action_delete.triggered.connect(lambda: self._delete_xsl_file(item))
@@ -409,6 +440,17 @@ class TreeManagerMixin:
elif node_type == ItemType.XML_FILE:
# Kontextmenü für XmlFile
action_edit = QAction("Bearbeiten", self)
action_edit.setIcon(QIcon(QIcon.fromTheme(QIcon.ThemeIcon.DocumentProperties)))
action_edit.triggered.connect(lambda: self._edit_xml_file(item))
font = action_edit.font()
font.setBold(True)
action_edit.setFont(font)
menu.addAction(action_edit)
menu.setDefaultAction(action_edit)
menu.addSeparator()
# Transformations-Aktionen
action_transform = QAction("Transformieren", self)
action_transform.setIcon(QIcon(QIcon.fromTheme("system-run")))
@@ -422,11 +464,6 @@ class TreeManagerMixin:
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))
menu.addAction(action_edit)
action_delete = QAction("Löschen", self)
action_delete.setIcon(QIcon(QIcon.fromTheme(QIcon.ThemeIcon.EditDelete)))
action_delete.triggered.connect(lambda: self._delete_xml_file(item))
Generated
+1 -1
View File
@@ -39,7 +39,7 @@ wheels = [
[[package]]
name = "documentor"
version = "1.6.4"
version = "1.6.5"
source = { virtual = "." }
dependencies = [
{ name = "connectorx" },