Verbesserung
Top-Thema
Wichtig
Kleinigkeit
Wichtig
Um einen Dialog zu öffnen, benötigt man Kontextinformationen, um insbesondere zu entscheiden, in welchem Fenster der Dialog angezeigt werden soll. Dies geschieht mit Hilfe der LayoutComponent API getDialogSupport. Nur die WindowComponent und das MainLayout setzen den DialogSupport direkt. Ansonsten wird entlang der Komponentenhierarchie traversiert bis der erste Parent mit einem DialogSupport gefunden wird.
Im Rahmen von Ticket #24085 wurde dies geändert indem direkt das MainLayout der entsprechenden Komponente nach seinem DialogSupport gefragt wird. Das ist falsch, da insbesondere externe Fenster i.a.R. den DialogSupport der WindowComponent benötigen.
Konkret wird somit der Dialog zur Auswahl eines Scripts für den ScriptingRecorder im Hauptfenster angezeigt anstatt im Fenster des ScriptingRecorder's.
Umsetzung
LayoutComponent erhält die Variable _window, die die umfassende WindowComponent oder eben das MainLayout enthält. Wenn der Parent einer Komponente gesetzt wird, so wird ebenfalls _window mit Hilfe des neuen Parent aktualisiert.
Test
Starte die TL Demo, öffne den ScriptingRecorder und öffne den Dialog um eine Skript zu laden. Dieser Dialog sollte im ScriptingRecorder Fenster angezeigt werden und nicht im Hauptfenster.