[vlc-commits] [Git][videolan/vlc][master] 6 commits: qml: Add VideoGridDisplay component
Steve Lhomme (@robUx4)
gitlab at videolan.org
Mon Oct 9 18:29:28 UTC 2023
Steve Lhomme pushed to branch master at VideoLAN / VLC
Commits:
b5a8bd3d by Leon Vitanos at 2023-10-09T18:05:14+00:00
qml: Add VideoGridDisplay component
- - - - -
49a9a151 by Leon Vitanos at 2023-10-09T18:05:14+00:00
qml: Fix positioning issues/warnings on the Video page
- - - - -
68135259 by Leon Vitanos at 2023-10-09T18:05:14+00:00
qml: Implementation of "See All"
- - - - -
f2aac26e by Leon Vitanos at 2023-10-09T18:05:14+00:00
qml: Replace KeyNavigableView with VideoAll, which adds tableview functionality
- - - - -
d8e7786a by Leon Vitanos at 2023-10-09T18:05:14+00:00
qml: remove obsolete code for labels
- - - - -
bc152ad9 by Leon Vitanos at 2023-10-09T18:05:14+00:00
qml: Slight refactoring and fix missing translation
- - - - -
12 changed files:
- modules/gui/qt/Makefile.am
- modules/gui/qt/medialibrary/qml/MediaGroupDisplay.qml
- modules/gui/qt/medialibrary/qml/VideoAll.qml
- modules/gui/qt/medialibrary/qml/VideoAllDisplay.qml
- modules/gui/qt/medialibrary/qml/VideoAllSubDisplay.qml
- + modules/gui/qt/medialibrary/qml/VideoGridDisplay.qml
- modules/gui/qt/medialibrary/qml/VideoGridItem.qml
- modules/gui/qt/medialibrary/qml/VideoListDisplay.qml
- modules/gui/qt/medialibrary/qml/VideoDisplayRecentVideos.qml → modules/gui/qt/medialibrary/qml/VideoRecentVideos.qml
- + modules/gui/qt/medialibrary/qml/VideoRecentVideosDisplay.qml
- modules/gui/qt/vlc.qrc
- po/POTFILES.in
Changes:
=====================================
modules/gui/qt/Makefile.am
=====================================
@@ -878,10 +878,12 @@ libqt_plugin_la_QML = \
gui/qt/medialibrary/qml/PlaylistMedia.qml \
gui/qt/medialibrary/qml/PlaylistMediaDisplay.qml \
gui/qt/medialibrary/qml/VideoPlaylistsDisplay.qml \
- gui/qt/medialibrary/qml/VideoDisplayRecentVideos.qml \
+ gui/qt/medialibrary/qml/VideoRecentVideos.qml \
+ gui/qt/medialibrary/qml/VideoRecentVideosDisplay.qml \
gui/qt/medialibrary/qml/VideoGridItem.qml \
gui/qt/medialibrary/qml/VideoInfoExpandPanel.qml \
gui/qt/medialibrary/qml/VideoListDisplay.qml \
+ gui/qt/medialibrary/qml/VideoGridDisplay.qml \
gui/qt/menus/qml/GlobalShortcuts.qml \
gui/qt/menus/qml/GlobalShortcutsMedialib.qml \
gui/qt/menus/qml/Menubar.qml \
=====================================
modules/gui/qt/medialibrary/qml/MediaGroupDisplay.qml
=====================================
@@ -54,7 +54,7 @@ VideoAll {
// NOTE: We want this to be properly aligned with the grid items.
leftPadding: root.contentMargin
-
+ topPadding: VLCStyle.margin_large
bottomPadding: VLCStyle.margin_normal
text: root.title
=====================================
modules/gui/qt/medialibrary/qml/VideoAll.qml
=====================================
@@ -98,9 +98,6 @@ MainInterface.MainViewLoader {
History.push(["player"])
}
- function onLabelGrid(object) { return getLabel(object) }
- function onLabelList(object) { return getLabel(object) }
-
// Private events
function _onNavigationUp() {
@@ -126,23 +123,22 @@ MainInterface.MainViewLoader {
Component {
id: grid
- MainInterface.MainGridView {
+ VideoGridDisplay {
id: gridView
// Settings
- cellWidth : VLCStyle.gridItem_video_width
- cellHeight: VLCStyle.gridItem_video_height
-
- topMargin: VLCStyle.margin_normal
-
model: root.model
selectionDelegateModel: selectionModel
headerDelegate: root.header
- activeFocusOnTab: true
+ dragItem: root.dragItem
+
+ contextMenu: root.contextMenu
+
+ labels: root.gridLabels
// Navigation
@@ -150,96 +146,17 @@ MainInterface.MainViewLoader {
Navigation.upAction: _onNavigationUp
- // Events
-
- // NOTE: Define the initial position and selection. This is done on activeFocus rather
- // than Component.onCompleted because selectionModel.selectedGroup update itself
- // after this event.
- onActiveFocusChanged: {
- if (activeFocus == false || model.count === 0 || selectionModel.hasSelection)
- return;
-
- resetFocus() // restores initialIndex
- }
-
- onActionAtIndex: root.onAction(selectionModel.selectedIndexes)
-
- // Connections
-
- Connections {
- target: root.contextMenu
-
- onShowMediaInformation: {
- gridView.switchExpandItem(index)
-
- if (gridView.focus)
- expandItem.setCurrentItemFocus(Qt.TabFocusReason)
- }
- }
-
- // Children
-
- delegate: VideoGridItem {
- id: gridItem
-
- // properties required by ExpandGridView
-
- property var model: ({})
- property int index: -1
-
- // Settings
-
- opacity: (gridView.expandIndex !== -1
- &&
- gridView.expandIndex !== gridItem.index) ? 0.7 : 1
-
- labels: root.gridLabels(model)
-
- // FIXME: Sometimes MLBaseModel::getDataAt returns {} so we use 'isNew === true'.
- showNewIndicator: (model.isNew === true)
-
- dragItem: root.dragItem
-
- // Events
-
- onItemClicked: gridView.leftClickOnItem(modifier, index)
-
- onItemDoubleClicked: root.onDoubleClick(model)
-
- onContextMenuButtonClicked: {
- gridView.rightClickOnItem(index);
-
- const options = {}
- if (root.isInfoExpandPanelAvailable(model))
- options["information"] = index
-
- root.contextMenu.popup(selectionModel.selectedIndexes, globalMousePos, options);
- }
-
- // Animations
+ // Functions
- Behavior on opacity { NumberAnimation { duration: VLCStyle.duration_short } }
+ function isInfoExpandPanelAvailable(modelIndexData) {
+ return root.isInfoExpandPanelAvailable(modelIndexData)
}
- expandDelegate: VideoInfoExpandPanel {
- width: gridView.width
-
- x: 0
-
- model: root.model
-
- Navigation.parentItem: gridView
-
- Navigation.cancelAction: gridView.forceFocus
- Navigation.upAction: gridView.forceFocus
- Navigation.downAction: gridView.forceFocus
+ // Events
- onRetract: gridView.retract()
- }
+ onActionAtIndex: root.onAction(selectionModel.selectedIndexes)
- function forceFocus() {
- setCurrentItemFocus(Qt.TabFocus)
- }
+ onItemDoubleClicked: root.onDoubleClick(model)
}
}
@@ -259,8 +176,6 @@ MainInterface.MainViewLoader {
header: root.header
- topMargin: VLCStyle.margin_normal
-
headerPositioning: ListView.InlineHeader
activeFocusOnTab: true
@@ -284,10 +199,6 @@ MainInterface.MainViewLoader {
onRightClick: root.contextMenu.popup(selectionModel.selectedIndexes, globalMousePos)
coverLabels: root.listLabels
-
- // Functions
-
- function onLabels(model) { return root.onLabelList(model); }
}
}
=====================================
modules/gui/qt/medialibrary/qml/VideoAllDisplay.qml
=====================================
@@ -44,6 +44,9 @@ Widgets.PageLoader {
}, {
name: "group",
component: componentGroup
+ }, {
+ name: "recentVideos",
+ component: componentRecentVideos
}]
loadDefaultView: function () {
@@ -96,8 +99,6 @@ Widgets.PageLoader {
MediaGroupDisplay {
id: group
- anchors.fill: parent
-
onCurrentIndexChanged: root._updateHistoryGroup(group)
onParentIdChanged : root._updateHistoryGroup(group)
onTitleChanged : root._updateHistoryGroup(group)
@@ -107,4 +108,15 @@ Widgets.PageLoader {
}
}
}
+
+ Component {
+ id: componentRecentVideos
+
+ VideoRecentVideosDisplay {
+ function isInfoExpandPanelAvailable(/* modelIndexData */) {
+ return true
+ }
+ }
+ }
+
}
=====================================
modules/gui/qt/medialibrary/qml/VideoAllSubDisplay.qml
=====================================
@@ -50,8 +50,6 @@ VideoAll {
// Settings
- anchors.fill: parent
-
model: !!_meta ? _meta.model : null
contextMenu: Util.MLContextMenu { model: _meta ? _meta.model : null; showPlayAsAudioAction: true }
@@ -252,20 +250,16 @@ VideoAll {
}
}
- header: VideoDisplayRecentVideos {
- width: root.width - displayMarginBeginning - displayMarginEnd
-
- x: displayMarginBeginning
+ header: VideoRecentVideos {
+ width: root.width
// spacing between header and content
bottomPadding: VLCStyle.margin_normal
+ leftPadding: root.leftPadding
+ rightPadding: root.rightPadding
subtitleText: (root.model && root.model.count > 0) ? I18n.qtr("Videos") : ""
- // NOTE: We want grid items to be visible on the sides.
- displayMarginBeginning: root.contentMargin
- displayMarginEnd: displayMarginBeginning
-
Navigation.parentItem: root
Navigation.downAction: function() {
=====================================
modules/gui/qt/medialibrary/qml/VideoGridDisplay.qml
=====================================
@@ -0,0 +1,147 @@
+/*****************************************************************************
+ * Copyright (C) 2023 VLC authors and VideoLAN
+ *
+ * Authors: Leon Vitanos <leon.vitanos at gmail.com>
+ *
+ * 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 2.12
+import QtQuick.Controls 2.12
+import QtQml.Models 2.12
+
+import org.videolan.vlc 0.1
+import org.videolan.medialib 0.1
+
+import "qrc:///main/" as MainInterface
+import "qrc:///util" as Util
+import "qrc:///widgets/" as Widgets
+import "qrc:///style/"
+
+MainInterface.MainGridView {
+ id: gridView
+
+ // Properties
+
+ property Widgets.MLDragItem dragItem
+ property Util.MLContextMenu contextMenu
+ property var labels
+
+ // Signals
+
+ signal itemDoubleClicked(var model)
+
+ // Settings
+
+ cellWidth : VLCStyle.gridItem_video_width
+ cellHeight: VLCStyle.gridItem_video_height
+
+ activeFocusOnTab: true
+
+ // Functions
+
+ // reimplement function to show "Info Panel" in grid view for the model index data
+ function isInfoExpandPanelAvailable(modelIndexData) {
+ return false
+ }
+
+ // Events
+
+ // NOTE: Define the initial position and selection. This is done on activeFocus rather
+ // than Component.onCompleted because selectionModel.selectedGroup update itself
+ // after this event.
+ onActiveFocusChanged: {
+ if (!activeFocus || model.count === 0 || selectionModel.hasSelection)
+ return;
+
+ resetFocus() // restores initialIndex
+ }
+
+ // Connections
+
+ Connections {
+ target: gridView.contextMenu
+
+ onShowMediaInformation: {
+ gridView.switchExpandItem(index)
+
+ if (gridView.focus)
+ expandItem.setCurrentItemFocus(Qt.TabFocusReason)
+ }
+ }
+
+ // Children
+
+ delegate: VideoGridItem {
+ id: gridItem
+
+ // Properties
+
+ /* required */ property var model: ({})
+ /* required */ property int index: -1
+
+ // Settings
+
+ opacity: (gridView.expandIndex !== -1
+ &&
+ gridView.expandIndex !== gridItem.index) ? 0.7 : 1
+
+ // FIXME: Sometimes MLBaseModel::getDataAt returns {} so we use 'isNew === true'.
+ showNewIndicator: (model.isNew === true)
+
+ dragItem: gridView.dragItem
+
+ labels: gridView.labels(model)
+
+ // Events
+
+ onItemClicked: gridView.leftClickOnItem(modifier, index)
+
+ onItemDoubleClicked: gridView.itemDoubleClicked(model)
+
+ onContextMenuButtonClicked: {
+ gridView.rightClickOnItem(index);
+
+ const options = {}
+ if (gridView.isInfoExpandPanelAvailable(model))
+ options["information"] = index
+
+ gridView.contextMenu.popup(selectionModel.selectedIndexes, globalMousePos, options);
+ }
+
+ // Animations
+
+ Behavior on opacity { NumberAnimation { duration: VLCStyle.duration_short } }
+ }
+
+ expandDelegate: VideoInfoExpandPanel {
+ x: 0
+
+ width: gridView.width
+
+ model: gridView.model
+
+ Navigation.parentItem: gridView
+
+ Navigation.cancelAction: gridView.forceFocus
+ Navigation.upAction: gridView.forceFocus
+ Navigation.downAction: gridView.forceFocus
+
+ onRetract: gridView.retract()
+ }
+
+ function forceFocus() {
+ setCurrentItemFocus(Qt.TabFocus)
+ }
+}
=====================================
modules/gui/qt/medialibrary/qml/VideoGridItem.qml
=====================================
@@ -29,10 +29,7 @@ Widgets.GridItem {
property alias showNewIndicator: image.visible
- property var labels: [
- model.resolution_name || "",
- model.channel || ""
- ].filter(function(a) { return a !== "" })
+ property var labels
function play() {
if ( model.id !== undefined ) {
=====================================
modules/gui/qt/medialibrary/qml/VideoListDisplay.qml
=====================================
@@ -37,7 +37,7 @@ MainInterface.MainTableView {
// NOTE: This is useful for groups because our main criteria is 'name' instead of 'title'.
property string mainCriteria: "title"
- property alias coverLabels: tableColumns.titlecoverLabels
+ property var coverLabels
//---------------------------------------------------------------------------------------------
// Private
@@ -115,22 +115,6 @@ MainInterface.MainTableView {
rowHeight: VLCStyle.tableCoverRow_height
- //---------------------------------------------------------------------------------------------
- // Functions
- //---------------------------------------------------------------------------------------------
- // Events
-
- function onLabels(model)
- {
- if (model === null)
- return [];
-
- return [
- model.resolution_name || "",
- model.channel || ""
- ].filter(function(a) { return a !== "" });
- }
-
//---------------------------------------------------------------------------------------------
// Childs
//---------------------------------------------------------------------------------------------
@@ -147,6 +131,6 @@ MainInterface.MainTableView {
titleCover_width: VLCStyle.listAlbumCover_width
titleCover_radius: VLCStyle.listAlbumCover_radius
- titlecoverLabels: listView_id.onLabels
+ titlecoverLabels: listView_id.coverLabels
}
}
=====================================
modules/gui/qt/medialibrary/qml/VideoDisplayRecentVideos.qml → modules/gui/qt/medialibrary/qml/VideoRecentVideos.qml
=====================================
@@ -17,6 +17,7 @@
*****************************************************************************/
import QtQuick 2.12
import QtQuick.Controls 2.12
+import QtQuick.Layouts 1.12
import QtQml.Models 2.12
import org.videolan.medialib 0.1
@@ -32,39 +33,28 @@ FocusScope {
// Aliases
- property alias bottomPadding: recentVideosColumn.bottomPadding
-
- property alias displayMarginBeginning: listView.displayMarginBeginning
- property alias displayMarginEnd: listView.displayMarginEnd
-
- property alias subtitleText : subtitleLabel.text
+ property alias subtitleText: subtitleLabel.text
// Settings
- implicitHeight: recentVideosColumn.height
-
- focus: listView.count > 0
-
- // Functions
+ property int bottomPadding: recentVideosColumn.bottomPadding
+ property int leftPadding: VLCStyle.margin_xsmall
+ property int rightPadding: VLCStyle.margin_xsmall
- function _play(id) {
- MediaLib.addAndPlay( id, [":restore-playback-pos=2"] )
- History.push(["player"])
- }
+ implicitHeight: recentVideosColumn.height
- function _playIndex(idx) {
- recentModel.addAndPlay( [idx], [":restore-playback-pos=2"] )
- History.push(["player"])
- }
+ focus: recentModel.count > 0
// Childs
- Util.MLContextMenu {
- id: contextMenu
+ MLRecentsVideoModel {
+ id: recentModel
- model: listView.model
+ ml: MediaLib
- showPlayAsAudioAction: true
+ limit: MainCtx.gridView ? view.currentItem.nbItemPerRow ?
+ view.currentItem.nbItemPerRow : 0
+ : 5
}
readonly property ColorContext colorContext: ColorContext {
@@ -77,103 +67,77 @@ FocusScope {
width: root.width
+ topPadding: VLCStyle.margin_large
+
spacing: VLCStyle.margin_normal
- Widgets.SubtitleLabel {
- text: I18n.qtr("Continue Watching")
+ bottomPadding: root.bottomPadding
- // NOTE: Setting this to listView.visible seems to causes unnecessary implicitHeight
- // calculations in the Column parent.
- visible: listView.count > 0
- color: theme.fg.primary
- }
+ RowLayout {
+ anchors.left: parent.left
+ anchors.right: parent.right
- Widgets.KeyNavigableListView {
- id: listView
+ anchors.leftMargin: view.currentItem.contentLeftMargin
+ anchors.rightMargin: view.currentItem.contentRightMargin
- width: parent.width
+ Widgets.SubtitleLabel {
+ id: label
- implicitHeight: VLCStyle.gridItem_video_height + VLCStyle.gridItemSelectedBorder
- +
- VLCStyle.margin_xlarge
+ Layout.fillWidth: true
- spacing: VLCStyle.column_spacing
+ text: I18n.qtr("Continue Watching")
- // NOTE: We want navigation buttons to be centered on the item cover.
- buttonMargin: VLCStyle.margin_xsmall + VLCStyle.gridCover_video_height / 2 - buttonLeft.height / 2
+ // NOTE: Setting this to gridView.visible seems to causes unnecessary implicitHeight
+ // calculations in the Column parent.
+ visible: recentModel.count > 0
+ color: theme.fg.primary
+ }
+
+ Widgets.TextToolButton {
+ id: button
- orientation: ListView.Horizontal
+ visible: recentModel.maximumCount > recentModel.count
- focus: true
+ Layout.preferredWidth: implicitWidth
- // NOTE: We want a gentle fade at the beginning / end of the history.
- enableFade: true
+ focus: true
- Navigation.parentItem: root
+ text: I18n.qtr("See All")
- visible: listView.count > 0
+ font.pixelSize: VLCStyle.fontSize_large
- model: MLRecentsVideoModel {
- id: recentModel
+ Navigation.parentItem: root
- ml: MediaLib
- limit: 10
+ onClicked: History.push(["mc", "video", "all", "recentVideos"]);
}
+ }
- delegate: VideoGridItem {
- id: gridItem
+ VideoAll {
+ id: view
- pictureWidth: VLCStyle.gridCover_video_width
- pictureHeight: VLCStyle.gridCover_video_height
+ // Settings
- selected: activeFocus
+ visible: recentModel.count > 0
- focus: true
+ width: root.width
+ height: MainCtx.gridView ? VLCStyle.gridItem_video_height + VLCStyle.gridItemSelectedBorder + VLCStyle.margin_xlarge
+ : VLCStyle.margin_xxlarge + Math.min(recentModel.count, 5) * VLCStyle.tableCoverRow_height
- onItemDoubleClicked: gridItem.play()
-
- onItemClicked: {
- listView.currentIndex = index
- this.forceActiveFocus(Qt.MouseFocusReason)
- }
-
- // NOTE: contextMenu.popup wants a list of indexes.
- onContextMenuButtonClicked: {
- contextMenu.popup([listView.model.index(index, 0)],
- globalMousePos,
- { "player-options": [":restore-playback-pos=2"] })
- }
-
- dragItem: Widgets.DragItem {
- coverRole: "thumbnail"
-
- indexes: [index]
-
- onRequestData: {
- resolve([model])
- }
-
- onRequestInputItems: {
- const idList = data.map((o) => o.id)
- MediaLib.mlInputItem(idList, resolve)
- }
- }
-
- Behavior on opacity {
- NumberAnimation {
- duration: VLCStyle.duration_short
- }
- }
-
- function play() {
- if (model.id !== undefined) {
- root._play(model.id)
- }
- }
- }
+ leftPadding: root.leftPadding
+ rightPadding: root.rightPadding
- onActionAtIndex: {
- root._playIndex(index)
+ focus: recentModel.count !== 0
+
+ model: recentModel
+
+ sectionProperty: ""
+
+ sortModel: []
+
+ contextMenu: Util.MLContextMenu {
+ model: recentModel
+
+ showPlayAsAudioAction: true
}
}
@@ -182,6 +146,9 @@ FocusScope {
visible: text !== ""
color: theme.fg.primary
+
+ leftPadding: view.currentItem.contentLeftMargin
+ rightPadding: view.currentItem.contentRightMargin
}
}
}
=====================================
modules/gui/qt/medialibrary/qml/VideoRecentVideosDisplay.qml
=====================================
@@ -0,0 +1,60 @@
+/*****************************************************************************
+ * Copyright (C) 2023 VLC authors and VideoLAN
+ *
+ * Authors: Leon Vitanos <leon.vitanos at gmail.com>
+ *
+ * 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 2.12
+
+import org.videolan.vlc 0.1
+import org.videolan.medialib 0.1
+
+import "qrc:///widgets/" as Widgets
+import "qrc:///style/"
+import "qrc:///util/" as Util
+import "qrc:///main/" as MainInterface
+
+VideoAll {
+ id: root
+
+ // Settings
+
+ sectionProperty: ""
+
+ sortModel: []
+
+ // Children
+
+ model: MLRecentsVideoModel {
+ id: recentModel
+ ml: MediaLib
+ }
+
+ contextMenu: Util.MLContextMenu { model: recentModel; showPlayAsAudioAction: true }
+
+ header: Widgets.SubtitleLabel {
+ width: root.width
+
+ // NOTE: We want this to be properly aligned with the grid items.
+ leftPadding: root.contentMargin
+ topPadding: VLCStyle.margin_large
+ bottomPadding: VLCStyle.margin_normal
+
+ text: I18n.qtr("Continue Watching")
+ color: root.colorContext.fg.primary
+ }
+}
=====================================
modules/gui/qt/vlc.qrc
=====================================
@@ -278,7 +278,9 @@
<file alias="VideoListDisplay.qml">medialibrary/qml/VideoListDisplay.qml</file>
<file alias="VideoGridItem.qml">medialibrary/qml/VideoGridItem.qml</file>
<file alias="AudioGridItem.qml">medialibrary/qml/AudioGridItem.qml</file>
- <file alias="VideoDisplayRecentVideos.qml">medialibrary/qml/VideoDisplayRecentVideos.qml</file>
+ <file alias="VideoRecentVideos.qml">medialibrary/qml/VideoRecentVideos.qml</file>
+ <file alias="VideoGridDisplay.qml">medialibrary/qml/VideoGridDisplay.qml</file>
+ <file alias="VideoRecentVideosDisplay.qml">medialibrary/qml/VideoRecentVideosDisplay.qml</file>
</qresource>
<qresource prefix="/style">
<file alias="AcrylicController.qml">style/AcrylicController.qml</file>
=====================================
po/POTFILES.in
=====================================
@@ -810,11 +810,13 @@ modules/gui/qt/medialibrary/qml/VideoAll.qml
modules/gui/qt/medialibrary/qml/VideoAllDisplay.qml
modules/gui/qt/medialibrary/qml/VideoAllSubDisplay.qml
modules/gui/qt/medialibrary/qml/VideoDisplay.qml
-modules/gui/qt/medialibrary/qml/VideoDisplayRecentVideos.qml
+modules/gui/qt/medialibrary/qml/VideoRecentVideos.qml
+modules/gui/qt/medialibrary/qml/VideoRecentVideosDisplay.qml
modules/gui/qt/medialibrary/qml/VideoGridItem.qml
modules/gui/qt/medialibrary/qml/VideoInfoExpandPanel.qml
modules/gui/qt/medialibrary/qml/VideoListDisplay.qml
modules/gui/qt/medialibrary/qml/VideoPlaylistsDisplay.qml
+modules/gui/qt/medialibrary/qml/VideoGridDisplay.qml
modules/gui/qt/menus/custom_menus.cpp
modules/gui/qt/menus/custom_menus.hpp
modules/gui/qt/menus/menus.cpp
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/c5948089b9a8531544f2e9ce40b8e84a58dfa5f9...bc152ad969ac0713f4acece6cada03e5d63db417
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/c5948089b9a8531544f2e9ce40b8e84a58dfa5f9...bc152ad969ac0713f4acece6cada03e5d63db417
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