Feat: Suchfilter durchsucht auch XSL-Dateinamen (v1.4.1)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user