[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