timeline: Add clip markers display and management
This lays ground for implementing the beat detection feature, which will heavily utilize elements implemented here.
Mostly finished. Looking for feedback, both UX- and code-quality wise, as I know there are lots of things to possibly improve in that regard.
Important: depends on changes coming in the 1.20 GES release.
Short description:
- Adds
ClipMarkersBox
, inheriting from the already existing (timeline)MarkersBox
, which makes it possible to display and manage (add / move / remove) markers on each clip (or more precisely - source). - Clips are displayed per-source, so audio markers are separate from the video ones, for example.
-
MarkerListManager
is introduced to act as central point of handling marker lists on a given element - initializes a default list on the source it's attached to, exposes methods for adding / removing lists, changing their snappability, as well as takes care of changing the active one (turning off snapppability when a list is not visible, for example) - Adds necessary settings (
MarkerProperties
, leveragingMarkerListManager
) to manage which list we want to display (or hide, if we don't need any markers), change whether we want them to be snappable, etc. - Moves marker-seeking / adding keyboard shortcut actions to the
TimelineContainer
, which takes into account all selected clips when performing an action, or focuses on the timeline markers if no clips are selected.
Edited by Piotrek Brzeziński