Resize handle may overlap the scroll bar. In that case, using
scroll bar may be impossible because the resize handle might
have a width that is larger than the width of the scroll bar.
Since scroll bar is not customized, we have no control over
the width of the scroll bar. Therefore, in this patch it is
proposed to set the width of resize handle to half of the
scroll bar's width. This makes both scrolling and resizing
feasible.
Qt has built-in event compression for certain events, such
as window resize. However, this is not the case with mouse
move event. In such cases, filtering needs to be handled
manually.
This approach is already followed in the volume slider.
It is not a good idea to request backend to do an operation
just to override it within the same event loop processing
cycle. Without filtering, CPU utilization increases a lot
and stuttering may be observed.
Volume or player position update must be asked to the
backend at most once per Qt event loop cycle. With
`Qt.callLater()` this can be satisfied.
When `listView.itemAtIndex(0)` is used, the delegate item is
not resolved when new items added which makes it remain
null.
When `listView.count` is referred as done here, the QML
engine establishes a relational binding and this causes
the property to be updated each time the count is updated.
Regression since 300b3b9c.
Scene graph initialization occurs asynchronously, while `makeMainInterface()`
expects an immediate return with an error code.
In other compositor integrations, it is trivial to return immediately. However,
in CompositorDirectComposition we have to wait for scene graph to initialize so
that we know what graphics API it is using because DComp composition can only work
with D3D11 and D3D12.
In order to satisfy that, an event loop is used here to wait until the scene
graph is initialized. This has worked fine, however there was no handling
in case an error occurs during scene graph initialization.
Now, we handle the error so that the interface is not stuck in waiting for
the event loop to quit. This will make the interface hence the Qt module
close gracefully.
*GetMediaSource returns a strong reference which must be
released by vlc_media_source_Release (see vlc_media_source_provider_GetMediaSource),
store the returned referenced in appropriate RAII handler so
it can be automatically removed at the end of scope
If items are dropped to background rather than into a
playlist that is available, then a new playlist is created
with the dropped items as its sole content.
With this patch, it is now possible to drag
media library and input items directly
into a playlist.
New input item is created for an unknown
source. So, actions such as dragging from
file browser should also be supported as long
as the drag event contains URLs.
It is also possible to append a playlist into
another playlist.
Previously, it was only possible to first
load the playlist in order to add items.
Now, in the playlist view (the view where
all the playlists are listed) items can be
dropped in to the playlists.