Skip to content

qt: remove required inheritance from MainInterface to QWidget

Pierre Lamot requested to merge chub/vlc:qt/nomainwindow-dev into master

The goal of this merge request is to remove the inheritance from the MainInterface class to QWidget, this provides:

  • A better separation between the UI and the composition stack as the MainInterface is no longer supposed to be the root window, so it can be properly destroyed before the vout window is released (fix: #25865 (closed))

  • Somewhat better performance with the dummy compositor as we're directly using a QQuickWindow and no longer a QQuickWidget which was rendering QML in a framebuffer to integrate the view in the widget window

  • On Win7 we no longer need to have a hidden native window, dialogs will also have the correct modality to the interface when required (preference widget for instance) as we're correctly using the actual window

QML and Widget are handle differently, they usually have their own rendering loop, and specialized window, so a native (widget) window is not

the MainInterface class was using QWidget mainly functionality for the following reason:

  • main window management (window state, size, etc...) most of the functionalities where already transferred to the InterfaceWindowHandler class.

  • provide a parent with modality, for dialogs and menus

  • global drag'N drop

  • dialogs/menus/systray QWidget parenting and modality

  • window position restoration at startup

Edited by Pierre Lamot

Merge request reports