If Qt version is at least 6.5.0, QtQuick.Effects is expected to be available
and no type from Qt5Compat.GraphicalEffects is used.
However, we still need to check for `Qt5Compat.GraphicalEffects`'s existence,
because some types such as `FastBlur` are still used if Qt version is less than
6.5.0.
If Qt version is at least 6.5.0, the application expects that QtQuick.Effects
module is available. If it is not available, the interface is going to encounter
error when a type provided by that module is used and end up being in broken state.
If we fail early, as we do with the other modules, then the interface will close
gracefully.
Qt always logs when an imported module is not found. The user should install the
required module using the package manager. This module is already provided with
the contrib Qt.
This commit will
1. Register the QmlAudioContextMenu, a Right-Click popup menu for Music Playback in mainui.cpp
2. Implement QmlAudioContextMenu in qml_menu_wrapper class
3. Add close() function for player menus:
QmlGlobalMenu
QmlBookmarkMenu
QmlProgramMenu
QmlRendererMenu
we don't need to store the image provider inside the medialibray as it's only
useful to the QMLEngine. We only needed it fot crafting URL, but this can be
done with a stateless function.
QML types need to be cleared for two reasons:
- Protected modules do not allow new type registrations.
- It does not make sense to re-register same types.
This is currently the case if a compositor fails when
initializing the quick view.
Note that `qmlClearTypeRegistrations()` is effective on
protected modules as well.
It is a known bug from Qt's side that once Qt Quick view
(engine) is fully initialized, re-initialization is flaky
and causes crashes. See QTBUG-113274. Unfortunately this
does not fix that issue.
IDE such as QtCreator provides code completion qmlRegistered types, as the uri
is a variable the introspection function doesn't know in wich namepace the
classes belongs, adding this kind of annotation fixes the introspection
artwork may reference a network resource, so far we were using QNetwork to read
these resources, but it has some drawbacks
* The protocol for the artwork may not be handled by QNetwork
* The access to the artwork may require credentials that will likely be the same
as the one required to access the media
* QNetwork may not be present as this is not a requirement for building VLC
Image may require to be loaded using VLC access using special URI image://vlcaccess/?uri=......