[vlc-commits] [Git][videolan/vlc][master] 14 commits: qt: MainCtx: Expose Minimal View Property

Steve Lhomme (@robUx4) gitlab at videolan.org
Sat Sep 21 07:09:40 UTC 2024



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
95d2bb2c by Darshan Jain at 2024-09-21T06:46:08+00:00
qt: MainCtx: Expose Minimal View Property

This commit will expose property minimalView to for hiding toolbars in Player

It can be activated by:
1. in the menus "view" -> Minimal View
2. Using keyboard shortcut CTRL + H
3. from the Command Line Options using --qt-minimal-view
4. from the Preferences -> check the box "Start in Minimal View Mode"

Look and Feel:
  Minimal View show nothing; No Playqueue, No ControlBar, No
  MediaLibrary.
  Only a blank (black) view is shown with VLC Logo

- - - - -
42e38e81 by Darshan Jain at 2024-09-21T06:46:08+00:00
qt: Update Makefile & meson.build with PlayerToolbarVisibility & MinimalView class

This commit will add files PlayerToolbarVisibility.qml and
MinimalView.qml to Makefile.am, meson.build
required for handling Minimal View in Player

(1) Player: PlayerToolbarVisibility State Machine to Player View

PlayerToolbarVisibilityFSM.qml is a state machine
that handles the visibility of Topbar and ControlBar when switching
Minimal View <==> Player View occurs by different signals:

1. askShow(): control visibility of toolbars in Interactive mode
   (Player.isInteractive)

2. mouseMove () & keyboardMove(): control visibility of toolbars in Video mode
   (hasEmbededVideo)

3. lock(), unlock() & forceUnlock(): handle locking and unlocking of controlBar widgets
   by counting them

 * player toolbars visibility state machine
 *
 * @startuml
 * state Visible {
 *    state NormalVisible {
 *        state AudioMode {
 *        }
 *       state VideoMode {
 *       }
 *    }
 *    state Locked {
 *    }
 * }
 * state Hidden {
 *    state NormalHidden {
 *    }
 *    state MinimalView {
 *    }
 * }
 * @enduml
 *

(2) Player: MinimalView class to player

This commit will add Minimal View class in player that appears when MainCtx.minimalView is enabled and contains an image of VLC cone,
changing its accent with application theme and CSD icons.

- - - - -
9f99c6dd by Darshan Jain at 2024-09-21T06:46:08+00:00
qt: Menus: Add QmlAudioContextMenu for Music Playback and Update Player Menus with close() function

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

- - - - -
857688ea by Darshan Jain at 2024-09-21T06:46:08+00:00
qml: Player: Update PlayerPlaylistVisibility State Machine

This commit modifies the class to handle the DrawerExt Playqueue visibility when switching
to Minimal View <==> Player View.

 * playlist visibility state machine
 *
 * @startuml
 * state Floating {
 * }
 * state Docked {
 *    state Visible {
 *    }
 *    state Hidden {
 *       state followVisible {
 *        }
 *       state minimalOrEmbed {
 *       }
 *    }
 * }
 * @enduml

- - - - -
566154cf by Darshan Jain at 2024-09-21T06:46:08+00:00
qml: Player: Update Player.qml Minimal View and other features

This commit will add the functioning of:
1. PlayerPlaylistVisibilityFSM: switching different states to control
   visibility of Playqueue.

2. PlayerToolbarVisibilityFSM: switching to different states to control
   visibility of TopBar and ControlBar

   It also handle the mouse & keyboard events, locking and unlocking
   states of controlbar widgets when player is in normal mode or
   Interactive mode.

- - - - -
d7ae6167 by Darshan Jain at 2024-09-21T06:46:08+00:00
qml: Menus: Access Minimal View from View Menu and Shortcut "CTRL + H"

By this commit, Minimal View can be accessed (activate/de-activate) by:
1. View Menu (top right menu)
2. shortcut CTRL + H

- - - - -
517933df by Darshan Jain at 2024-09-21T06:46:08+00:00
qml: Player: Implementing Force Unlock to Player components

This commit will propogate a signal forceUnlock() from
PlayerToolbarVisibilityFSM to topBar and controlBar control widgets to unlock
and hide them when switching to Minimal View.

The propogation of signal will be in the direction:

FSM -> Player -> ControlBar & TopBar -> PlayerControlLayout -> ControlRepeater & ControlLayout ->
|-> langButton
|-> PopupIconToolButton
|-> AspectRatioWidget
|-> BookmarkButton
|-> MenuButton
|-> RendererButton
|-> ProgramButton
|-> NavigationWidget

- - - - -
ea4273ae by Pierre Lamot at 2024-09-21T06:46:08+00:00
qml: don't notify minimal mode changes from the player

minimal mode will be handled for the whole interface, so we remove the explicit
management from the player

- - - - -
2a3e6017 by Pierre Lamot at 2024-09-21T06:46:08+00:00
qml: remove minimal mode from PlayerPlaylistVisibilityFSM

- - - - -
f1d93572 by Pierre Lamot at 2024-09-21T06:46:08+00:00
qml: remove minimal mode from PlayerToolbarVisibility

- - - - -
63c99549 by Pierre Lamot at 2024-09-21T06:46:08+00:00
qt: update minimal mode view

minimal view now:
* show video surface
* show CSD
* embed its own context menu when no video is playing

it should be usable as a standalone view

- - - - -
162a8943 by Pierre Lamot at 2024-09-21T06:46:08+00:00
qml: fix onRequestShowMainView handler

correctly handle the case when the view is displaying the player (with or
without main view in history stack)

- - - - -
7b05aa7f by Pierre Lamot at 2024-09-21T06:46:08+00:00
qt: use requestShowPlayerView to request player view from QML

- - - - -
b798bfa6 by Pierre Lamot at 2024-09-21T06:46:08+00:00
qml: show minimal mode at application level

- - - - -


30 changed files:

- modules/gui/qt/Makefile.am
- modules/gui/qt/maininterface/mainctx.cpp
- modules/gui/qt/maininterface/mainctx.hpp
- modules/gui/qt/maininterface/mainui.cpp
- modules/gui/qt/maininterface/qml/MainDisplay.qml
- modules/gui/qt/maininterface/qml/MainInterface.qml
- modules/gui/qt/medialibrary/qml/VideoAll.qml
- modules/gui/qt/medialibrary/qml/VideoAllSubDisplay.qml
- modules/gui/qt/medialibrary/qml/VideoGridItem.qml
- modules/gui/qt/menus/menus.cpp
- modules/gui/qt/menus/qml/GlobalShortcuts.qml
- modules/gui/qt/menus/qml_menu_wrapper.cpp
- modules/gui/qt/menus/qml_menu_wrapper.hpp
- modules/gui/qt/meson.build
- modules/gui/qt/player/qml/ControlBar.qml
- modules/gui/qt/player/qml/ControlLayout.qml
- modules/gui/qt/player/qml/ControlRepeater.qml
- + modules/gui/qt/player/qml/MinimalView.qml
- modules/gui/qt/player/qml/PIPPlayer.qml
- modules/gui/qt/player/qml/Player.qml
- modules/gui/qt/player/qml/PlayerControlLayout.qml
- modules/gui/qt/player/qml/PlayerPlaylistVisibilityFSM.qml
- + modules/gui/qt/player/qml/PlayerToolbarVisibilityFSM.qml
- modules/gui/qt/player/qml/TopBar.qml
- modules/gui/qt/player/qml/controlbarcontrols/ArtworkInfoWidget.qml
- modules/gui/qt/player/qml/controlbarcontrols/AspectRatioWidget.qml
- modules/gui/qt/player/qml/controlbarcontrols/BookmarkButton.qml
- modules/gui/qt/player/qml/controlbarcontrols/LangButton.qml
- modules/gui/qt/player/qml/controlbarcontrols/MenuButton.qml
- modules/gui/qt/player/qml/controlbarcontrols/NavigationWidget.qml


The diff was not included because it is too large.


View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/6a73f5b87c2d2337959db2c9e81fbd7022a191a2...b798bfa60c304aecea301f641d8bce2294d3cf23

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/6a73f5b87c2d2337959db2c9e81fbd7022a191a2...b798bfa60c304aecea301f641d8bce2294d3cf23
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list