Feat: Legende oben links und auto-fit bei Suche/Filter im Abhängigkeitsgraph (v1.2.5)

- Legende von unten links nach oben links verschoben, damit vis.js-Navigationspfeile nicht überdeckt werden
- network.fit() mit Animation bei jeder Suche und Checkbox-Änderung, sodass alle relevanten Knoten im Viewport sichtbar sind

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-22 21:11:14 +01:00
parent 1265309b41
commit 09312dbd66
8 changed files with 19 additions and 9 deletions
+1 -1
View File
@@ -4,7 +4,7 @@
<!-- Paket-Definition (ersetzt Product in v4) -->
<Package
Name="DocuMentor"
Version="1.2.4"
Version="1.2.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: März 2026
Erstellt für: DocuMentor v1.2.4
Erstellt für: DocuMentor v1.2.5
================================================================================
+1 -1
View File
@@ -10,7 +10,7 @@
; Build-Befehl: iscc installer.iss
#define MyAppName "DocuMentor"
#define MyAppVersion "1.2.4"
#define MyAppVersion "1.2.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.2.4"
version = "1.2.5"
description = "Professionelle XSL-Transformations-Verwaltung und PDF-Generierung"
readme = "README.md"
license = {text = "MIT"}
+12 -2
View File
@@ -810,7 +810,7 @@ class XslDependencyDialog(QDialog):
}}
#graph-legend {{
position: absolute;
bottom: 16px;
top: 16px;
left: 16px;
background: {bg_hex}cc;
border: 1px solid #888;
@@ -994,7 +994,10 @@ class XslDependencyDialog(QDialog):
edges.add(edgesData);
allNodes = nodes.get();
if (!term) return;
if (!term) {{
network.fit({{ animation: {{ duration: 400, easingFunction: 'easeInOutQuad' }} }});
return;
}}
// 1. Matching-Knoten finden
var matchedIds = new Set();
@@ -1057,6 +1060,7 @@ class XslDependencyDialog(QDialog):
}});
nodes.update(updates);
allNodes = nodes.get();
network.fit({{ animation: {{ duration: 400, easingFunction: 'easeInOutQuad' }} }});
}} else {{
// Originalzustand wiederherstellen falls vorher gefiltert
@@ -1090,6 +1094,12 @@ class XslDependencyDialog(QDialog):
}}
}});
edges.update(edgeUpdates);
if (term && matchedIds.size > 0) {{
network.fit({{ nodes: Array.from(matchedIds), animation: {{ duration: 400, easingFunction: 'easeInOutQuad' }} }});
}} else {{
network.fit({{ animation: {{ duration: 400, easingFunction: 'easeInOutQuad' }} }});
}}
}}
}}
</script>
+1 -1
View File
@@ -271,7 +271,7 @@
<string>Entfernt alle XSL-Dateien aus dem Graph, die nicht zum Suchbegriff passen und nicht direkt oder indirekt mit passenden Dateien verbunden sind</string>
</property>
<property name="text">
<string>Nur betroffene Dateien anzeigen</string>
<string>Nur von der Suche betroffene Dateien anzeigen</string>
</property>
<property name="checked">
<bool>true</bool>
+1 -1
View File
@@ -234,7 +234,7 @@ class Ui_XslDependencyDialog(object):
#if QT_CONFIG(tooltip)
self.graphFilterConnectedCheck.setToolTip(QCoreApplication.translate("XslDependencyDialog", u"Entfernt alle XSL-Dateien aus dem Graph, die nicht zum Suchbegriff passen und nicht direkt oder indirekt mit passenden Dateien verbunden sind", None))
#endif // QT_CONFIG(tooltip)
self.graphFilterConnectedCheck.setText(QCoreApplication.translate("XslDependencyDialog", u"Nur betroffene Dateien anzeigen", None))
self.graphFilterConnectedCheck.setText(QCoreApplication.translate("XslDependencyDialog", u"Nur von der Suche betroffene Dateien anzeigen", None))
self.statusLabel.setText("")
# retranslateUi
Generated
+1 -1
View File
@@ -34,7 +34,7 @@ wheels = [
[[package]]
name = "documentor"
version = "1.2.3"
version = "1.2.5"
source = { virtual = "." }
dependencies = [
{ name = "connectorx" },