Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Register
  • Sign in
  • VLC VLC
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 3.8k
    • Issues 3.8k
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 288
    • Merge requests 288
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • VideoLANVideoLAN
  • VLCVLC
  • Merge requests
  • !3776

qml: provide common FSM implementation

  • Review changes

  • Download
  • Patches
  • Plain diff
Merged Pierre Lamot requested to merge chub/vlc:qml/fsm-impl into master Jun 08, 2023
  • Overview 19
  • Commits 4
  • Pipelines 4
  • Changes 11

this MR is the continuity of !3735 (merged), it aim to factorize the implementation used in this MR and provide support for Hierachical State Machines, as it's used in the PlaylistVisibility state machine

why not qt implementation:

This avoid requiring an extra dependency

QtQml.StateMachine implementation is quite buggy: no being able to pass complex types through guard and actions is really limiting.

Qt SCXML implementation requires another language for declaring FSM and would be tedious to integrate with meson.

what's missing:

  • no timeout transition: right now you can start/stop a Timer instance in your enter/exit callbacks, it's more verbose but it felt unnecessary to add a special implementation for it.

This MR also introduce some unit tests for QML, at the moment nothing is registered in the engine, so it's a bit limited regarding what we can test.

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: qml/fsm-impl

VideoLAN code repository instance