this will allow to unload the interface module without unloading Qt in a
further patch.
the new structure is still a vlc object as we use it notably for logging
capacity and to interact with vlc variables
previously RoundImage was implemented in QML using Opacitymask which was
slow, new implementation done in cpp using QQuickPaintedItem is around ~5x faster
qmlRegisterSingletonType provides a convenient way
for the QML-side to invoke static methods of classes
that are not created or can not be created.
PlayerListModel singleton is generated from the
static function of
PlayerControlbarModel::getPlaylistIdentifierListModel.
Signed-off-by: Pierre Lamot <pierre@videolabs.io>
* PlayerControlbarModel class is repurposed
and renamed to "player_controlbar_model.cpp/hpp".
PlayerControlbarModel is now a supermodel that
instantiates and handles three ControlListModel
for its 'left', 'center', and 'right' properties.
ControlListModel is the stripped down version of
the old PlayerControlbarModel.
* ControlbarProfileModel is created during
MainInterface initialization. ControlbarProfileModel
creates and handles toolbar/controlbar profiles
that act as a wrapper of PlayerControlbarModel
instances. Saving and loading from settings
happens in ControlbarProfileModel.
* Default control layout is now defined in
ControlbarProfile class. ControlbarProfile
injects the default configuration
during construction.
* Default profiles are now defined in
ControlbarProfileModel class.
ControlbarProfileModel class automatically
matches defaults based on player identifiers.
Signed-off-by: Pierre Lamot <pierre@videolabs.io>
MLVideo instances are created from a QThreadPool thread. As a
consequence, as a QObject, each one live (by default) in this separate
thread.
The behavior of dynamic properties or signals/slots would be confusing,
so do not inherit QObject.
Signed-off-by: Pierre Lamot <pierre@videolabs.io>
The item id sometimes represents the id of the "current" item, sometimes
the id of the "parent" item. Therefore, the fact that it is a "parent"
id depends on the context, and is not intrinsic to the type.
This caused confusion when getId() returned a MLParentId, representing
the id of the current item.
Rename to MLItemId to clarify.
Signed-off-by: Pierre Lamot <pierre@videolabs.io>