Feat: Suchfilter durchsucht auch XSL-Dateinamen (v1.4.1)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-04 12:01:15 +02:00
parent a0626a78a3
commit 8c59187fe9
6 changed files with 11 additions and 8 deletions
+6 -3
View File
@@ -494,10 +494,10 @@ class TreeManagerMixin:
def _filter_tree(self, text: str):
"""
Filtert das TreeWidget nach TreeNode- und XslFile-Bezeichnungen.
Filtert das TreeWidget nach TreeNode- und XslFile-Bezeichnungen sowie XSL-Dateinamen.
Sichtbarkeitsregeln:
- TreeNode/XslFile wird angezeigt, wenn .bez den Suchtext enthält (case-insensitive)
- TreeNode/XslFile wird angezeigt, wenn .bez oder (bei XslFile) der Dateiname den Suchtext enthält (case-insensitive)
- Wenn ein Kind matcht, bleibt der übergeordnete Knoten sichtbar und wird expandiert
- Wenn ein TreeNode matcht, bleiben alle Kinder sichtbar
- XmlFile-Items folgen der Sichtbarkeit ihres Eltern-XslFile
@@ -536,11 +536,14 @@ class TreeManagerMixin:
"""
node = item.data(0, Qt.ItemDataRole.UserRole)
# Prüfe ob dieses Item selbst matcht (nur TreeNode und XslFile haben .bez)
# Prüfe ob dieses Item selbst matcht (TreeNode/XslFile: .bez, XslFile zusätzlich: .xsl_file)
self_matches = False
if isinstance(node, (TreeNode, XslFile)):
bez_text = str(node.bez).lower() if node.bez else ""
self_matches = search_lower in bez_text
if not self_matches and isinstance(node, XslFile):
xsl_filename = node.xsl_file.name.lower() if node.xsl_file else ""
self_matches = search_lower in xsl_filename
# Wenn dieses Item matcht, sichtbar machen und alle Kinder einblenden
if self_matches: