The GtMdiLauncher is quite messy IMHO. Both from an API point of view and from looking at the code it is not clear who ownes which objects.
For example, there are connections that ....
~delete an MdiItem if the widget is closed~
Still, somehow the MdiItem is closed when the widget is closed, but i could not find the code for this. Maybe in the MdiItems themselves?
delete the widget if the MdiItem was deleted
and in addition within the MdiItem desctructor the widget is deleted again (if it still exists).
Maybe we could work with unqiue_ptr or the "volatile" pointer from the IntelliGraph module to make this system and the API more clear.
Detaching a widget became quite messy due to these relation ships (see #604)
Impact on the codebase
Ideally this should both result in a ABI and API change
Summary
The
GtMdiLauncher
is quite messy IMHO. Both from an API point of view and from looking at the code it is not clear who ownes which objects.For example, there are connections that ....
Maybe we could work with
unqiue_ptr
or the "volatile" pointer from the IntelliGraph module to make this system and the API more clear.Detaching a widget became quite messy due to these relation ships (see #604)
Impact on the codebase
Ideally this should both result in a ABI and API change
Current workarounds
No response