[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