[vlc-commits] [Git][videolan/vlc][master] 8 commits: qt: expose frame prev in player controller

Steve Lhomme (@robUx4) gitlab at videolan.org
Fri Jul 3 16:30:10 UTC 2026



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
e34e4898 by Pierre Lamot at 2026-07-03T16:03:23+00:00
qt: expose frame prev in player controller

- - - - -
284366c6 by Pierre Lamot at 2026-07-03T16:03:23+00:00
qml: rename FrameButton.qml into FrameNextButton.qml

we are going to have a frame prev button

- - - - -
e7213245 by Pierre Lamot at 2026-07-03T16:03:23+00:00
qml: introduce frame prev widget

- - - - -
ed412664 by Pierre Lamot at 2026-07-03T16:03:23+00:00
qt: mark available control widgets id in the enum

Available id are getting scarce before fixed IDs, make sure we won't have collision
when attributing future widgets id.

- - - - -
16993d1e by Alexandre Perraud at 2026-07-03T16:03:23+00:00
qt : new play reverse svg icon

- - - - -
ca33051f by Alexandre Perraud at 2026-07-03T16:03:23+00:00
qt : add new next frame svg icon

- - - - -
2c31cd9d by Alexandre Perraud at 2026-07-03T16:03:23+00:00
qt : add new previous frame svg icon

- - - - -
f921e509 by Alexandre Perraud at 2026-07-03T16:03:23+00:00
qt : Remove old fram-by-frame icon

- - - - -


18 changed files:

- modules/gui/qt/Makefile.am
- modules/gui/qt/dialogs/toolbar/controlbar_profile_model.cpp
- modules/gui/qt/meson.build
- modules/gui/qt/pixmaps/VLCIcons.json
- modules/gui/qt/pixmaps/VLCIcons.ttf
- − modules/gui/qt/pixmaps/icons/frame-by-frame.svg
- + modules/gui/qt/pixmaps/icons/ic_fluent_next_frame.svg
- + modules/gui/qt/pixmaps/icons/ic_fluent_play_reverse_filled.svg
- + modules/gui/qt/pixmaps/icons/ic_fluent_previous_frame.svg
- − modules/gui/qt/pixmaps/icons/play_reverse.svg
- modules/gui/qt/player/control_list_model.hpp
- modules/gui/qt/player/player_controller.cpp
- modules/gui/qt/player/player_controller.hpp
- modules/gui/qt/player/qml/PlayerControlbarControls.qml
- modules/gui/qt/player/qml/controlbarcontrols/FrameButton.qml → modules/gui/qt/player/qml/controlbarcontrols/FrameNextButton.qml
- + modules/gui/qt/player/qml/controlbarcontrols/FramePrevButton.qml
- modules/gui/qt/style/VLCIcons.qml
- po/POTFILES.in


Changes:

=====================================
modules/gui/qt/Makefile.am
=====================================
@@ -818,7 +818,8 @@ libqt_plugin_la_RES = \
 	pixmaps/icons/expand.svg \
 	pixmaps/icons/ic_fluent_options.svg \
 	pixmaps/icons/ic_fluent_fast_forward.svg \
-	pixmaps/icons/frame-by-frame.svg \
+	pixmaps/icons/ic_fluent_next_frame.svg \
+	pixmaps/icons/ic_fluent_previous_frame.svg \
 	pixmaps/icons/ic_fluent_full_screen_maximize.svg \
 	pixmaps/icons/ic_fluent_grid.svg \
 	pixmaps/icons/history.svg \
@@ -834,7 +835,7 @@ libqt_plugin_la_RES = \
 	pixmaps/icons/ic_playlist_clear.svg \
 	pixmaps/icons/ic_playlist.svg \
 	pixmaps/icons/ic_fluent_play.svg \
-	pixmaps/icons/play_reverse.svg \
+	pixmaps/icons/ic_fluent_play_reverse_filled.svg \
 	pixmaps/icons/ic_fluent_arrow_move.svg \
 	pixmaps/icons/ic_fluent_chevron_down_24.svg \
 	pixmaps/icons/ic_fluent_chevron_left_24.svg \
@@ -1197,7 +1198,8 @@ libqml_module_playercontrols_a_QML = \
 	player/qml/controlbarcontrols/ExpandingSpacerWidget.qml \
 	player/qml/controlbarcontrols/ExtendedSettingsButton.qml \
 	player/qml/controlbarcontrols/FasterButton.qml \
-	player/qml/controlbarcontrols/FrameButton.qml \
+	player/qml/controlbarcontrols/FrameNextButton.qml \
+	player/qml/controlbarcontrols/FramePrevButton.qml \
 	player/qml/controlbarcontrols/FullscreenButton.qml \
 	player/qml/controlbarcontrols/InfoButton.qml \
 	player/qml/controlbarcontrols/LangButton.qml \


=====================================
modules/gui/qt/dialogs/toolbar/controlbar_profile_model.cpp
=====================================
@@ -259,7 +259,7 @@ decltype (ControlbarProfileModel::m_defaults)
                                     ControlListModel::RECORD_BUTTON,
                                     ControlListModel::SNAPSHOT_BUTTON,
                                     ControlListModel::ATOB_BUTTON,
-                                    ControlListModel::FRAME_BUTTON
+                                    ControlListModel::FRAME_NEXT_BUTTON
                                 },
                                 {},
                                 {
@@ -286,7 +286,7 @@ decltype (ControlbarProfileModel::m_defaults)
                                     ControlListModel::RECORD_BUTTON,
                                     ControlListModel::SNAPSHOT_BUTTON,
                                     ControlListModel::ATOB_BUTTON,
-                                    ControlListModel::FRAME_BUTTON
+                                    ControlListModel::FRAME_NEXT_BUTTON
                                 },
                                 {},
                                 {


=====================================
modules/gui/qt/meson.build
=====================================
@@ -762,7 +762,8 @@ qml_modules += {
        'player/qml/controlbarcontrols/ExpandingSpacerWidget.qml',
        'player/qml/controlbarcontrols/ExtendedSettingsButton.qml',
        'player/qml/controlbarcontrols/FasterButton.qml',
-       'player/qml/controlbarcontrols/FrameButton.qml',
+       'player/qml/controlbarcontrols/FrameNextButton.qml',
+       'player/qml/controlbarcontrols/FramePrevButton.qml',
        'player/qml/controlbarcontrols/FullscreenButton.qml',
        'player/qml/controlbarcontrols/InfoButton.qml',
        'player/qml/controlbarcontrols/LangButton.qml',


=====================================
modules/gui/qt/pixmaps/VLCIcons.json
=====================================
@@ -30,7 +30,8 @@
         {"key":"expand_inverted", "path": "./icons/expand_inverted.svg"},
         {"key":"expand", "path": "./icons/expand.svg"},
         {"key":"faster", "path": "./icons/ic_fluent_fast_forward.svg"},
-        {"key":"frame_by_frame", "path": "./icons/frame-by-frame.svg"},
+        {"key":"next_frame", "path": "./icons/ic_fluent_next_frame.svg"},
+        {"key":"previous_frame", "path": "./icons/ic_fluent_previous_frame.svg"},
         {"key":"fullscreen", "path": "./icons/ic_fluent_full_screen_maximize.svg"},
         {"key":"grid", "path": "./icons/ic_fluent_grid.svg"},
         {"key":"history", "path": "./icons/history.svg"},
@@ -48,7 +49,7 @@
         {"key":"ic_fluent_chevron_left_24", "path": "./icons/ic_fluent_chevron_left_24.svg"},
         {"key":"ic_fluent_chevron_right_24", "path": "./icons/ic_fluent_chevron_right_24.svg"},
         {"key":"ic_fluent_chevron_up_24", "path": "./icons/ic_fluent_chevron_up_24.svg"},
-        {"key":"play_reverse", "path": "./icons/play_reverse.svg"},
+        {"key":"play_reverse", "path": "./icons/ic_fluent_play_reverse_filled.svg"},
         {"key":"playlist", "path": "./icons/ic_playlist.svg"},
         {"key":"playlist_clear", "path": "./icons/ic_playlist_clear.svg"},
         {"key":"previous", "path": "./icons/ic_fluent_previous.svg"},


=====================================
modules/gui/qt/pixmaps/VLCIcons.ttf
=====================================
Binary files a/modules/gui/qt/pixmaps/VLCIcons.ttf and b/modules/gui/qt/pixmaps/VLCIcons.ttf differ


=====================================
modules/gui/qt/pixmaps/icons/frame-by-frame.svg deleted
=====================================
@@ -1,6 +0,0 @@
-<svg viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
-  <g fill="#747474" fill-rule="evenodd">
-    <path d="m16 8 26 16-26 16zM6 8h6v32H6z"/>
-  </g>
-</svg>
-


=====================================
modules/gui/qt/pixmaps/icons/ic_fluent_next_frame.svg
=====================================
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24" height="24" fill="none" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
+ <path d="m6.5 5c0.27614 0 0.5 0.22386 0.5 0.5v13c0 0.2761-0.22386 0.5-0.5 0.5s-0.5-0.2239-0.5-0.5v-13c0-0.27614 0.22386-0.5 0.5-0.5zm5.4468 0.21436c-0.83041-0.5576-1.9468 0.0375-1.9468 1.0378v11.5c0 1.0041 1.1242 1.5984 1.954 1.0329l8.4993-5.7929c0.731-0.4983 0.7273-1.5775-0.0072-2.0707zm-0.94683 1.0378c0-0.20005 0.22328-0.31907 0.38937-0.20755l8.4992 5.7071c0.1469 0.09864 0.1477 0.31446 0.0015 0.41416l-8.4993 5.7928c-0.16596 0.1131-0.3908-0.0057-0.3908-0.2065z" fill="#212121"/>
+</svg>


=====================================
modules/gui/qt/pixmaps/icons/ic_fluent_play_reverse_filled.svg
=====================================
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24" height="24" fill="none" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
+ <path d="m4.778 10.685c-1.0365 0.5698-1.0365 2.0591 0 2.6289l9.9995 5.497c0.99967 0.5495 2.2226-0.1738 2.2226-1.3145v-10.994c0-1.1408-1.2229-1.864-2.2226-1.3145z" fill="#212121"/>
+</svg>


=====================================
modules/gui/qt/pixmaps/icons/ic_fluent_previous_frame.svg
=====================================
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24" height="24" fill="none" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
+ <path d="m17.5 5c-0.2761 0-0.5 0.22386-0.5 0.5v13c0 0.2761 0.2239 0.5 0.5 0.5 0.2762 0 0.5-0.2239 0.5-0.5v-13c0-0.27614-0.2238-0.5-0.5-0.5zm-5.4468 0.21436c0.8304-0.5576 1.9468 0.0375 1.9468 1.0378v11.5c0 1.0041-1.1242 1.5984-1.954 1.0329l-8.4992-5.7929c-0.73106-0.4983-0.72732-1.5775 0.00717-2.0707zm0.9468 1.0378c0-0.20005-0.2233-0.31907-0.3893-0.20755l-8.4993 5.7071c-0.1469 0.09864-0.14764 0.31446-0.00143 0.41416l8.4992 5.7928c0.166 0.1131 0.3908-0.0057 0.3908-0.2065z" fill="#212121"/>
+</svg>


=====================================
modules/gui/qt/pixmaps/icons/play_reverse.svg deleted
=====================================
@@ -1,4 +0,0 @@
-<svg viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
-  <path d="M36 8 10 24l26 16z" fill="#747474" fill-rule="evenodd"/>
-</svg>
-


=====================================
modules/gui/qt/player/control_list_model.hpp
=====================================
@@ -34,6 +34,8 @@ public:
         ID_ROLE = Qt::UserRole
     };
 
+    //changin the enum order or inserting new ID before the end will break user configuration
+    //RESERVED_0x__ are available for future use, they can be repurposed
     enum ControlType
     {
         PLAY_BUTTON,
@@ -49,7 +51,7 @@ public:
         SNAPSHOT_BUTTON,
         RECORD_BUTTON,
         ATOB_BUTTON,
-        FRAME_BUTTON,
+        FRAME_NEXT_BUTTON,
         SKIP_BACK_BUTTON,
         SKIP_FW_BUTTON,
         QUIT_BUTTON,
@@ -66,6 +68,8 @@ public:
         ARTWORK_INFO,
         PLAYBACK_SPEED_BUTTON,
         HIGH_RESOLUTION_TIME_WIDGET,
+        FRAME_PREV_BUTTON,
+        RESERVED_0X1F,
 
         SPLITTER = 0x20,
         VOLUME,
@@ -78,7 +82,27 @@ public:
         NAVIGATION_BUTTONS,
         PROGRAM_BUTTON,
         NAVIGATION_BOX,
-        SPECIAL_MAX,
+        RESERVED_0X2B,
+        RESERVED_0X2C,
+        RESERVED_0X2D,
+        RESERVED_0X2E,
+        RESERVED_0X2F,
+        RESERVED_0X30,
+        RESERVED_0X31,
+        RESERVED_0X32,
+        RESERVED_0X33,
+        RESERVED_0X34,
+        RESERVED_0X35,
+        RESERVED_0X36,
+        RESERVED_0X37,
+        RESERVED_0X38,
+        RESERVED_0X39,
+        RESERVED_0X3A,
+        RESERVED_0X3B,
+        RESERVED_0X3C,
+        RESERVED_0X3D,
+        RESERVED_0X3E,
+        RESERVED_0X3F,
 
         WIDGET_SPACER = 0x40,
         WIDGET_SPACER_EXTEND,
@@ -86,6 +110,10 @@ public:
     };
     Q_ENUM(ControlType)
 
+    static_assert(RESERVED_0X1F == 0x1F, "missaligned");
+    static_assert(RESERVED_0X2B == 0x2B, "missaligned");
+    static_assert(RESERVED_0X3F == 0x3F, "missaligned");
+
     // Basic functionality:
     int rowCount(const QModelIndex &parent = QModelIndex()) const override;
 


=====================================
modules/gui/qt/player/player_controller.cpp
=====================================
@@ -1439,6 +1439,15 @@ void PlayerController::frameNext()
     vlc_player_NextVideoFrame( d->m_player );
 }
 
+void PlayerController::framePrev()
+{
+    Q_D(PlayerController);
+    vlc_player_locker lock{ d->m_player };
+    if( !d->isCurrentItemSynced() )
+        return;
+    vlc_player_PreviousVideoFrame( d->m_player );
+}
+
 //TRACKS
 
 void PlayerController::setAudioDelay(VLCDuration delay)


=====================================
modules/gui/qt/player/player_controller.hpp
=====================================
@@ -243,6 +243,7 @@ public slots:
     void jumpTime( VLCTime i_time );
     void jumpToPos( double );
     void frameNext();
+    void framePrev();
 
     //title/chapters/menu
     void sectionNext();


=====================================
modules/gui/qt/player/qml/PlayerControlbarControls.qml
=====================================
@@ -43,7 +43,8 @@ QtObject {
         { id: ControlListModel.SNAPSHOT_BUTTON, file: "SnapshotButton.qml", label: VLCIcons.snapshot, text: qsTr("Snapshot") },
         { id: ControlListModel.RECORD_BUTTON, file: "RecordButton.qml", label: VLCIcons.record, text: qsTr("Record") },
         { id: ControlListModel.ATOB_BUTTON, file: "AtoBButton.qml", label: VLCIcons.atob, text: qsTr("A-B Loop") },
-        { id: ControlListModel.FRAME_BUTTON, file: "FrameButton.qml", label: VLCIcons.frame_by_frame, text: qsTr("Frame By Frame") },
+        { id: ControlListModel.FRAME_PREV_BUTTON, file: "FrameNextButton.qml", label: VLCIcons.next_frame, text: qsTr("Next Frame") },
+        { id: ControlListModel.FRAME_NEXT_BUTTON, file: "FramePrevButton.qml", label: VLCIcons.previous_frame, text: qsTr("Previous Frame") },
         { id: ControlListModel.REVERSE_BUTTON, file: "ReverseButton.qml", label: VLCIcons.play_reverse, text: qsTr("Trickplay Reverse") },
         { id: ControlListModel.SKIP_BACK_BUTTON, file: "SkipBackButton.qml", label: VLCIcons.skip_back, text: qsTr("Step backward") },
         { id: ControlListModel.SKIP_FW_BUTTON, file: "SkipForwardButton.qml", label: VLCIcons.skip_for, text: qsTr("Step forward") },


=====================================
modules/gui/qt/player/qml/controlbarcontrols/FrameButton.qml → modules/gui/qt/player/qml/controlbarcontrols/FrameNextButton.qml
=====================================
@@ -28,7 +28,7 @@ Widgets.IconToolButton {
 
     enabled: Player.ratechangable
 
-    text: VLCIcons.frame_by_frame
+    text: VLCIcons.next_frame
     onClicked: Player.frameNext()
     description: qsTr("Next frame")
 }


=====================================
modules/gui/qt/player/qml/controlbarcontrols/FramePrevButton.qml
=====================================
@@ -0,0 +1,34 @@
+/*****************************************************************************
+ * Copyright (C) 2021 VLC authors and VideoLAN
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * ( at your option ) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+import QtQuick
+
+
+import VLC.Widgets as Widgets
+import VLC.Player
+import VLC.Style
+
+
+Widgets.IconToolButton {
+    id: frameBtn
+
+    enabled: Player.ratechangable
+
+    text: VLCIcons.previous_frame
+    onClicked: Player.framePrev()
+    description: qsTr("Previous frame")
+}


=====================================
modules/gui/qt/style/VLCIcons.qml
=====================================
@@ -39,68 +39,69 @@ QtObject {
     readonly property string expand_inverted : "\ue017"
     readonly property string expand : "\ue018"
     readonly property string faster : "\ue019"
-    readonly property string frame_by_frame : "\ue01a"
-    readonly property string fullscreen : "\ue01b"
-    readonly property string grid : "\ue01c"
-    readonly property string history : "\ue01d"
-    readonly property string home : "\ue01e"
-    readonly property string info : "\ue01f"
-    readonly property string list : "\ue020"
-    readonly property string more : "\ue021"
-    readonly property string next : "\ue022"
-    readonly property string ok : "\ue023"
-    readonly property string pause_filled : "\ue024"
-    readonly property string play_filled : "\ue025"
-    readonly property string play : "\ue026"
-    readonly property string ic_fluent_arrow_move : "\ue027"
-    readonly property string ic_fluent_chevron_down_24 : "\ue028"
-    readonly property string ic_fluent_chevron_left_24 : "\ue029"
-    readonly property string ic_fluent_chevron_right_24 : "\ue02a"
-    readonly property string ic_fluent_chevron_up_24 : "\ue02b"
-    readonly property string play_reverse : "\ue02c"
-    readonly property string playlist : "\ue02d"
-    readonly property string playlist_clear : "\ue02e"
-    readonly property string previous : "\ue02f"
-    readonly property string profile_new : "\ue030"
-    readonly property string record : "\ue031"
-    readonly property string remove : "\ue032"
-    readonly property string renderer : "\ue033"
-    readonly property string repeat_all : "\ue034"
-    readonly property string repeat_one : "\ue035"
-    readonly property string search : "\ue036"
-    readonly property string shuffle : "\ue037"
-    readonly property string skip_back : "\ue038"
-    readonly property string skip_for : "\ue039"
-    readonly property string slower : "\ue03a"
-    readonly property string snapshot : "\ue03b"
-    readonly property string space : "\ue03c"
-    readonly property string stop : "\ue03d"
-    readonly property string stream : "\ue03e"
-    readonly property string time : "\ue03f"
-    readonly property string topbar_discover : "\ue040"
-    readonly property string topbar_music : "\ue041"
-    readonly property string topbar_network : "\ue042"
-    readonly property string topbar_sort : "\ue043"
-    readonly property string topbar_video : "\ue044"
-    readonly property string chevron_up : "\ue045"
-    readonly property string chevron_down : "\ue046"
-    readonly property string tv : "\ue047"
-    readonly property string tvtelx : "\ue048"
-    readonly property string transparency : "\ue049"
-    readonly property string circle : "\ue04a"
-    readonly property string visualization : "\ue04b"
-    readonly property string volume_high : "\ue04c"
-    readonly property string volume_low : "\ue04d"
-    readonly property string volume_medium : "\ue04e"
-    readonly property string volume_muted : "\ue04f"
-    readonly property string volume_zero : "\ue050"
-    readonly property string window_close : "\ue051"
-    readonly property string window_maximize : "\ue052"
-    readonly property string window_minimize : "\ue053"
-    readonly property string window_restore : "\ue054"
-    readonly property string ic_fluent_document_add_24_regular : "\ue055"
-    readonly property string ic_fluent_document_copy_24_regular : "\ue056"
-    readonly property string ic_fluent_arrow_download_24_regular : "\ue057"
-    readonly property string ic_fluent_arrow_sync_24_regular : "\ue058"
+    readonly property string next_frame : "\ue01a"
+    readonly property string previous_frame : "\ue01b"
+    readonly property string fullscreen : "\ue01c"
+    readonly property string grid : "\ue01d"
+    readonly property string history : "\ue01e"
+    readonly property string home : "\ue01f"
+    readonly property string info : "\ue020"
+    readonly property string list : "\ue021"
+    readonly property string more : "\ue022"
+    readonly property string next : "\ue023"
+    readonly property string ok : "\ue024"
+    readonly property string pause_filled : "\ue025"
+    readonly property string play_filled : "\ue026"
+    readonly property string play : "\ue027"
+    readonly property string ic_fluent_arrow_move : "\ue028"
+    readonly property string ic_fluent_chevron_down_24 : "\ue029"
+    readonly property string ic_fluent_chevron_left_24 : "\ue02a"
+    readonly property string ic_fluent_chevron_right_24 : "\ue02b"
+    readonly property string ic_fluent_chevron_up_24 : "\ue02c"
+    readonly property string play_reverse : "\ue02d"
+    readonly property string playlist : "\ue02e"
+    readonly property string playlist_clear : "\ue02f"
+    readonly property string previous : "\ue030"
+    readonly property string profile_new : "\ue031"
+    readonly property string record : "\ue032"
+    readonly property string remove : "\ue033"
+    readonly property string renderer : "\ue034"
+    readonly property string repeat_all : "\ue035"
+    readonly property string repeat_one : "\ue036"
+    readonly property string search : "\ue037"
+    readonly property string shuffle : "\ue038"
+    readonly property string skip_back : "\ue039"
+    readonly property string skip_for : "\ue03a"
+    readonly property string slower : "\ue03b"
+    readonly property string snapshot : "\ue03c"
+    readonly property string space : "\ue03d"
+    readonly property string stop : "\ue03e"
+    readonly property string stream : "\ue03f"
+    readonly property string time : "\ue040"
+    readonly property string topbar_discover : "\ue041"
+    readonly property string topbar_music : "\ue042"
+    readonly property string topbar_network : "\ue043"
+    readonly property string topbar_sort : "\ue044"
+    readonly property string topbar_video : "\ue045"
+    readonly property string chevron_up : "\ue046"
+    readonly property string chevron_down : "\ue047"
+    readonly property string tv : "\ue048"
+    readonly property string tvtelx : "\ue049"
+    readonly property string transparency : "\ue04a"
+    readonly property string circle : "\ue04b"
+    readonly property string visualization : "\ue04c"
+    readonly property string volume_high : "\ue04d"
+    readonly property string volume_low : "\ue04e"
+    readonly property string volume_medium : "\ue04f"
+    readonly property string volume_muted : "\ue050"
+    readonly property string volume_zero : "\ue051"
+    readonly property string window_close : "\ue052"
+    readonly property string window_maximize : "\ue053"
+    readonly property string window_minimize : "\ue054"
+    readonly property string window_restore : "\ue055"
+    readonly property string ic_fluent_document_add_24_regular : "\ue056"
+    readonly property string ic_fluent_document_copy_24_regular : "\ue057"
+    readonly property string ic_fluent_arrow_download_24_regular : "\ue058"
+    readonly property string ic_fluent_arrow_sync_24_regular : "\ue059"
 
 }


=====================================
po/POTFILES.in
=====================================
@@ -853,7 +853,8 @@ modules/gui/qt/player/qml/controlbarcontrols/ExpandingSpacerWidget.qml
 modules/gui/qt/player/qml/controlbarcontrols/ExtendedSettingsButton.qml
 modules/gui/qt/player/qml/controlbarcontrols/Fallback.qml
 modules/gui/qt/player/qml/controlbarcontrols/FasterButton.qml
-modules/gui/qt/player/qml/controlbarcontrols/FrameButton.qml
+modules/gui/qt/player/qml/controlbarcontrols/FrameNextButton.qml
+modules/gui/qt/player/qml/controlbarcontrols/FramePrevButton.qml
 modules/gui/qt/player/qml/controlbarcontrols/FullscreenButton.qml
 modules/gui/qt/player/qml/controlbarcontrols/InfoButton.qml
 modules/gui/qt/player/qml/controlbarcontrols/LangButton.qml



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/5888febf7e4c3f824dc2c8f23dbacc019e861c11...f921e50993f30f3ef5ee3673d00d868f198faca2

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/5888febf7e4c3f824dc2c8f23dbacc019e861c11...f921e50993f30f3ef5ee3673d00d868f198faca2
You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help




More information about the vlc-commits mailing list