We truncated the diff of some files because they were too big.
If you want to see the full diff for every file, click here.
Changes of Revision 381
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/ControlbarControls.qml
Deleted
x
1
2
-•/*****************************************************************************
3
- * Copyright (C) 2019 VLC authors and VideoLAN
4
- *
5
- * This program is free software; you can redistribute it and/or modify
6
- * it under the terms of the GNU General Public License as published by
7
- * the Free Software Foundation; either version 2 of the License, or
8
- * ( at your option ) any later version.
9
- *
10
- * This program is distributed in the hope that it will be useful,
11
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
- * GNU General Public License for more details.
14
- *
15
- * You should have received a copy of the GNU General Public License
16
- * along with this program; if not, write to the Free Software
17
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
18
- *****************************************************************************/
19
-
20
-pragma Singleton
21
-
22
-import QtQml
23
-
24
-import org.videolan.vlc 0.1
25
-
26
-import "qrc:///player/controlbarcontrols/" as Controls
27
-import "qrc:///widgets/" as Widgets
28
-import "qrc:///style/"
29
-
30
-QtObject {
31
- readonly property string controlPath : "qrc:///player/controlbarcontrols/"
32
-
33
- readonly property var controlList:
34
- { id: ControlListModel.PLAY_BUTTON, file: "PlayButton.qml", label: VLCIcons.play_filled, text: qsTr("Play") },
35
- { id: ControlListModel.STOP_BUTTON, file: "StopButton.qml", label: VLCIcons.stop, text: qsTr("Stop") },
36
- { id: ControlListModel.OPEN_BUTTON, file: "OpenButton.qml", label: VLCIcons.eject, text: qsTr("Open") },
37
- { id: ControlListModel.PREVIOUS_BUTTON, file: "PreviousButton.qml", label: VLCIcons.previous, text: qsTr("Previous") },
38
- { id: ControlListModel.NEXT_BUTTON, file: "NextButton.qml", label: VLCIcons.next, text: qsTr("Next") },
39
- { id: ControlListModel.SLOWER_BUTTON, file: "SlowerButton.qml", label: VLCIcons.slower, text: qsTr("Slower") },
40
- { id: ControlListModel.FASTER_BUTTON, file: "FasterButton.qml", label: VLCIcons.faster, text: qsTr("Faster") },
41
- { id: ControlListModel.FULLSCREEN_BUTTON, file: "FullscreenButton.qml", label: VLCIcons.fullscreen, text: qsTr("Fullscreen") },
42
- { id: ControlListModel.EXTENDED_BUTTON, file: "ExtendedSettingsButton.qml", label: VLCIcons.effect_filter, text: qsTr("Extended panel") },
43
- { id: ControlListModel.PLAYLIST_BUTTON, file: "PlaylistButton.qml", label: VLCIcons.playlist, text: qsTr("Playlist") },
44
- { id: ControlListModel.SNAPSHOT_BUTTON, file: "SnapshotButton.qml", label: VLCIcons.snapshot, text: qsTr("Snapshot") },
45
- { id: ControlListModel.RECORD_BUTTON, file: "RecordButton.qml", label: VLCIcons.record, text: qsTr("Record") },
46
- { id: ControlListModel.ATOB_BUTTON, file: "AtoBButton.qml", label: VLCIcons.atob, text: qsTr("A-B Loop") },
47
- { id: ControlListModel.FRAME_BUTTON, file: "FrameButton.qml", label: VLCIcons.frame_by_frame, text: qsTr("Frame By Frame") },
48
- { id: ControlListModel.REVERSE_BUTTON, file: "ReverseButton.qml", label: VLCIcons.play_reverse, text: qsTr("Trickplay Reverse") },
49
- { id: ControlListModel.SKIP_BACK_BUTTON, file: "SkipBackButton.qml", label: VLCIcons.skip_back, text: qsTr("Step backward") },
50
- { id: ControlListModel.SKIP_FW_BUTTON, file: "SkipForwardButton.qml", label: VLCIcons.skip_for, text: qsTr("Step forward") },
51
- { id: ControlListModel.QUIT_BUTTON, file: "QuitButton.qml", label: VLCIcons.clear, text: qsTr("Quit") },
52
- { id: ControlListModel.RANDOM_BUTTON, file: "RandomButton.qml", label: VLCIcons.shuffle, text: qsTr("Random") },
53
- { id: ControlListModel.LOOP_BUTTON, file: "LoopButton.qml", label: VLCIcons.repeat_all, text: qsTr("Loop") },
54
- { id: ControlListModel.INFO_BUTTON, file: "InfoButton.qml", label: VLCIcons.info, text: qsTr("Information") },
55
- { id: ControlListModel.LANG_BUTTON, file: "LangButton.qml", label: VLCIcons.audiosub, text: qsTr("Open subtitles") },
56
- { id: ControlListModel.BOOKMARK_BUTTON, file: "BookmarkButton.qml", label: VLCIcons.bookmark, text: qsTr("Bookmark Button") },
57
- { id: ControlListModel.CHAPTER_PREVIOUS_BUTTON, file: "ChapterPreviousButton.qml", label: VLCIcons.dvd_prev, text: qsTr("Previous chapter") },
58
- { id: ControlListModel.CHAPTER_NEXT_BUTTON, file: "ChapterNextButton.qml", label: VLCIcons.dvd_next, text: qsTr("Next chapter") },
59
- { id: ControlListModel.VOLUME, file: "VolumeWidget.qml", label: VLCIcons.volume_high, text: qsTr("Volume Widget") },
60
- { id: ControlListModel.NAVIGATION_BOX, file: "NavigationBoxButton.qml", label: VLCIcons.ic_fluent_arrow_move, text: qsTr("Navigation Box") },
61
- { id: ControlListModel.NAVIGATION_BUTTONS, file: "NavigationWidget.qml", label: VLCIcons.dvd_menu, text: qsTr("Navigation") },
62
- { id: ControlListModel.DVD_MENUS_BUTTON, file: "DvdMenuButton.qml", label: VLCIcons.dvd_menu, text: qsTr("DVD menus") },
63
- { id: ControlListModel.PROGRAM_BUTTON, file: "ProgramButton.qml", label: VLCIcons.tv, text: qsTr("Program Button") },
64
- { id: ControlListModel.TELETEXT_BUTTONS, file: "TeletextButton.qml", label: VLCIcons.tvtelx, text: qsTr("Teletext") },
65
- { id: ControlListModel.RENDERER_BUTTON, file: "RendererButton.qml", label: VLCIcons.renderer, text: qsTr("Renderer Button") },
66
- { id: ControlListModel.ASPECT_RATIO_COMBOBOX, file: "AspectRatioWidget.qml", label: VLCIcons.aspect_ratio, text: qsTr("Aspect Ratio") },
67
- { id: ControlListModel.WIDGET_SPACER, file: "SpacerWidget.qml", label: VLCIcons.space, text: qsTr("Spacer") },
68
- { id: ControlListModel.WIDGET_SPACER_EXTEND, file: "ExpandingSpacerWidget.qml", label: VLCIcons.space, text: qsTr("Expanding Spacer") },
69
- { id: ControlListModel.PLAYER_SWITCH_BUTTON, file: "PlayerSwitchButton.qml", label: VLCIcons.fullscreen, text: qsTr("Switch Player") },
70
- { id: ControlListModel.ARTWORK_INFO, file: "ArtworkInfoWidget.qml", label: VLCIcons.info, text: qsTr("Artwork Info") },
71
- { id: ControlListModel.PLAYBACK_SPEED_BUTTON, file: "PlaybackSpeedButton.qml", label: "1x", text: qsTr("Playback Speed") },
72
- { id: ControlListModel.HIGH_RESOLUTION_TIME_WIDGET, file: "HighResolutionTimeWidget.qml", label: VLCIcons.info, text: qsTr("High Resolution Time") }
73
-
74
-
75
- function control(id) {
76
- const entry = controlList.find( function(e) { return ( e.id === id ) } )
77
-
78
- if (entry === undefined) {
79
- console.log("control delegate id " + id + " doesn't exist")
80
- return { source: controlPath + "Fallback.qml" }
81
- }
82
-
83
- entry.source = controlPath + entry.file
84
-
85
- return entry
86
- }
87
-}
88
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/qmldir
Deleted
3
1
2
-singleton PlayerControlbarControls ControlbarControls.qml
3
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/qml.qrc
Deleted
201
1
2
-<?xml version="1.0"?>
3
-<RCC>
4
- <qresource prefix="/util">
5
- <file alias="Helpers.js">util/qml/Helpers.js</file>
6
- <file alias="ModelSortSettingHandler.qml">util/qml/ModelSortSettingHandler.qml</file>
7
- <file alias="FlickableScrollHandler.qml">util/qml/FlickableScrollHandler.qml</file>
8
- <file alias="ViewDragAutoScrollHandler.qml">util/qml/ViewDragAutoScrollHandler.qml</file>
9
- <file alias="NativeMenu.qml">util/qml/NativeMenu.qml</file>
10
- <file alias="MLContextMenu.qml">util/qml/MLContextMenu.qml</file>
11
- <file alias="FSM.qml">util/qml/FSM.qml</file>
12
- <file alias="FSMState.qml">util/qml/FSMState.qml</file>
13
- <file alias="FadeControllerStateGroup.qml">util/qml/FadeControllerStateGroup.qml</file>
14
- <file alias="GridSizeHelper.qml">util/qml/GridSizeHelper.qml</file>
15
- </qresource>
16
- <qresource prefix="/main">
17
- <file alias="BannerSources.qml">maininterface/qml/BannerSources.qml</file>
18
- <file alias="MainInterface.qml">maininterface/qml/MainInterface.qml</file>
19
- <file alias="MainDisplay.qml">maininterface/qml/MainDisplay.qml</file>
20
- <file alias="NoMedialibHome.qml">maininterface/qml/NoMedialibHome.qml</file>
21
- <file alias="MainTableView.qml">maininterface/qml/MainTableView.qml</file>
22
- <file alias="MainGridView.qml">maininterface/qml/MainGridView.qml</file>
23
- <file alias="MainViewLoader.qml">maininterface/qml/MainViewLoader.qml</file>
24
- </qresource>
25
- <qresource prefix="/widgets">
26
- <file alias="LabelExt.qml">widgets/qml/LabelExt.qml</file>
27
- <file alias="EmptyLabel.qml">widgets/qml/EmptyLabel.qml</file>
28
- <file alias="EmptyLabelButton.qml">widgets/qml/EmptyLabelButton.qml</file>
29
- <file alias="EmptyLabelHint.qml">widgets/qml/EmptyLabelHint.qml</file>
30
- <file alias="ActionButtonOverlay.qml">widgets/qml/ActionButtonOverlay.qml</file>
31
- <file alias="ActionButtonPrimary.qml">widgets/qml/ActionButtonPrimary.qml</file>
32
- <file alias="BannerCone.qml">widgets/qml/BannerCone.qml</file>
33
- <file alias="BannerTabButton.qml">widgets/qml/BannerTabButton.qml</file>
34
- <file alias="BusyIndicatorExt.qml">widgets/qml/BusyIndicatorExt.qml</file>
35
- <file alias="AcrylicBackground.qml">widgets/qml/AcrylicBackground.qml</file>
36
- <file alias="AnimatedBackground.qml">widgets/qml/AnimatedBackground.qml</file>
37
- <file alias="CheckButton.qml">widgets/qml/CheckButton.qml</file>
38
- <file alias="CSDWindowButton.qml">widgets/qml/CSDWindowButton.qml</file>
39
- <file alias="CSDWindowButtonSet.qml">widgets/qml/CSDWindowButtonSet.qml</file>
40
- <file alias="CSDTitlebarTapNDrapHandler.qml">widgets/qml/CSDTitlebarTapNDrapHandler.qml</file>
41
- <file alias="CSDMouseStealer.qml">widgets/qml/CSDMouseStealer.qml</file>
42
- <file alias="TrackDelayButton.qml">widgets/qml/TrackDelayButton.qml</file>
43
- <file alias="CurrentIndicator.qml">widgets/qml/CurrentIndicator.qml</file>
44
- <file alias="GridItem.qml">widgets/qml/GridItem.qml</file>
45
- <file alias="DrawerExt.qml">widgets/qml/DrawerExt.qml</file>
46
- <file alias="KeyNavigableListView.qml">widgets/qml/KeyNavigableListView.qml</file>
47
- <file alias="KeyNavigableTableView.qml">widgets/qml/KeyNavigableTableView.qml</file>
48
- <file alias="TableViewDelegate.qml">widgets/qml/TableViewDelegate.qml</file>
49
- <file alias="TableColumns.qml">widgets/qml/TableColumns.qml</file>
50
- <file alias="MLTableColumns.qml">widgets/qml/MLTableColumns.qml</file>
51
- <file alias="TableHeaderDelegate.qml">widgets/qml/TableHeaderDelegate.qml</file>
52
- <file alias="TableRowDelegate.qml">widgets/qml/TableRowDelegate.qml</file>
53
- <file alias="ImageToolButton.qml">widgets/qml/ImageToolButton.qml</file>
54
- <file alias="TextToolButton.qml">widgets/qml/TextToolButton.qml</file>
55
- <file alias="IconToolButton.qml">widgets/qml/IconToolButton.qml</file>
56
- <file alias="IconTrackButton.qml">widgets/qml/IconTrackButton.qml</file>
57
- <file alias="StackViewExt.qml">widgets/qml/StackViewExt.qml</file>
58
- <file alias="ComboBoxExt.qml">widgets/qml/ComboBoxExt.qml</file>
59
- <file alias="SpinBoxExt.qml">widgets/qml/SpinBoxExt.qml</file>
60
- <file alias="ExpandGridView.qml">widgets/qml/ExpandGridView.qml</file>
61
- <file alias="ScanProgressBar.qml">widgets/qml/ScanProgressBar.qml</file>
62
- <file alias="SearchBox.qml">widgets/qml/SearchBox.qml</file>
63
- <file alias="SortControl.qml">widgets/qml/SortControl.qml</file>
64
- <file alias="RoundButton.qml">widgets/qml/RoundButton.qml</file>
65
- <file alias="VideoQualityLabels.qml">widgets/qml/VideoQualityLabels.qml</file>
66
- <file alias="VideoProgressBar.qml">widgets/qml/VideoProgressBar.qml</file>
67
- <file alias="NavigableCol.qml">widgets/qml/NavigableCol.qml</file>
68
- <file alias="NavigableRow.qml">widgets/qml/NavigableRow.qml</file>
69
- <file alias="ButtonExt.qml">widgets/qml/ButtonExt.qml</file>
70
- <file alias="TextAutoScroller.qml">widgets/qml/TextAutoScroller.qml</file>
71
- <file alias="CaptionLabel.qml">widgets/qml/CaptionLabel.qml</file>
72
- <file alias="IconLabel.qml">widgets/qml/IconLabel.qml</file>
73
- <file alias="ListLabel.qml">widgets/qml/ListLabel.qml</file>
74
- <file alias="SubtitleLabel.qml">widgets/qml/SubtitleLabel.qml</file>
75
- <file alias="PlayCover.qml">widgets/qml/PlayCover.qml</file>
76
- <file alias="MenuCaption.qml">widgets/qml/MenuCaption.qml</file>
77
- <file alias="MediaCover.qml">widgets/qml/MediaCover.qml</file>
78
- <file alias="MenuLabel.qml">widgets/qml/MenuLabel.qml</file>
79
- <file alias="ListSubtitleLabel.qml">widgets/qml/ListSubtitleLabel.qml</file>
80
- <file alias="HorizontalResizeHandle.qml">widgets/qml/HorizontalResizeHandle.qml</file>
81
- <file alias="PointingTooltip.qml">widgets/qml/PointingTooltip.qml</file>
82
- <file alias="FrostedGlassEffect.qml">widgets/qml/FrostedGlassEffect.qml</file>
83
- <file alias="CheckedDelegate.qml">widgets/qml/CheckedDelegate.qml</file>
84
- <file alias="PageLoader.qml">widgets/qml/PageLoader.qml</file>
85
- <file alias="LocalTabBar.qml">widgets/qml/LocalTabBar.qml</file>
86
- <file alias="IconButton.qml">widgets/qml/IconButton.qml</file>
87
- <file alias="DragItem.qml">widgets/qml/DragItem.qml</file>
88
- <file alias="DefaultShadow.qml">widgets/qml/DefaultShadow.qml</file>
89
- <file alias="OverlayMenu.qml">widgets/qml/OverlayMenu.qml</file>
90
- <file alias="ToolTipExt.qml">widgets/qml/ToolTipExt.qml</file>
91
- <file alias="MLDragItem.qml">widgets/qml/MLDragItem.qml</file>
92
- <file alias="ScaledImage.qml">widgets/qml/ScaledImage.qml</file>
93
- <file alias="DropShadowImage.qml">widgets/qml/DropShadowImage.qml</file>
94
- <file alias="DoubleShadow.qml">widgets/qml/DoubleShadow.qml</file>
95
- <file alias="CSDThemeButtonSet.qml">widgets/qml/CSDThemeButtonSet.qml</file>
96
- <file alias="CSDThemeButton.qml">widgets/qml/CSDThemeButton.qml</file>
97
- <file alias="TextFieldExt.qml">widgets/qml/TextFieldExt.qml</file>
98
- <file alias="SliderExt.qml">widgets/qml/SliderExt.qml</file>
99
- <file alias="FadingEdge.qml">widgets/qml/FadingEdge.qml</file>
100
- <file alias="FadingEdgeForListView.qml">widgets/qml/FadingEdgeForListView.qml</file>
101
- <file alias="PopupIconToolButton.qml">widgets/qml/PopupIconToolButton.qml</file>
102
- <file alias="PartialEffect.qml">widgets/qml/PartialEffect.qml</file>
103
- <file alias="ViewHeader.qml">widgets/qml/ViewHeader.qml</file>
104
- <file alias="ProgressIndicator.qml">widgets/qml/ProgressIndicator.qml</file>
105
- <file alias="ExpandGridItemView.qml">widgets/qml/ExpandGridItemView.qml</file>
106
- </qresource>
107
- <qresource prefix="/network">
108
- <file alias="AddressbarButton.qml">network/qml/AddressbarButton.qml</file>
109
- <file alias="BrowseDeviceView.qml">network/qml/BrowseDeviceView.qml</file>
110
- <file alias="BrowseDisplay.qml">network/qml/BrowseDisplay.qml</file>
111
- <file alias="BrowseHomeDisplay.qml">network/qml/BrowseHomeDisplay.qml</file>
112
- <file alias="BrowseTreeDisplay.qml">network/qml/BrowseTreeDisplay.qml</file>
113
- <file alias="BrowseTreeHeader.qml">network/qml/BrowseTreeHeader.qml</file>
114
- <file alias="DiscoverDisplay.qml">network/qml/DiscoverDisplay.qml</file>
115
- <file alias="DiscoverUrlDisplay.qml">network/qml/DiscoverUrlDisplay.qml</file>
116
- <file alias="NetworkCustomCover.qml">network/qml/NetworkCustomCover.qml</file>
117
- <file alias="NetworkGridItem.qml">network/qml/NetworkGridItem.qml</file>
118
- <file alias="NetworkThumbnailItem.qml">network/qml/NetworkThumbnailItem.qml</file>
119
- <file alias="NetworkAddressbar.qml">network/qml/NetworkAddressbar.qml</file>
120
- <file alias="ServicesHomeDisplay.qml">network/qml/ServicesHomeDisplay.qml</file>
121
- <file alias="ServicesManage.qml">network/qml/ServicesManage.qml</file>
122
- <file alias="ServicesSources.qml">network/qml/ServicesSources.qml</file>
123
- </qresource>
124
- <qresource prefix="/medialibrary">
125
- <file alias="MediaGroupDisplay.qml">medialibrary/qml/MediaGroupDisplay.qml</file>
126
- <file alias="MusicAlbums.qml">medialibrary/qml/MusicAlbums.qml</file>
127
- <file alias="MusicDisplay.qml">medialibrary/qml/MusicDisplay.qml</file>
128
- <file alias="MusicGenres.qml">medialibrary/qml/MusicGenres.qml</file>
129
- <file alias="VideoDisplay.qml">medialibrary/qml/VideoDisplay.qml</file>
130
- <file alias="VideoAll.qml">medialibrary/qml/VideoAll.qml</file>
131
- <file alias="VideoAllDisplay.qml">medialibrary/qml/VideoAllDisplay.qml</file>
132
- <file alias="VideoAllSubDisplay.qml">medialibrary/qml/VideoAllSubDisplay.qml</file>
133
- <file alias="PlaylistMediaList.qml">medialibrary/qml/PlaylistMediaList.qml</file>
134
- <file alias="PlaylistMedia.qml">medialibrary/qml/PlaylistMedia.qml</file>
135
- <file alias="PlaylistMediaDisplay.qml">medialibrary/qml/PlaylistMediaDisplay.qml</file>
136
- <file alias="VideoPlaylistsDisplay.qml">medialibrary/qml/VideoPlaylistsDisplay.qml</file>
137
- <file alias="MusicAlbumsDisplay.qml">medialibrary/qml/MusicAlbumsDisplay.qml</file>
138
- <file alias="MusicAlbumsGridExpandDelegate.qml">medialibrary/qml/MusicAlbumsGridExpandDelegate.qml</file>
139
- <file alias="MusicArtist.qml">medialibrary/qml/MusicArtist.qml</file>
140
- <file alias="MusicArtistDelegate.qml">medialibrary/qml/MusicArtistDelegate.qml</file>
141
- <file alias="MusicArtistsAlbums.qml">medialibrary/qml/MusicArtistsAlbums.qml</file>
142
- <file alias="MusicAllArtists.qml">medialibrary/qml/MusicAllArtists.qml</file>
143
- <file alias="MusicArtistsDisplay.qml">medialibrary/qml/MusicArtistsDisplay.qml</file>
144
- <file alias="MusicGenresDisplay.qml">medialibrary/qml/MusicGenresDisplay.qml</file>
145
- <file alias="MusicPlaylistsDisplay.qml">medialibrary/qml/MusicPlaylistsDisplay.qml</file>
146
- <file alias="MusicTracksDisplay.qml">medialibrary/qml/MusicTracksDisplay.qml</file>
147
- <file alias="MusicTrackListDisplay.qml">medialibrary/qml/MusicTrackListDisplay.qml</file>
148
- <file alias="ArtistTopBanner.qml">medialibrary/qml/ArtistTopBanner.qml</file>
149
- <file alias="UrlListDisplay.qml">medialibrary/qml/UrlListDisplay.qml</file>
150
- <file alias="VideoInfoExpandPanel.qml">medialibrary/qml/VideoInfoExpandPanel.qml</file>
151
- <file alias="VideoListDisplay.qml">medialibrary/qml/VideoListDisplay.qml</file>
152
- <file alias="VideoGridItem.qml">medialibrary/qml/VideoGridItem.qml</file>
153
- <file alias="AudioGridItem.qml">medialibrary/qml/AudioGridItem.qml</file>
154
- <file alias="VideoRecentVideos.qml">medialibrary/qml/VideoRecentVideos.qml</file>
155
- <file alias="VideoGridDisplay.qml">medialibrary/qml/VideoGridDisplay.qml</file>
156
- <file alias="VideoRecentVideosDisplay.qml">medialibrary/qml/VideoRecentVideosDisplay.qml</file>
157
- </qresource>
158
- <qresource prefix="/style">
159
- <file alias="AcrylicController.qml">style/AcrylicController.qml</file>
160
- <file alias="qmldir">style/qmldir</file>
161
- <file alias="VLCStyle.qml">style/VLCStyle.qml</file>
162
- <file alias="VLCIcons.qml">style/VLCIcons.qml</file>
163
- </qresource>
164
- <qresource prefix="/playlist">
165
- <file alias="PlaylistDelegate.qml">playlist/qml/PlaylistDelegate.qml</file>
166
- <file alias="PlaylistListView.qml">playlist/qml/PlaylistListView.qml</file>
167
- <file alias="PlaylistToolbar.qml">playlist/qml/PlaylistToolbar.qml</file>
168
- <file alias="PlaylistDetachedWindow.qml">playlist/qml/PlaylistDetachedWindow.qml</file>
169
- </qresource>
170
- <qresource prefix="/menus">
171
- <file alias="Menubar.qml">menus/qml/Menubar.qml</file>
172
- <file alias="GlobalShortcuts.qml">menus/qml/GlobalShortcuts.qml</file>
173
- <file alias="GlobalShortcutsMedialib.qml">menus/qml/GlobalShortcutsMedialib.qml</file>
174
- <file alias="ShortcutExt.qml">menus/qml/ShortcutExt.qml</file>
175
- </qresource>
176
- <qresource prefix="/player">
177
- <file alias="qmldir">player/qml/qmldir</file>
178
- <file alias="Player.qml">player/qml/Player.qml</file>
179
- <file alias="ControlBar.qml">player/qml/ControlBar.qml</file>
180
- <file alias="ResumeDialog.qml">player/qml/ResumeDialog.qml</file>
181
- <file alias="SliderBar.qml">player/qml/SliderBar.qml</file>
182
- <file alias="TracksMenu.qml">player/qml/TracksMenu.qml</file>
183
- <file alias="TracksPage.qml">player/qml/TracksPage.qml</file>
184
- <file alias="TracksPageSpeed.qml">player/qml/TracksPageSpeed.qml</file>
185
- <file alias="TracksPageAudio.qml">player/qml/TracksPageAudio.qml</file>
186
- <file alias="TracksPageSubtitle.qml">player/qml/TracksPageSubtitle.qml</file>
187
- <file alias="TracksListPage.qml">player/qml/TracksListPage.qml</file>
188
- <file alias="ControlbarControls.qml">player/qml/ControlbarControls.qml</file>
189
- <file alias="MiniPlayer.qml">player/qml/MiniPlayer.qml</file>
190
- <file alias="TopBar.qml">player/qml/TopBar.qml</file>
191
- <file alias="PIPPlayer.qml">player/qml/PIPPlayer.qml</file>
192
- <file alias="PlayerControlLayout.qml">player/qml/PlayerControlLayout.qml</file>
193
- <file alias="ControlLayout.qml">player/qml/ControlLayout.qml</file>
194
- <file alias="ControlRepeater.qml">player/qml/ControlRepeater.qml</file>
195
- <file alias="PlaybackSpeed.qml">player/qml/PlaybackSpeed.qml</file>
196
- <file alias="PlayerPlaylistVisibilityFSM.qml">player/qml/PlayerPlaylistVisibilityFSM.qml</file>
197
- <file alias="PlayerBlurredBackground.qml">player/qml/PlayerBlurredBackground.qml</file>
198
- <file alias="Bookmarks.qml">player/qml/Bookmarks.qml</file>
199
- <file alias="NavigationBox.qml">player/qml/NavigationBox.qml</file>
200
- </qresource>
201
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/style/qmldir
Deleted
5
1
2
-singleton VLCStyle VLCStyle.qml
3
-singleton VLCIcons VLCIcons.qml
4
-singleton AcrylicController AcrylicController.qml
5
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/util/qml/Helpers.js
Deleted
128
1
2
-/*****************************************************************************
3
- * Copyright (C) 2021 VLC authors and VideoLAN
4
- *
5
- * This program is free software; you can redistribute it and/or modify
6
- * it under the terms of the GNU General Public License as published by
7
- * the Free Software Foundation; either version 2 of the License, or
8
- * ( at your option ) any later version.
9
- *
10
- * This program is distributed in the hope that it will be useful,
11
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
- * GNU General Public License for more details.
14
- *
15
- * You should have received a copy of the GNU General Public License
16
- * along with this program; if not, write to the Free Software
17
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
18
- *****************************************************************************/
19
-
20
-.pragma library
21
-
22
-function clamp(num, min, max) {
23
- return num <= min ? min : num >= max ? max : num;
24
-}
25
-
26
-function isValidInstanceOf(object, type) {
27
- return (!!object && (object instanceof type))
28
-}
29
-
30
-// NOTE: This allows us to force another 'reason' even when the item has activeFocus.
31
-function enforceFocus(item, reason) {
32
- if (item.activeFocus && item.focusReason === reason)
33
- return
34
-
35
- item.focus = false;
36
-
37
- item.forceActiveFocus(reason);
38
-}
39
-
40
-function applyVolume(player, delta) {
41
- // Degrees to steps for standard mouse
42
- delta = delta / 8 / 15
43
-
44
- const steps = Math.ceil(Math.abs(delta))
45
-
46
- player.muted = false
47
-
48
- if (delta > 0)
49
- player.setVolumeUp(steps)
50
- else
51
- player.setVolumeDown(steps)
52
-}
53
-
54
-function pointInRadius(x, y, radius) {
55
- return (x * x + y * y < radius * radius)
56
-}
57
-
58
-// checks if point `pos` lies in rect `rect`
59
-function contains(rect, pos) {
60
- return (clamp(pos.x, rect.x, rect.x + rect.width) === pos.x)
61
- && (clamp(pos.y, rect.y, rect.y + rect.height) === pos.y)
62
-}
63
-
64
-function isInteger(data) {
65
- return (typeof data === 'number' && (data % 1) === 0)
66
-}
67
-
68
-function compareFloat(a, b) {
69
- return (Math.abs(a - b) < Number.EPSILON)
70
-}
71
-
72
-function alignUp(a, b) {
73
- return Math.ceil(a / b) * b
74
-}
75
-
76
-function alignDown(a, b) {
77
- return Math.floor(a / b) * b
78
-}
79
-
80
-function isSortedIntegerArrayConsecutive(array) {
81
- for (let i = 1; i < array.length; ++i) {
82
- if ((arrayi - arrayi - 1) !== 1)
83
- return false
84
- }
85
-
86
- return true
87
-}
88
-
89
-function itemsMovable(sortedItemIndexes, targetIndex) {
90
- return !isSortedIntegerArrayConsecutive(sortedItemIndexes) ||
91
- (targetIndex > (sortedItemIndexessortedItemIndexes.length - 1 + 1) ||
92
- targetIndex < sortedItemIndexes0)
93
-}
94
-
95
-/**
96
- * calculate content y for flickable such that item with given param will be fully visible
97
- * @param type:Flickable flickable
98
- * @param type:real y
99
- * @param type:real height
100
- * @param type:real topMargin
101
- * @param type:real bottomMargin
102
- * @return type:real appropriate contentY for flickable
103
- */
104
-function flickablePositionContaining(flickable, y, height, topMargin, bottomMargin) {
105
- const itemTopY = flickable.originY + y
106
- const itemBottomY = itemTopY + height
107
-
108
- const viewTopY = flickable.contentY
109
- const viewBottomY = viewTopY + flickable.height
110
-
111
- let newContentY
112
-
113
- if (itemTopY < viewTopY)
114
- //item above view
115
- newContentY = itemTopY - topMargin
116
- else if (itemBottomY > viewBottomY)
117
- //item below view
118
- newContentY = itemBottomY + bottomMargin - flickable.height
119
- else
120
- newContentY = flickable.contentY
121
-
122
- return newContentY
123
-}
124
-
125
-function isArray(obj) {
126
- return (obj?.length !== undefined) ?? false
127
-}
128
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/configure.ac -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/configure.ac
Changed
122
1
2
AS_HELP_STRING(--enable-rust,
3
enable building Rust modules (default disabled)))
4
AS_IF(test "${enable_rust}" = "yes",
5
+
6
+ rust_target_flags=
7
+ AS_IF(test "$vlc_winstore_app" = "1",
8
+ rust_target_flags="${rust_target_flags} --uwp"
9
+ )
10
+ AS_IF(test "${win_ucrt_build}" = "yes",
11
+ rust_target_flags="${rust_target_flags} --ucrt"
12
+ )
13
+ AS_IF(test "${HAVE_TVOS}" = "1",
14
+ rust_target_flags="${rust_target_flags} --darwin=tvos"
15
+ ,
16
+ AS_IF(test "${HAVE_WATCHOS}" = "1",
17
+ rust_target_flags="${rust_target_flags} --darwin=watchos"
18
+ ,
19
+ AS_IF(test "${HAVE_XROS}" = "1",
20
+ rust_target_flags="${rust_target_flags} --darwin=xros"
21
+ ,
22
+ AS_IF(test "${HAVE_IOS}" = "1",
23
+ rust_target_flags="${rust_target_flags} --darwin=ios"
24
+ ,
25
+ AS_IF(test "${HAVE_OSX}" = "1",
26
+ rust_target_flags="${rust_target_flags} --darwin=macos"
27
+ )
28
+ )
29
+ )
30
+ )
31
+ )
32
+
33
+ AC_MSG_CHECKING(Rust target)
34
+ rust_target=$(${srcdir}/contrib/src/get-rust-target.sh \
35
+ ${rust_target_flags} \
36
+ ${host})
37
+ ac_status=$?
38
+ AS_IF(test $ac_status = 0,
39
+ AC_MSG_RESULT(${rust_target})
40
+ AC_SUBST(RUST_TARGET, "${rust_target}")
41
+ ,
42
+ AC_MSG_RESULT(unsupported)
43
+ AC_MSG_ERROR(Unsupported Rust target for ${host})
44
+ )
45
+
46
+ AS_IF(test -z "${CARGO_HOME}" -a "${host}" != "${build}",
47
+ AC_MSG_CHECKING(CARGO_HOME from contribs)
48
+ AS_IF(test -d "${CONTRIB_DIR}/../bin/.cargo",
49
+ CARGO_HOME=$(cd "${CONTRIB_DIR}/../bin/.cargo" && pwd -P)
50
+ AC_MSG_RESULT(${CARGO_HOME})
51
+ ,
52
+ AC_MSG_RESULT(not found)
53
+ )
54
+ )
55
+
56
+ RUST_ENV=
57
+ AS_IF(test -n "${CARGO_HOME}",
58
+ RUST_ENV="${RUST_ENV} CARGO_HOME=\"${CARGO_HOME}\""
59
+ AS_IF(test -x "${CARGO_HOME}/bin/cargo",
60
+ ac_cv_prog_CARGO="${CARGO_HOME}/bin/cargo"
61
+ )
62
+ AS_IF(test -x "${CARGO_HOME}/bin/rustc",
63
+ ac_cv_prog_RUSTC="${CARGO_HOME}/bin/rustc"
64
+ )
65
+ )
66
+
67
+ AS_IF(test "${host}" != "${build}",
68
+ dnl RUSTUP_HOME is needed to cross-compile Rust
69
+ AS_IF(test -z "${RUSTUP_HOME}",
70
+ AC_MSG_CHECKING(RUSTUP_HOME from contribs)
71
+ AS_IF(test -d "${CONTRIB_DIR}/../bin/.rustup",
72
+ RUSTUP_HOME=$(cd "${CONTRIB_DIR}/../bin/.rustup" && pwd -P)
73
+ AC_MSG_RESULT(${RUSTUP_HOME})
74
+ ,
75
+ AC_MSG_RESULT(not found)
76
+ )
77
+ )
78
+ )
79
+
80
+ AS_IF(test -n "${RUSTUP_HOME}",
81
+ RUST_ENV="${RUST_ENV} RUSTUP_HOME=\"${RUSTUP_HOME}\""
82
+ )
83
+
84
AC_CHECK_PROGS(RUSTC, rustc, no)
85
AS_IF(test "$RUSTC" = "no",
86
AC_MSG_ERROR(rustc not found but required to build Rust modules)
87
)
88
- AS_IF(test "${host}" = "${build}",
89
- AC_CACHE_CHECK(rustc host target, ac_cv_rustc_host_target,
90
- ac_cv_rustc_host_target=$($RUSTC --verbose --version | grep "host:" | cut -d" " -f2-))
91
- AS_IF(test -n "${ac_cv_rustc_host_target}",
92
- AC_SUBST(RUST_TARGET, "$ac_cv_rustc_host_target"),
93
- AC_MSG_ERROR(failed to extract rustc host target))
94
+
95
+ AC_MSG_CHECKING(Rust compiler supports ${rust_target})
96
+ ac_try="echo 'fn main() {}' | ${RUST_ENV} \"${RUSTC}\" --target=${rust_target} --emit=dep-info - -o -"
97
+ (eval "$ac_try") 2>&5
98
+ ac_status=$?
99
+ AS_IF(test $ac_status = 0,
100
+ AC_MSG_RESULT(yes)
101
,
102
- AC_MSG_ERROR(cross compilation is not yet supported for Rust modules (${host} != ${build}))
103
+ AC_MSG_RESULT(no)
104
+ AC_MSG_ERROR(Required target ${rust_target} missing (using ${RUST_ENV}))
105
)
106
AC_CHECK_PROGS(CARGO, cargo, no)
107
AS_IF(test "$CARGO" = "no",
108
AC_MSG_ERROR(cargo not found. cargo is required to build Rust modules)
109
)
110
+ AC_SUBST(RUST_ENV)
111
AC_DEFINE(ENABLE_RUST, 1, Define to 1 for building rust modules.)
112
)
113
AM_CONDITIONAL(HAVE_RUST, test "${enable_rust}" = "yes")
114
115
AM_CONDITIONAL(HAVE_QT_GUI_PRIVATE, test "${have_qt_gui_private}" = "yes")
116
AM_CONDITIONAL(HAVE_QT_CORE_PRIVATE, test "${have_qt_core_private}" = "yes")
117
AM_CONDITIONAL(HAVE_FXC, test "${have_fxc}" = "yes")
118
+AM_CONDITIONAL(HAVE_QT67, test "${QT_VERSION_MAJ}" -gt "6" || (test "${QT_VERSION_MAJ}" = "6" && test "${QT_VERSION_MIN}" -ge "7"))
119
120
dnl
121
dnl detect kde4-config patch (used for kde solids).
122
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/contrib/bootstrap -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/contrib/bootstrap
Changed
12
1
2
then
3
add_make_enabled "HAVE_BITCODE_ENABLED"
4
fi
5
+ if test "$BUILDFORSIMULATOR"
6
+ then
7
+ add_make_enabled "HAVE_SIMULATOR"
8
+ fi
9
;;
10
*bsd*)
11
MAKE=gmake
12
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/contrib/src/cargo-c/rules.mak -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/contrib/src/cargo-c/rules.mak
Changed
29
1
2
CARGOC_VERSION := 0.9.29
3
4
ifdef BUILD_RUST
5
-PKGS_TOOLS += cargo-c
6
+# PKGS_TOOLS += cargo-c
7
8
ifneq ($(call system_tool_majmin, cargo-capi --version),)
9
PKGS_FOUND += cargo-c
10
11
12
endif
13
14
-ifdef HAVE_CROSS_COMPILE
15
-DEPS_cargo-c = rustc-cross $(DEPS_rustc-cross)
16
-else
17
DEPS_cargo-c = rustc $(DEPS_rustc)
18
-endif
19
20
.sum-cargo-c:
21
touch $@
22
23
24
.cargo-c:
25
+unset PKG_CONFIG_LIBDIR PKG_CONFIG_PATH CFLAGS CPPFLAGS LDFLAGS; \
26
- $(CARGO) install --locked $(CARGOC_FEATURES) cargo-c --version $(CARGOC_VERSION)
27
+ $(CARGO_NATIVE) install --target=$(RUST_HOST) --locked $(CARGOC_FEATURES) cargo-c --version $(CARGOC_VERSION)
28
touch $@
29
_service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/contrib/src/get-rust-target.sh
Added
201
1
2
+#!/bin/sh
3
+# SPDX-License-Identifier: ISC
4
+# Copyright (C) 2024 VideoLabs, VLC authors and VideoLAN
5
+#
6
+# Authors: Denis Charmet <typx@dinauz.org>
7
+# Steve Lhomme <robux4@videolabs.io>
8
+#
9
+# Transform a compilation triplet into a Rust Tier 1 and Tier 2 target
10
+# based on https://doc.rust-lang.org/rustc/platform-support.html
11
+
12
+DARWIN=
13
+ARCH=
14
+OS=
15
+UWP=
16
+UCRT=
17
+SIMULATOR=
18
+TRIPLET=
19
+
20
+abort_err()
21
+{
22
+ echo "ERROR: $1" >&2
23
+ exit 1
24
+}
25
+
26
+return_triplet()
27
+{
28
+ echo "$1"
29
+ exit 0
30
+}
31
+
32
+validate_darwin()
33
+{
34
+ D=$(echo $1 | cut -f2 -d"=")
35
+ case $D in
36
+ macos)
37
+ DARWIN=macos
38
+ ;;
39
+ ios)
40
+ DARWIN=ios
41
+ ;;
42
+ tvos)
43
+ DARWIN=tvos
44
+ ;;
45
+ watchos)
46
+ DARWIN=watchos
47
+ ;;
48
+ xros)
49
+ DARWIN=xros
50
+ ;;
51
+ *)
52
+ abort_err "Unsupported Darwin variant '$D'"
53
+ ;;
54
+ esac
55
+}
56
+
57
+validate_triplet()
58
+{
59
+ TRIPLET=$1
60
+ ARCH=$(echo $1 | cut -f 1 -d '-')
61
+ UNUSED=$(echo $1 | cut -f 2 -d '-')
62
+ OS=$(echo $1 | cut -f 3 -d '-')
63
+ REST=$(echo $1 | cut -f 4 -d '-')
64
+
65
+ if test ! -z "$REST"; then
66
+ OS=$REST
67
+ fi
68
+ if test -z "$ARCH" || test -z "$UNUSED" || test -z "$OS"; then
69
+ abort_err "Unsupported triplet '$1'"
70
+ fi
71
+}
72
+
73
+print_usage()
74
+{
75
+ echo "Usage: $0 --ucrt --uwp --darwin {macos,ios,tvos,watchos,xros} --simulator triplet"
76
+}
77
+
78
+
79
+for ARG in "$@"; do
80
+ case $ARG in
81
+ --uwp)
82
+ UWP=1
83
+ ;;
84
+ --ucrt)
85
+ UCRT=1
86
+ ;;
87
+ --simulator)
88
+ SIMULATOR=1
89
+ ;;
90
+ --darwin=*)
91
+ validate_darwin $ARG
92
+ ;;
93
+ *-*-*)
94
+ validate_triplet $ARG
95
+ break
96
+ ;;
97
+ *)
98
+ print_usage
99
+ abort_err "Unknown parameter $ARG"
100
+ ;;
101
+ esac
102
+done
103
+
104
+case $OS in
105
+ mingw32|mingw32ucrt|mingw32uwp)
106
+ if test ! -z "$UWP"; then
107
+ abort_err "UWP Windows is Tier 3"
108
+ fi
109
+ if test ! -z "$UCRT"; then
110
+ return_triplet $ARCH-pc-windows-gnullvm
111
+ else
112
+ return_triplet $ARCH-pc-windows-gnu
113
+ fi
114
+ ;;
115
+
116
+ android)
117
+ case $ARCH in
118
+ aarch64|i686|x86_64)
119
+ return_triplet $TRIPLET
120
+ ;;
121
+ esac
122
+ ;;
123
+
124
+ androideabi)
125
+ case $ARCH in
126
+ arm|armv7|thumbv7neon)
127
+ return_triplet $TRIPLET
128
+ ;;
129
+ esac
130
+ ;;
131
+
132
+ darwin*)
133
+ case $DARWIN in
134
+ macos)
135
+ case $ARCH in
136
+ aarch64|arm64)
137
+ return_triplet aarch64-apple-darwin
138
+ ;;
139
+ x86_64)
140
+ return_triplet x86_64-apple-darwin
141
+ ;;
142
+ esac
143
+ ;;
144
+
145
+ ios)
146
+ if test ! -z "$SIMULATOR"; then
147
+ case $ARCH in
148
+ aarch64|arm64)
149
+ return_triplet aarch64-apple-ios-sim
150
+ ;;
151
+ esac
152
+ else
153
+ case $ARCH in
154
+ aarch64|arm64)
155
+ return_triplet aarch64-apple-ios
156
+ ;;
157
+ x86_64)
158
+ return_triplet x86_64-apple-ios
159
+ ;;
160
+ esac
161
+ fi
162
+ ;;
163
+
164
+ esac
165
+ abort_err "Unsupported Darwin triplet '$TRIPLET' for '$DARWIN'"
166
+ ;;
167
+
168
+ gnueabihf)
169
+ case $ARCH in
170
+ arm|armv7|thumbv7neon)
171
+ return_triplet $ARCH-unknown-linux-gnueabihf
172
+ ;;
173
+ esac
174
+ ;;
175
+
176
+ gnu)
177
+ case $ARCH in
178
+ riscv64)
179
+ return_triplet riscv64gc-unknown-linux-gnu
180
+ ;;
181
+ x86_64|aarch64|i686|loongarch64|powerpc|powerpc64|powerpcle|s390x|i586|sparc64)
182
+ return_triplet $ARCH-unknown-linux-gnu
183
+ ;;
184
+ esac
185
+ ;;
186
+
187
+ netbsd)
188
+ case $ARCH in
189
+ x86_64)
190
+ return_triplet x86_64-unknown-netbsd
191
+ ;;
192
+ esac
193
+ ;;
194
+
195
+ freebsd)
196
+ case $ARCH in
197
+ x86_64)
198
+ return_triplet x86_64-unknown-freebsd
199
+ ;;
200
+ esac
201
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/contrib/src/main-rust.mak -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/contrib/src/main-rust.mak
Changed
109
1
2
RUST_VERSION_MIN=1.63.0
3
4
ifdef HAVE_WIN32
5
+ifdef HAVE_WINSTORE
6
+RUST_TARGET_FLAGS += --uwp
7
+endif
8
ifdef HAVE_UCRT
9
# does not work as Tier 2 before that
10
RUST_VERSION_MIN=1.79.0
11
-
12
-ifndef HAVE_WINSTORE # UWP is available as Tier 3
13
-ifeq ($(HOST),i686-w64-mingw32)
14
-RUST_TARGET = i686-pc-windows-gnullvm # ARCH is i386
15
-else ifneq ($(HOST),armv7-w64-mingw32)
16
-# Not supported on armv7
17
-RUST_TARGET = $(ARCH)-pc-windows-gnullvm
18
-endif # archs
19
-endif # WINSTORE
20
-else # MSVCRT
21
-ifeq ($(HOST),i686-w64-mingw32)
22
-RUST_TARGET = i686-pc-windows-gnu # ARCH is i386
23
-else ifeq ($(HOST),x86_64-w64-mingw32)
24
-RUST_TARGET = $(ARCH)-pc-windows-gnu
25
-else
26
-# Not supported on armv7/aarch64 yet
27
-endif # archs
28
-endif # MSVCRT
29
-else ifdef HAVE_ANDROID
30
-RUST_TARGET = $(HOST)
31
-else ifdef HAVE_IOS
32
-ifneq ($(ARCH),arm) # iOS 32bit is Tier 3
33
-ifneq ($(ARCH),i386) # iOS 32bit is Tier 3
34
-ifndef HAVE_TVOS # tvOS is Tier 3
35
-RUST_TARGET = $(ARCH)-apple-ios
36
-endif
37
+RUST_TARGET_FLAGS += --ucrt
38
endif
39
endif
40
-else ifdef HAVE_MACOSX
41
-RUST_TARGET = $(ARCH)-apple-darwin
42
-# else ifdef HAVE_SOLARIS
43
-# Solaris x86_64 is Tier 3
44
-# RUST_TARGET = x86_64-sun-solaris
45
-else ifdef HAVE_LINUX
46
-ifeq ($(HOST),arm-linux-gnueabihf)
47
-RUST_TARGET = arm-unknown-linux-gnueabihf #add eabihf
48
-else
49
-ifeq ($(HOST),riscv64-linux-gnu)
50
-RUST_TARGET = riscv64gc-unknown-linux-gnu
51
+
52
+ifdef HAVE_DARWIN_OS
53
+ifdef HAVE_TVOS
54
+RUST_TARGET_FLAGS += --darwin=tvos
55
+else ifdef HAVE_WATCHOS
56
+RUST_TARGET_FLAGS += --darwin=watchos
57
+else ifdef HAVE_IOS
58
+RUST_TARGET_FLAGS += --darwin=ios
59
else
60
-RUST_TARGET = $(ARCH)-unknown-linux-gnu
61
+RUST_TARGET_FLAGS += --darwin=macos
62
+endif
63
+ifdef HAVE_SIMULATOR
64
+RUST_TARGET_FLAGS += --simulator
65
endif
66
endif
67
-else ifdef HAVE_BSD
68
-RUST_TARGET = $(HOST)
69
-else ifdef HAVE_EMSCRIPTEN
70
-RUST_TARGET = $(HOST)
71
+
72
+ifneq ($(findstring darwin,$(BUILD)),)
73
+RUST_BUILD_FLAGS += --darwin=macos
74
endif
75
76
+RUST_TARGET := $(shell $(SRC)/get-rust-target.sh $(RUST_TARGET_FLAGS) $(HOST) 2>/dev/null || echo FAIL)
77
+RUST_HOST := $(shell $(SRC)/get-rust-target.sh $(RUST_BUILD_FLAGS) $(BUILD) 2>/dev/null || echo FAIL)
78
+
79
+ifneq ($(RUST_HOST),FAIL)
80
# For now, VLC don't support Tier 3 platforms (ios 32bit, tvOS).
81
# Supporting a Tier 3 platform means building an untested rust toolchain.
82
# TODO Let's hope tvOS move from Tier 3 to Tier 2 before the VLC 4.0 release.
83
-ifneq ($(RUST_TARGET),)
84
+ifneq ($(RUST_TARGET),FAIL)
85
BUILD_RUST="1"
86
endif
87
+endif
88
89
RUSTUP_HOME= $(BUILDBINDIR)/.rustup
90
CARGO_HOME = $(BUILDBINDIR)/.cargo
91
92
93
CARGO_ENV = TARGET_CC="$(CC)" TARGET_AR="$(AR)" TARGET_RANLIB="$(RANLIB)" \
94
TARGET_CFLAGS="$(CFLAGS)" RUSTFLAGS="$(RUSTFLAGS)"
95
+CARGO_ENV_NATIVE = TARGET_CC="$(BUILDCC)" TARGET_AR="$(BUILDAR)" TARGET_RANLIB="$(BUILDRANLIB)" \
96
+ TARGET_CFLAGS="$(BUILDCFLAGS)"
97
98
ifneq ($(call system_tool_majmin, cargo --version),)
99
CARGO = RUSTUP_HOME=$(RUSTUP_HOME) CARGO_HOME=$(CARGO_HOME) $(CARGO_ENV) cargo
100
+CARGO_NATIVE = RUSTUP_HOME=$(RUSTUP_HOME) CARGO_HOME=$(CARGO_HOME) $(CARGO_ENV_NATIVE) cargo
101
else
102
CARGO = . $(CARGO_HOME)/env && \
103
RUSTUP_HOME=$(RUSTUP_HOME) CARGO_HOME=$(CARGO_HOME) $(CARGO_ENV) cargo
104
+CARGO_NATIVE = . $(CARGO_HOME)/env && \
105
+ RUSTUP_HOME=$(RUSTUP_HOME) CARGO_HOME=$(CARGO_HOME) $(CARGO_ENV_NATIVE) cargo
106
endif
107
108
CARGO_INSTALL_ARGS = --target=$(RUST_TARGET) --prefix=$(PREFIX) \
109
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/contrib/src/rav1e/rules.mak -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/contrib/src/rav1e/rules.mak
Changed
24
1
2
3
# we may not need cargo if the tarball is downloaded, but it will be needed by rav1e anyway
4
ifdef HAVE_CROSS_COMPILE
5
-DEPS_rav1e-vendor = rustc-cross $(DEPS_rustc-cross)
6
DEPS_rav1e = rustc-cross $(DEPS_rustc-cross)
7
else
8
-DEPS_rav1e-vendor = rustc $(DEPS_rustc)
9
DEPS_rav1e = rustc $(DEPS_rustc)
10
endif
11
+DEPS_rav1e-vendor = rustc $(DEPS_rustc)
12
DEPS_rav1e += rav1e-vendor $(DEPS_rav1e-vendor) cargo-c $(DEPS_cargo-c)
13
14
# rav1e-vendor
15
16
$(RM) -R $@
17
mkdir -p $@
18
tar xzfo $(TARBALLS)/rav1e-$(RAV1E_VERSION).tar.gz -C $@ --strip-components=1
19
- cd $@ && $(CARGO) vendor --locked rav1e-$(RAV1E_VERSION)-vendor
20
+ cd $@ && $(CARGO_NATIVE) vendor --locked rav1e-$(RAV1E_VERSION)-vendor
21
cd $@ && tar -jcf rav1e-$(RAV1E_VERSION)-vendor.tar.bz2 rav1e-$(RAV1E_VERSION)-vendor
22
install $@/rav1e-$(RAV1E_VERSION)-vendor.tar.bz2 "$(TARBALLS)"
23
# cd $@ && sha512sum rav1e-$(RAV1E_VERSION)-vendor.tar.bz2 > SHA512SUMS
24
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/contrib/src/rustc/rules.mak -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/contrib/src/rustc/rules.mak
Changed
19
1
2
RUSTUP_HOME=$(RUSTUP_HOME) CARGO_HOME=$(CARGO_HOME) rustup
3
endif
4
5
-ifeq ($(call system_tool_matches_min, cargo --version,$(RUST_VERSION_MIN)),)
6
+ifeq ($(call system_tool_matches_min, echo 'fn main() {}' | rustc --target=$(RUST_HOST) --emit=dep-info - -o /dev/null 2>/dev/null && rustc --target=$(RUST_HOST) --version,$(RUST_VERSION_MIN)),)
7
PKGS_FOUND += rustc
8
-# TODO detect if the target is available
9
-# PKGS_FOUND += rustc-cross
10
else
11
DEPS_rustc = rustup $(DEPS_rustup)
12
endif
13
+ifeq ($(call system_tool_matches_min, echo 'fn main() {}' | rustc --target=$(RUST_TARGET) --emit=dep-info - -o /dev/null 2>/dev/null && rustc --target=$(RUST_TARGET) --version,$(RUST_VERSION_MIN)),)
14
+PKGS_FOUND += rustc-cross
15
+endif
16
17
endif
18
19
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/extras/ci/gitlab-ci.yml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/extras/ci/gitlab-ci.yml
Changed
23
1
2
3
variables:
4
VLC_TEST_TIMEOUT: 60
5
- VLC_WIN64_IMAGE: registry.videolan.org/vlc-debian-win64-posix:20240612181044
6
+ VLC_WIN64_IMAGE: registry.videolan.org/vlc-debian-win64-posix:20240722111928
7
VLC_WIN_LLVM_MSVCRT_IMAGE: registry.videolan.org/vlc-debian-llvm-msvcrt:20240617101054
8
VLC_WIN_LLVM_UCRT_IMAGE: registry.videolan.org/vlc-debian-llvm-ucrt:20240617101054
9
VLC_DEBIAN_IMAGE: registry.videolan.org/vlc-debian-unstable:20240402131352
10
11
- |
12
# We split in two different commands to handle the case where
13
# the coverage will be generated on different jobs later.
14
- # Note: qt6-assets_qrc.cpp, qt6-qml_qrc.cpp, qt6-shaders_qrc.cpp, qt6-windows_qrc.cpp need to be remove from the report since their
15
+ # Note: qt generated files need to be remove from the report since their
16
# coverage should not be checked. It leads to gcovr having trouble
17
# parsing the coverage otherwise.
18
- gcovr -r "${CI_PROJECT_DIR}/" --json "${CI_PROJECT_DIR}/${CI_JOB_NAME}.cov.json" -j$NCPU --gcov-ignore-parse-errors=negative_hits.warn_once_per_file --exclude build-meson/modules/gui/qt/qt6-assets_qrc.cpp --exclude build-meson/modules/gui/qt/qt6-qml_qrc.cpp --exclude build-meson/modules/gui/qt/shaders/qt6-shaders_qrc.cpp --exclude build-meson/modules/gui/qt/qt6-windows_qrc.cpp
19
+ gcovr -r "${CI_PROJECT_DIR}/" --json "${CI_PROJECT_DIR}/${CI_JOB_NAME}.cov.json" -j$NCPU --gcov-ignore-parse-errors=negative_hits.warn_once_per_file --exclude "build-meson/modules/gui/qt/.*_qrc.cpp" --exclude "build-meson/modules/gui/qt/.*_assets.cpp"
20
21
- mkdir html-coverage
22
- >
23
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/extras/package/apple/build.sh -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/extras/package/apple/build.sh
Changed
11
1
2
export BUILDFORIOS="yes"
3
export BUILDFORWATCHOS="yes"
4
fi
5
+if "$VLC_HOST_PLATFORM_SIMULATOR" = "yes" ; then
6
+ export BUILDFORSIMULATOR="yes"
7
+fi
8
9
# Default to "make" if there is no MAKE env variable
10
MAKE=${MAKE:-make}
11
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/extras/package/macosx/VLC.xcodeproj/project.pbxproj -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/extras/package/macosx/VLC.xcodeproj/project.pbxproj
Changed
35
1
2
5317FE04294E3DD3001702F0 /* VLCLibraryCollectionViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 5317FE03294E3DD3001702F0 /* VLCLibraryCollectionViewDelegate.m */; };
3
532572032C3D79D80068DEC3 /* VLCLibrarySegmentBookmarkedLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = 532572022C3D79D80068DEC3 /* VLCLibrarySegmentBookmarkedLocation.m */; };
4
532572062C3EF3710068DEC3 /* VLCLibraryWindowNavigationSidebarOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = 532572052C3EF3710068DEC3 /* VLCLibraryWindowNavigationSidebarOutlineView.m */; };
5
+ 5325720F2C4966630068DEC3 /* VLCLibraryShowsDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 5325720E2C4966630068DEC3 /* VLCLibraryShowsDataSource.m */; };
6
5325C57D29302E6800B2B63A /* VLCLibraryAudioViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5325C57B29302E6800B2B63A /* VLCLibraryAudioViewController.m */; };
7
533B5D2C29CF94C6003DE887 /* VLCBookmarksTableViewDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 533B5D2B29CF94C6003DE887 /* VLCBookmarksTableViewDataSource.m */; };
8
534E73E229D2EDB1009982DE /* VLCBookmarksTableViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 534E73E129D2EDB1009982DE /* VLCBookmarksTableViewDelegate.m */; };
9
10
532572022C3D79D80068DEC3 /* VLCLibrarySegmentBookmarkedLocation.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VLCLibrarySegmentBookmarkedLocation.m; sourceTree = "<group>"; };
11
532572042C3EF3710068DEC3 /* VLCLibraryWindowNavigationSidebarOutlineView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCLibraryWindowNavigationSidebarOutlineView.h; sourceTree = "<group>"; };
12
532572052C3EF3710068DEC3 /* VLCLibraryWindowNavigationSidebarOutlineView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VLCLibraryWindowNavigationSidebarOutlineView.m; sourceTree = "<group>"; };
13
+ 5325720D2C4966630068DEC3 /* VLCLibraryShowsDataSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCLibraryShowsDataSource.h; sourceTree = "<group>"; };
14
+ 5325720E2C4966630068DEC3 /* VLCLibraryShowsDataSource.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VLCLibraryShowsDataSource.m; sourceTree = "<group>"; };
15
5325C57B29302E6800B2B63A /* VLCLibraryAudioViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCLibraryAudioViewController.m; sourceTree = "<group>"; };
16
5325C57C29302E6800B2B63A /* VLCLibraryAudioViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCLibraryAudioViewController.h; sourceTree = "<group>"; };
17
533B5D2A29CF94C6003DE887 /* VLCBookmarksTableViewDataSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCBookmarksTableViewDataSource.h; sourceTree = "<group>"; };
18
19
53B447EB293BB47A00857588 /* video-library */ = {
20
isa = PBXGroup;
21
children = (
22
+ 5325720D2C4966630068DEC3 /* VLCLibraryShowsDataSource.h */,
23
+ 5325720E2C4966630068DEC3 /* VLCLibraryShowsDataSource.m */,
24
536EFC37295E521600F4CB13 /* VLCLibraryVideoViewController.h */,
25
536EFC38295E521600F4CB13 /* VLCLibraryVideoViewController.m */,
26
53B447F0293BB47A00857588 /* VLCLibraryVideoGroupDescriptor.h */,
27
28
53ED473C29CBC64200795DB1 /* NSPasteboardItem+VLCAdditions.m in Sources */,
29
7D713D362201DC640042BEB7 /* VLCLibraryWindow.xib in Sources */,
30
1CCC88EE2078A3D500E5626F /* VLCStatusBarIconMainMenu.xib in Sources */,
31
+ 5325720F2C4966630068DEC3 /* VLCLibraryShowsDataSource.m in Sources */,
32
1CCC88EF2078A3D500E5626F /* VLCFullScreenPanel.xib in Sources */,
33
536283F5291146BC00640C15 /* VLCLibraryCollectionViewSupplementaryDetailView.m in Sources */,
34
531343E72A8E7B94007AEDFA /* VLCLibraryWindowNavigationSidebarViewController.m in Sources */,
35
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/demux/Makefile.am -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/demux/Makefile.am
Changed
9
1
2
demux/mkv/chapter_command.hpp demux/mkv/chapter_command.cpp \
3
demux/mkv/chapter_command_dvd.hpp demux/mkv/chapter_command_dvd.cpp \
4
demux/mkv/chapter_command_script.hpp demux/mkv/chapter_command_script.cpp \
5
+ demux/mkv/chapter_command_script_common.hpp demux/mkv/chapter_command_script_common.cpp \
6
demux/mkv/stream_io_callback.hpp demux/mkv/stream_io_callback.cpp \
7
demux/mkv/vlc_colors.c demux/mkv/vlc_colors.h \
8
demux/vobsub.h \
9
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/demux/meson.build -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/demux/meson.build
Changed
9
1
2
'mkv/chapter_command.cpp',
3
'mkv/chapter_command_dvd.cpp',
4
'mkv/chapter_command_script.cpp',
5
+ 'mkv/chapter_command_script_common.cpp',
6
'mkv/stream_io_callback.cpp',
7
'mkv/vlc_colors.c',
8
'mp4/libmp4.c',
9
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/demux/mkv/chapter_command.hpp -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/demux/mkv/chapter_command.hpp
Changed
9
1
2
struct vlc_logger *l;
3
chapter_codec_vm & vm;
4
};
5
-
6
} // namespace
7
8
#endif
9
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/demux/mkv/chapter_command_script.cpp -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/demux/mkv/chapter_command_script.cpp
Changed
55
1
2
// Copyright (C) 2003-2024 VLC authors and VideoLAN
3
// SPDX-License-Identifier: LGPL-2.1-or-later
4
//
5
-// chapter_command_script.cpp : DVD codec for Matroska Chapter Codecs
6
+// chapter_command_script.cpp : Matroska Script Codec for Matroska Chapter Codecs
7
// Authors: Laurent Aimar <fenrir@via.ecp.fr>
8
// Steve Lhomme <steve.lhomme@free.fr>
9
10
11
12
namespace mkv {
13
14
+//Matroska Script
15
const std::string matroska_script_interpretor_c::CMD_MS_GOTO_AND_PLAY = "GotoAndPlay";
16
17
// see http://www.matroska.org/technical/specs/chapters/index.html#mscript
18
19
return b_result;
20
}
21
22
-bool matroska_script_codec_c::Enter()
23
-{
24
- bool f_result = false;
25
- ChapterProcess::iterator index = enter_cmds.begin();
26
- while ( index != enter_cmds.end() )
27
- {
28
- if ( (*index).GetSize() )
29
- {
30
- vlc_debug( l, "Matroska Script enter command" );
31
- f_result |= interpreter.Interpret( (*index).GetBuffer(), (*index).GetSize() );
32
- }
33
- ++index;
34
- }
35
- return f_result;
36
-}
37
-
38
-bool matroska_script_codec_c::Leave()
39
-{
40
- bool f_result = false;
41
- ChapterProcess::iterator index = leave_cmds.begin();
42
- while ( index != leave_cmds.end() )
43
- {
44
- if ( (*index).GetSize() )
45
- {
46
- vlc_debug( l, "Matroska Script leave command" );
47
- f_result |= interpreter.Interpret( (*index).GetBuffer(), (*index).GetSize() );
48
- }
49
- ++index;
50
- }
51
- return f_result;
52
-}
53
-
54
} // namespace
55
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/demux/mkv/chapter_command_script.hpp -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/demux/mkv/chapter_command_script.hpp
Changed
58
1
2
#ifndef VLC_MKV_CHAPTER_COMMAND_SCRIPT_HPP_
3
#define VLC_MKV_CHAPTER_COMMAND_SCRIPT_HPP_
4
5
-#include "chapter_command.hpp"
6
+#include "chapter_command_script_common.hpp"
7
8
namespace mkv {
9
10
-class matroska_script_interpretor_c
11
+class matroska_script_interpretor_c : public matroska_script_interpreter_common_c
12
{
13
public:
14
matroska_script_interpretor_c( struct vlc_logger *log, chapter_codec_vm & vm_ )
15
- :l( log )
16
- ,vm( vm_ )
17
+ :matroska_script_interpreter_common_c(log, vm_)
18
{}
19
20
- bool Interpret( const binary * p_command, size_t i_size );
21
+ bool Interpret( const binary * p_command, size_t i_size ) override;
22
23
- // DVD command IDs
24
+ // Matroska Script commands
25
static const std::string CMD_MS_GOTO_AND_PLAY;
26
27
-protected:
28
- struct vlc_logger *l;
29
- chapter_codec_vm & vm;
30
};
31
32
-
33
-class matroska_script_codec_c : public chapter_codec_cmds_c
34
+class matroska_script_codec_c : public matroska_script_codec_common_c
35
{
36
public:
37
- matroska_script_codec_c( struct vlc_logger *log, chapter_codec_vm & vm_ )
38
- :chapter_codec_cmds_c( log, vm_, MATROSKA_CHAPTER_CODEC_NATIVE )
39
- ,interpreter( log, vm_ )
40
+ matroska_script_codec_c( struct vlc_logger *log, chapter_codec_vm & vm_, matroska_script_interpretor_c & interpreter_)
41
+ :matroska_script_codec_common_c( log, vm_, MATROSKA_CHAPTER_CODEC_NATIVE )
42
+ ,interpreter( interpreter_ )
43
{}
44
45
- bool Enter();
46
- bool Leave();
47
+ matroska_script_interpreter_common_c & get_interpreter() override
48
+ {
49
+ return interpreter;
50
+ }
51
52
protected:
53
- matroska_script_interpretor_c interpreter;
54
+ matroska_script_interpretor_c & interpreter;
55
};
56
57
} // namespace
58
_service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/demux/mkv/chapter_command_script_common.cpp
Added
49
1
2
+// Copyright (C) 2024 VLC authors and VideoLAN
3
+// SPDX-License-Identifier: LGPL-2.1-or-later
4
+//
5
+// chapter_command_script_common.cpp :
6
+// Common file for Matroska JS and Matroska Script
7
+// Authors: Laurent Aimar <fenrir@via.ecp.fr>
8
+// Steve Lhomme <steve.lhomme@free.fr>
9
+// Khalid Masum <khalid.masum.92@gmail.com>
10
+
11
+
12
+#include "chapter_command_script_common.hpp"
13
+
14
+namespace mkv {
15
+
16
+bool matroska_script_codec_common_c::Enter()
17
+{
18
+ bool f_result = false;
19
+ ChapterProcess::iterator index = enter_cmds.begin();
20
+ while ( index != enter_cmds.end() )
21
+ {
22
+ if ( (*index).GetSize() )
23
+ {
24
+ vlc_debug( l, "Matroska Script enter command" );
25
+ f_result |= get_interpreter().Interpret( (*index).GetBuffer(), (*index).GetSize() );
26
+ }
27
+ ++index;
28
+ }
29
+ return f_result;
30
+}
31
+
32
+bool matroska_script_codec_common_c::Leave()
33
+{
34
+ bool f_result = false;
35
+ ChapterProcess::iterator index = leave_cmds.begin();
36
+ while ( index != leave_cmds.end() )
37
+ {
38
+ if ( (*index).GetSize() )
39
+ {
40
+ vlc_debug( l, "Matroska Script leave command" );
41
+ f_result |= get_interpreter().Interpret( (*index).GetBuffer(), (*index).GetSize() );
42
+ }
43
+ ++index;
44
+ }
45
+ return f_result;
46
+}
47
+
48
+} // namespace
49
_service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/demux/mkv/chapter_command_script_common.hpp
Added
51
1
2
+// Copyright (C) 2003-2024 VLC authors and VideoLAN
3
+// SPDX-License-Identifier: LGPL-2.1-or-later
4
+//
5
+// chapter_command_script.hpp : MatroskaScript codec for Matroska Chapter Codecs
6
+// Authors: Laurent Aimar <fenrir@via.ecp.fr>
7
+// Steve Lhomme <steve.lhomme@free.fr>
8
+
9
+#ifndef VLC_MKV_CHAPTER_COMMAND_SCRIPT_COMMON_HPP_
10
+#define VLC_MKV_CHAPTER_COMMAND_SCRIPT_COMMON_HPP_
11
+
12
+#include "chapter_command.hpp"
13
+
14
+namespace mkv {
15
+
16
+class matroska_script_interpreter_common_c
17
+{
18
+public:
19
+ matroska_script_interpreter_common_c( struct vlc_logger *log, chapter_codec_vm & vm_ )
20
+ :l( log )
21
+ ,vm( vm_ )
22
+ {}
23
+
24
+ virtual ~matroska_script_interpreter_common_c() = default;
25
+
26
+ // DVD command IDs
27
+ virtual bool Interpret( const binary * p_command, size_t i_size ) = 0;
28
+
29
+protected:
30
+ struct vlc_logger *l;
31
+ chapter_codec_vm & vm;
32
+};
33
+
34
+class matroska_script_codec_common_c : public chapter_codec_cmds_c
35
+{
36
+public:
37
+
38
+ matroska_script_codec_common_c( struct vlc_logger *log, chapter_codec_vm &vm_, enum chapter_codec_id codec_id)
39
+ :chapter_codec_cmds_c(log, vm_, codec_id)
40
+ {}
41
+
42
+ bool Enter();
43
+ bool Leave();
44
+
45
+ virtual matroska_script_interpreter_common_c & get_interpreter()=0;
46
+};
47
+
48
+} // namespace
49
+
50
+#endif // VLC_MKV_CHAPTER_COMMAND_SCRIPT_HPP_
51
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/demux/mkv/demux.hpp -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/demux/mkv/demux.hpp
Changed
37
1
2
3
#include "chapter_command.hpp"
4
#include "chapter_command_dvd.hpp"
5
+#include "chapter_command_script.hpp"
6
#include "events.hpp"
7
8
#include <memory>
9
10
return dvd_interpretor.get();
11
}
12
13
+ matroska_script_interpretor_c * GetMatroskaScriptInterpreter()
14
+ {
15
+ if (!ms_interpreter)
16
+ {
17
+ try {
18
+ ms_interpreter = std::make_unique<matroska_script_interpretor_c> ( vlc_object_logger( &demuxer ), *this );
19
+ } catch ( const std::bad_alloc & ) {
20
+ }
21
+ }
22
+
23
+ return ms_interpreter.get();
24
+ }
25
+
26
uint8_t palette44;
27
vlc_mutex_t lock_demuxer;
28
29
30
private:
31
virtual_segment_c *p_current_vsegment = nullptr;
32
std::unique_ptr<dvd_command_interpretor_c> dvd_interpretor; // protected by lock_demuxer
33
+ std::unique_ptr<matroska_script_interpretor_c> ms_interpreter;
34
};
35
36
} // namespace
37
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/demux/mkv/matroska_segment_parse.cpp -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/demux/mkv/matroska_segment_parse.cpp
Changed
19
1
2
if( MKV_CHECKED_PTR_DECL_CONST( p_codec_id, KaxChapterProcessCodecID, proc ) )
3
{
4
if ( p_codec_id->GetValue() == MATROSKA_CHAPTER_CODEC_NATIVE )
5
- p_ccodec = new matroska_script_codec_c( vlc_object_logger( &vars.obj->sys.demuxer ), vars.obj->sys );
6
+ {
7
+ auto interpreter = vars.obj->sys.GetMatroskaScriptInterpreter();
8
+ if (unlikely(interpreter == nullptr))
9
+ debug( vars, "failed to get the Matroska Script interpreter ");
10
+ else
11
+ p_ccodec = new matroska_script_codec_c(
12
+ vlc_object_logger( &vars.obj->sys.demuxer ),
13
+ vars.obj->sys, *interpreter
14
+ );
15
+ }
16
else if ( p_codec_id->GetValue() == MATROSKA_CHAPTER_CODEC_DVD )
17
{
18
auto interepreter = vars.obj->sys.GetDVDInterpretor();
19
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/macosx/Makefile.am -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/Makefile.am
Changed
10
1
2
gui/macosx/library/home-library/VLCLibraryHomeViewVideoContainerViewDataSource.m \
3
gui/macosx/library/home-library/VLCLibraryHomeViewVideoGridContainerView.h \
4
gui/macosx/library/home-library/VLCLibraryHomeViewVideoGridContainerView.m \
5
+ gui/macosx/library/video-library/VLCLibraryShowsDataSource.h \
6
+ gui/macosx/library/video-library/VLCLibraryShowsDataSource.m \
7
gui/macosx/library/video-library/VLCLibraryVideoViewController.h \
8
gui/macosx/library/video-library/VLCLibraryVideoViewController.m \
9
gui/macosx/library/video-library/VLCLibraryVideoGroupDescriptor.h \
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/macosx/UI/VLCDetachedAudioWindow.xib -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/UI/VLCDetachedAudioWindow.xib
Changed
191
1
2
<window title="VLC media player" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" frameAutosaveName="detachedaudiowindow" animationBehavior="default" titlebarAppearsTransparent="YES" titleVisibility="hidden" id="2" userLabel="Detached Audio Window" customClass="VLCDetachedAudioWindow">
3
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES" fullSizeContentView="YES"/>
4
<windowPositionMask key="initialPositionMask" leftStrut="YES" topStrut="YES"/>
5
- <rect key="contentRect" x="91" y="467" width="239" height="239"/>
6
- <rect key="screenRect" x="0.0" y="0.0" width="1920" height="1177"/>
7
+ <rect key="contentRect" x="91" y="467" width="500" height="500"/>
8
+ <rect key="screenRect" x="0.0" y="0.0" width="1680" height="1050"/>
9
<value key="minSize" type="size" width="239" height="239"/>
10
<view key="contentView" id="4" customClass="VLCTrackingView">
11
- <rect key="frame" x="0.0" y="0.0" width="239" height="239"/>
12
+ <rect key="frame" x="0.0" y="0.0" width="500" height="500"/>
13
<autoresizingMask key="autoresizingMask"/>
14
<subviews>
15
<customView wantsLayer="YES" translatesAutoresizingMaskIntoConstraints="NO" id="s7h-2z-AKB" customClass="VLCMainVideoViewOverlayView">
16
- <rect key="frame" x="0.0" y="0.0" width="239" height="239"/>
17
+ <rect key="frame" x="0.0" y="0.0" width="500" height="500"/>
18
<subviews>
19
<customView appearanceType="darkAqua" translatesAutoresizingMaskIntoConstraints="NO" id="5" customClass="VLCBottomBarView">
20
- <rect key="frame" x="0.0" y="0.0" width="239" height="77"/>
21
+ <rect key="frame" x="0.0" y="0.0" width="500" height="115"/>
22
<subviews>
23
<customView translatesAutoresizingMaskIntoConstraints="NO" id="65" customClass="VLCDragDropView">
24
- <rect key="frame" x="0.0" y="0.0" width="239" height="77"/>
25
+ <rect key="frame" x="0.0" y="0.0" width="500" height="115"/>
26
<subviews>
27
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="hHQ-ue-m9C" customClass="VLCWrappableTextField">
28
- <rect key="frame" x="8" y="71" width="223" height="19"/>
29
+ <rect key="frame" x="8" y="63" width="484" height="19"/>
30
<shadow key="shadow" blurRadius="5">
31
<color key="color" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
32
</shadow>
33
<textFieldCell key="cell" lineBreakMode="truncatingTail" title="Label" id="JyX-u7-Hkb">
34
- <font key="font" textStyle="title3" name=".SFNS-Regular"/>
35
+ <font key="font" metaFont="systemMedium" size="15"/>
36
+ <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
37
+ <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
38
+ </textFieldCell>
39
+ </textField>
40
+ <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zpq-en-EAi" customClass="VLCWrappableTextField">
41
+ <rect key="frame" x="8" y="82" width="484" height="28"/>
42
+ <shadow key="shadow" blurRadius="5">
43
+ <color key="color" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
44
+ </shadow>
45
+ <textFieldCell key="cell" lineBreakMode="truncatingTail" title="Label" id="y5L-0x-avz">
46
+ <font key="font" metaFont="systemBold" size="24"/>
47
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
48
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
49
</textFieldCell>
50
</textField>
51
<customView translatesAutoresizingMaskIntoConstraints="NO" id="Vae-cT-EEI" userLabel="Play controls group">
52
- <rect key="frame" x="72" y="10" width="96" height="32"/>
53
+ <rect key="frame" x="202" y="10" width="96" height="32"/>
54
<subviews>
55
<button translatesAutoresizingMaskIntoConstraints="NO" id="11">
56
- <rect key="frame" x="0.0" y="-1.5" width="32" height="35"/>
57
+ <rect key="frame" x="0.0" y="-1" width="32" height="35"/>
58
<buttonCell key="cell" type="bevel" bezelStyle="regularSquare" image="backward.fill" catalog="system" imagePosition="only" alignment="center" alternateImage="backward.fill" controlSize="large" continuous="YES" enabled="NO" imageScaling="proportionallyUpOrDown" id="14">
59
<behavior key="behavior" lightByContents="YES"/>
60
<font key="font" metaFont="system"/>
61
62
</connections>
63
</button>
64
<button translatesAutoresizingMaskIntoConstraints="NO" id="12">
65
- <rect key="frame" x="64" y="-1.5" width="32" height="35"/>
66
+ <rect key="frame" x="64" y="-1" width="32" height="35"/>
67
<buttonCell key="cell" type="bevel" bezelStyle="regularSquare" image="forward.fill" catalog="system" imagePosition="only" alignment="center" alternateImage="forward.fill" controlSize="large" continuous="YES" enabled="NO" imageScaling="proportionallyUpOrDown" id="13">
68
<behavior key="behavior" lightByContents="YES"/>
69
<font key="font" metaFont="system"/>
70
71
</constraints>
72
</customView>
73
<slider hidden="YES" horizontalHuggingPriority="200" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="20" customClass="VLCPlaybackProgressSlider">
74
- <rect key="frame" x="8" y="50" width="176" height="18"/>
75
- <constraints>
76
- <constraint firstAttribute="height" constant="14" id="MYp-CS-yPe"/>
77
- </constraints>
78
+ <rect key="frame" x="8" y="45" width="484" height="20"/>
79
<sliderCell key="cell" controlSize="small" continuous="YES" state="on" alignment="left" maxValue="1" doubleValue="0.32600000000000001" tickMarkPosition="above" sliderType="linear" id="23" customClass="VLCPlaybackProgressSliderCell">
80
<font key="font" size="12" name="Helvetica"/>
81
</sliderCell>
82
83
<action selector="timeSliderAction:" target="3" id="46"/>
84
</connections>
85
</slider>
86
- <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="9" customClass="VLCTimeField">
87
- <rect key="frame" x="185" y="53" width="46" height="13"/>
88
+ <textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="9" customClass="VLCTimeField">
89
+ <rect key="frame" x="446" y="34" width="46" height="13"/>
90
<constraints>
91
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="42" id="EvZ-Sy-m25"/>
92
<constraint firstAttribute="height" constant="13" id="LYT-Sd-Gf6"/>
93
94
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
95
</textFieldCell>
96
</textField>
97
+ <stackView distribution="fill" orientation="horizontal" alignment="centerY" spacing="5" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="xR4-jH-evo">
98
+ <rect key="frame" x="373" y="10" width="117" height="32"/>
99
+ <subviews>
100
+ <button wantsLayer="YES" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="tJC-hA-c4P" customClass="VLCImageButton">
101
+ <rect key="frame" x="0.0" y="-1" width="32" height="33"/>
102
+ <buttonCell key="cell" type="recessed" bezelStyle="recessed" image="volume.3.fill" catalog="system" imagePosition="only" alignment="center" controlSize="large" borderStyle="border" imageScaling="proportionallyUpOrDown" inset="2" id="f8j-zW-474">
103
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
104
+ <font key="font" metaFont="system"/>
105
+ </buttonCell>
106
+ <constraints>
107
+ <constraint firstAttribute="width" constant="32" id="SWZ-0H-DDq"/>
108
+ <constraint firstAttribute="width" secondItem="tJC-hA-c4P" secondAttribute="height" multiplier="1:1" id="g7m-Pi-ahM"/>
109
+ </constraints>
110
+ </button>
111
+ <slider verticalHuggingPriority="750" horizontalCompressionResistancePriority="800" translatesAutoresizingMaskIntoConstraints="NO" id="z4Z-7V-IQk" customClass="VLCVolumeSlider">
112
+ <rect key="frame" x="35" y="8" width="84" height="17"/>
113
+ <constraints>
114
+ <constraint firstAttribute="width" constant="80" id="Z0g-An-VZe"/>
115
+ </constraints>
116
+ <sliderCell key="cell" controlSize="mini" continuous="YES" state="on" alignment="left" maxValue="512" doubleValue="50" tickMarkPosition="above" sliderType="linear" id="KnE-u5-aI1" customClass="VLCVolumeSliderCell"/>
117
+ </slider>
118
+ </subviews>
119
+ <visibilityPriorities>
120
+ <integer value="1000"/>
121
+ <integer value="1000"/>
122
+ </visibilityPriorities>
123
+ <customSpacing>
124
+ <real value="3.4028234663852886e+38"/>
125
+ <real value="3.4028234663852886e+38"/>
126
+ </customSpacing>
127
+ </stackView>
128
</subviews>
129
<constraints>
130
- <constraint firstItem="20" firstAttribute="top" secondItem="hHQ-ue-m9C" secondAttribute="bottom" constant="5" id="C7Y-fI-Dqe"/>
131
- <constraint firstItem="hHQ-ue-m9C" firstAttribute="top" secondItem="65" secondAttribute="top" constant="5" id="JZy-V4-KFy"/>
132
+ <constraint firstAttribute="trailing" secondItem="20" secondAttribute="trailing" constant="10" id="0Wf-Ej-xo8"/>
133
+ <constraint firstItem="xR4-jH-evo" firstAttribute="trailing" secondItem="20" secondAttribute="trailing" id="7Q8-0W-utn"/>
134
+ <constraint firstItem="20" firstAttribute="top" secondItem="hHQ-ue-m9C" secondAttribute="bottom" id="C7Y-fI-Dqe"/>
135
+ <constraint firstItem="xR4-jH-evo" firstAttribute="centerY" secondItem="Vae-cT-EEI" secondAttribute="centerY" id="FyE-dh-oPk"/>
136
<constraint firstItem="hHQ-ue-m9C" firstAttribute="trailing" secondItem="9" secondAttribute="trailing" id="KgS-6V-onl"/>
137
<constraint firstItem="20" firstAttribute="leading" secondItem="65" secondAttribute="leading" constant="10" id="KrJ-x3-HIr"/>
138
+ <constraint firstItem="zpq-en-EAi" firstAttribute="leading" secondItem="hHQ-ue-m9C" secondAttribute="leading" id="RXc-05-Wtz"/>
139
<constraint firstItem="Vae-cT-EEI" firstAttribute="centerX" secondItem="65" secondAttribute="centerX" id="Rf0-0E-Wiz"/>
140
- <constraint firstItem="9" firstAttribute="centerY" secondItem="20" secondAttribute="centerY" id="SW9-5i-MQL"/>
141
<constraint firstAttribute="bottom" secondItem="Vae-cT-EEI" secondAttribute="bottom" constant="10" id="T6V-Vf-TOT"/>
142
<constraint firstItem="hHQ-ue-m9C" firstAttribute="leading" secondItem="20" secondAttribute="leading" id="VP9-OW-xmq"/>
143
- <constraint firstItem="9" firstAttribute="leading" secondItem="20" secondAttribute="trailing" constant="5" id="gyE-0N-u6t"/>
144
+ <constraint firstItem="9" firstAttribute="top" secondItem="20" secondAttribute="bottom" id="Xfc-cS-E8y"/>
145
+ <constraint firstItem="zpq-en-EAi" firstAttribute="top" secondItem="65" secondAttribute="top" constant="5" id="dgI-qM-hLE"/>
146
+ <constraint firstItem="hHQ-ue-m9C" firstAttribute="top" secondItem="zpq-en-EAi" secondAttribute="bottom" id="hbj-oW-kLQ"/>
147
<constraint firstAttribute="trailing" secondItem="9" secondAttribute="trailing" constant="10" id="p5i-nM-pBs"/>
148
<constraint firstItem="Vae-cT-EEI" firstAttribute="top" secondItem="20" secondAttribute="bottom" constant="5" id="pfB-W2-CWB"/>
149
+ <constraint firstAttribute="trailing" secondItem="zpq-en-EAi" secondAttribute="trailing" constant="10" id="qYc-DT-uwy"/>
150
</constraints>
151
</customView>
152
</subviews>
153
154
<constraint firstItem="65" firstAttribute="leading" secondItem="5" secondAttribute="leading" id="84j-is-ZZ4"/>
155
<constraint firstAttribute="bottom" secondItem="65" secondAttribute="bottom" id="WrS-PS-vpi"/>
156
<constraint firstItem="65" firstAttribute="top" secondItem="5" secondAttribute="top" id="ecn-UJ-dvK"/>
157
- <constraint firstAttribute="height" constant="90" id="z2X-5w-wme"/>
158
</constraints>
159
<shadow key="shadow" blurRadius="10">
160
<color key="color" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
161
162
<outlet property="controlsBar" destination="3" id="69"/>
163
<outlet property="overlayView" destination="s7h-2z-AKB" id="VGk-aw-I4j"/>
164
</connections>
165
- <point key="canvasLocation" x="138.5" y="146.5"/>
166
+ <point key="canvasLocation" x="264.5" y="267"/>
167
</window>
168
<customObject id="3" userLabel="Detached Window Controls Bar" customClass="VLCControlsBarCommon">
169
<connections>
170
<outlet property="backwardButton" destination="11" id="aQU-S3-4ZI"/>
171
+ <outlet property="detailLabel" destination="hHQ-ue-m9C" id="YOa-QZ-nmx"/>
172
<outlet property="dropView" destination="65" id="9kL-XQ-Akn"/>
173
<outlet property="forwardButton" destination="12" id="f7L-YR-p1H"/>
174
<outlet property="playButton" destination="10" id="Gsq-tx-qf3"/>
175
- <outlet property="playingItemDisplayField" destination="hHQ-ue-m9C" id="gz6-0p-XEt"/>
176
+ <outlet property="playingItemDisplayField" destination="zpq-en-EAi" id="9js-uK-Dgf"/>
177
<outlet property="timeField" destination="9" id="uzI-2c-bs3"/>
178
<outlet property="timeSlider" destination="20" id="AFS-sq-vuw"/>
179
</connections>
180
</customObject>
181
</objects>
182
<resources>
183
- <image name="backward.fill" catalog="system" width="19" height="12"/>
184
- <image name="forward.fill" catalog="system" width="19" height="12"/>
185
+ <image name="backward.fill" catalog="system" width="20" height="12"/>
186
+ <image name="forward.fill" catalog="system" width="20" height="12"/>
187
<image name="play.circle.fill" catalog="system" width="15" height="15"/>
188
+ <image name="volume.3.fill" catalog="system" width="22" height="15"/>
189
</resources>
190
</document>
191
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/macosx/library/VLCLibraryCollectionViewFlowLayout.m -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/library/VLCLibraryCollectionViewFlowLayout.m
Changed
19
1
2
3
#import "library/home-library/VLCLibraryHomeViewVideoContainerViewDataSource.h"
4
5
+#import "library/video-library/VLCLibraryShowsDataSource.h"
6
#import "library/video-library/VLCLibraryVideoDataSource.h"
7
8
#pragma mark - Private data
9
10
} else if (dataSource isKindOfClass:VLCLibraryAudioGroupDataSource.class) {
11
layoutAttributesArray addObject:self layoutAttributesForSupplementaryViewOfKind:VLCLibraryCollectionViewAlbumSupplementaryDetailViewKind atIndexPath:self.selectedIndexPath;
12
} else if (dataSource isKindOfClass:VLCLibraryHomeViewVideoContainerViewDataSource.class ||
13
- dataSource isKindOfClass:VLCLibraryVideoDataSource.class) {
14
+ dataSource isKindOfClass:VLCLibraryVideoDataSource.class ||
15
+ dataSource isKindOfClass:VLCLibraryShowsDataSource.class) {
16
layoutAttributesArray addObject:self layoutAttributesForSupplementaryViewOfKind:VLCLibraryCollectionViewMediaItemSupplementaryDetailViewKind atIndexPath:self.selectedIndexPath;
17
}
18
19
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/macosx/library/VLCLibraryDataTypes.h -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/library/VLCLibraryDataTypes.h
Changed
24
1
2
3
@end
4
5
-@interface VLCMediaLibraryMediaItem : VLCAbstractMediaLibraryItem<VLCMediaLibraryItemProtocol>
6
+@interface VLCMediaLibraryShow : VLCAbstractMediaLibraryItem<VLCMediaLibraryItemProtocol>
7
+
8
+- (instancetype)initWithShow:(struct vlc_ml_show_t *)p_show;
9
+
10
+@property (readonly) NSString *name;
11
+@property (readonly) NSString *summary;
12
+@property (readonly) NSString *tvdbId;
13
+@property (readonly) unsigned int releaseYear;
14
+@property (readonly) uint32_t episodeCount;
15
+@property (readonly) uint32_t seasonCount;
16
+@property (readonly) NSArray<VLCMediaLibraryMediaItem *> *episodes;
17
+
18
+@end
19
+
20
+@interface VLCMediaLibraryMediaItem : NSObject<VLCMediaLibraryItemProtocol>
21
22
+ (nullable instancetype)mediaItemForLibraryID:(int64_t)libraryID;
23
+ (nullable instancetype)mediaItemForURL:(NSURL *)url;
24
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/macosx/library/VLCLibraryDataTypes.m -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/library/VLCLibraryDataTypes.m
Changed
147
1
2
3
- (VLCMediaLibraryMediaItem *)firstMediaItem
4
{
5
- self doesNotRecognizeSelector:_cmd;
6
- return nil;
7
+ return self.mediaItems.firstObject;
8
}
9
10
- (NSArray<VLCMediaLibraryMediaItem *> *)mediaItems
11
12
13
- (void)moveToTrash
14
{
15
- self doesNotRecognizeSelector:_cmd;
16
+ self iterateMediaItemsWithBlock:^(VLCMediaLibraryMediaItem * const childMediaItem) {
17
+ childMediaItem moveToTrash;
18
+ };
19
}
20
21
- (void)revealInFinder
22
{
23
- self doesNotRecognizeSelector:_cmd;
24
+ self.firstMediaItem revealInFinder;
25
}
26
27
- (void)iterateMediaItemsWithBlock:(nonnull void (^)(VLCMediaLibraryMediaItem * _Nonnull))mediaItemBlock
28
29
return nil;
30
}
31
32
-- (NSArray<VLCMediaLibraryMediaItem *> *)mediaItems
33
-{
34
- self doesNotRecognizeSelector:_cmd;
35
- return nil;
36
-}
37
-
38
- (unsigned int)numberOfTracks
39
{
40
self doesNotRecognizeSelector:_cmd;
41
42
return VLCMediaLibraryParentGroupTypeUnknown;
43
}
44
45
-- (void)iterateMediaItemsWithBlock:(void (^)(VLCMediaLibraryMediaItem*))mediaItemBlock
46
-{
47
- self doesNotRecognizeSelector:_cmd;
48
-}
49
-
50
-- (VLCMediaLibraryMediaItem *)firstMediaItem
51
-{
52
- return self.mediaItems.firstObject;
53
-}
54
-
55
-- (void)moveToTrash
56
-{
57
- self iterateMediaItemsWithBlock:^(VLCMediaLibraryMediaItem* childMediaItem) {
58
- childMediaItem moveToTrash;
59
- };
60
-}
61
-
62
-- (void)revealInFinder
63
-{
64
- self.firstMediaItem revealInFinder;
65
-}
66
-
67
@end
68
69
@interface VLCMediaLibraryArtist ()
70
71
72
@implementation VLCMediaLibraryMediaItem
73
74
+@synthesize libraryID = _libraryID;
75
+@synthesize smallArtworkGenerated = _smallArtworkGenerated;
76
+@synthesize smallArtworkMRL = _smallArtworkMRL;
77
+@synthesize primaryActionableDetail = _primaryActionableDetail;
78
+@synthesize secondaryActionableDetail = _secondaryActionableDetail;
79
@synthesize primaryActionableDetailLibraryItem = _primaryActionableDetailLibraryItem;
80
@synthesize secondaryActionableDetailLibraryItem = _secondaryActionableDetailLibraryItem;
81
82
83
{
84
self = super init;
85
if (self && p_mediaItem != NULL && p_mediaLibrary != NULL) {
86
- self.libraryID = p_mediaItem->i_id;
87
- self.smallArtworkGenerated = p_mediaItem->thumbnailsVLC_ML_THUMBNAIL_SMALL.psz_mrl != NULL;
88
- self.smallArtworkMRL = self.smallArtworkGenerated ? toNSStr(p_mediaItem->thumbnailsVLC_ML_THUMBNAIL_SMALL.psz_mrl) : nil;
89
+ _libraryID = p_mediaItem->i_id;
90
+ _smallArtworkGenerated = p_mediaItem->thumbnailsVLC_ML_THUMBNAIL_SMALL.psz_mrl != NULL;
91
+ _smallArtworkMRL = self.smallArtworkGenerated ? toNSStr(p_mediaItem->thumbnailsVLC_ML_THUMBNAIL_SMALL.psz_mrl) : nil;
92
93
const BOOL isAlbumTrack = p_mediaItem->i_subtype == VLC_ML_MEDIA_SUBTYPE_ALBUMTRACK;
94
- self.primaryActionableDetail = isAlbumTrack;
95
- self.secondaryActionableDetail = isAlbumTrack;
96
+ _primaryActionableDetail = isAlbumTrack;
97
+ _secondaryActionableDetail = isAlbumTrack;
98
99
_p_mediaLibrary = p_mediaLibrary;
100
_mediaType = p_mediaItem->i_type;
101
102
103
@end
104
105
+@implementation VLCMediaLibraryShow
106
+
107
+@synthesize episodes = _episodes;
108
+
109
+- (instancetype)initWithShow:(struct vlc_ml_show_t *)p_show
110
+{
111
+ self = super init;
112
+ if (self) {
113
+ _name = p_show->psz_name ? toNSStr(p_show->psz_name) : @"";
114
+ _summary = p_show->psz_summary ? toNSStr(p_show->psz_summary) : @"";
115
+ _tvdbId = p_show->psz_tvdb_id ? toNSStr(p_show->psz_tvdb_id) : @"";
116
+ _releaseYear = p_show->i_release_year;
117
+ _episodeCount = p_show->i_nb_episodes;
118
+ _seasonCount = p_show->i_nb_seasons;
119
+
120
+ self.libraryID = p_show->i_id;
121
+ self.smallArtworkMRL = p_show->psz_artwork_mrl ? toNSStr(p_show->psz_artwork_mrl) : @"";
122
+ self.smallArtworkGenerated = self.smallArtworkMRL.length > 0;
123
+ self.displayString = self.name;
124
+ self.primaryDetailString =
125
+ NSString stringWithFormat:_NS("%u seasons, %u episodes"), _seasonCount, _episodeCount;
126
+ self.secondaryDetailString = NSString stringWithFormat:_NS("Released in %u"), _releaseYear;
127
+ self.durationString = self.secondaryDetailString;
128
+ }
129
+ return self;
130
+}
131
+
132
+- (NSArray<VLCMediaLibraryMediaItem *> *)episodes
133
+{
134
+ return fetchMediaItemsForLibraryItem(vlc_ml_list_show_episodes, self.libraryID);
135
+}
136
+
137
+- (NSArray<VLCMediaLibraryMediaItem *> *)mediaItems
138
+{
139
+ return self.episodes;
140
+}
141
+
142
+@end
143
+
144
@implementation VLCMediaLibraryEntryPoint
145
146
- (instancetype)initWithEntryPoint:(struct vlc_ml_folder_t *)p_entryPoint
147
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/macosx/library/VLCLibraryModel.h -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/library/VLCLibraryModel.h
Changed
33
1
2
3
NS_ASSUME_NONNULL_BEGIN
4
5
-@class VLCMediaLibraryMediaItem;
6
-@class VLCMediaLibraryArtist;
7
-@class VLCMediaLibraryAlbum;
8
-@class VLCMediaLibraryGenre;
9
-@class VLCMediaLibraryEntryPoint;
10
-@protocol VLCMediaLibraryItemProtocol;
11
-
12
extern NSString * const VLCLibraryModelArtistListReset;
13
extern NSString * const VLCLibraryModelAlbumListReset;
14
extern NSString * const VLCLibraryModelGenreListReset;
15
16
extern NSString * const VLCLibraryModelVideoMediaListReset;
17
extern NSString * const VLCLibraryModelRecentsMediaListReset;
18
extern NSString * const VLCLibraryModelRecentAudioMediaListReset;
19
+extern NSString * const VLCLibraryModelListOfShowsReset;
20
21
extern NSString * const VLCLibraryModelAudioMediaItemDeleted;
22
extern NSString * const VLCLibraryModelVideoMediaItemDeleted;
23
24
@property (readonly) size_t numberOfRecentAudioMedia;
25
@property (readonly) NSArray <VLCMediaLibraryMediaItem *> *listOfRecentAudioMedia;
26
27
+@property (readonly) size_t numberOfShows;
28
+@property (readonly) NSArray <VLCMediaLibraryShow *> *listOfShows;
29
+
30
@property (readonly) NSArray <VLCMediaLibraryEntryPoint *> *listOfMonitoredFolders;
31
32
@property (readonly) NSDictionary<NSNumber *, NSString *> *albumDict;
33
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/macosx/library/VLCLibraryModel.m -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/library/VLCLibraryModel.m
Changed
113
1
2
NSString * const VLCLibraryModelVideoMediaListReset = @"VLCLibraryModelVideoMediaListReset";
3
NSString * const VLCLibraryModelRecentsMediaListReset = @"VLCLibraryModelRecentsMediaListReset";
4
NSString * const VLCLibraryModelRecentAudioMediaListReset = @"VLCLibraryModelRecentAudioMediaListReset";
5
+NSString * const VLCLibraryModelListOfShowsReset = @"VLCLibraryModelListOfShowsReset";
6
7
NSString * const VLCLibraryModelAudioMediaItemDeleted = @"VLCLibraryModelAudioMediaItemDeleted";
8
NSString * const VLCLibraryModelVideoMediaItemDeleted = @"VLCLibraryModelVideoMediaItemDeleted";
9
10
size_t _initialAlbumCount;
11
size_t _initialArtistCount;
12
size_t _initialGenreCount;
13
+ size_t _initialShowCount;
14
size_t _initialRecentsCount;
15
size_t _initialRecentAudioCount;
16
17
18
@property (readwrite, atomic) NSArray *cachedAlbums;
19
@property (readwrite, atomic) NSArray *cachedGenres;
20
@property (readwrite, atomic) NSArray *cachedVideoMedia;
21
+@property (readwrite, atomic) NSArray *cachedListOfShows;
22
@property (readwrite, atomic) NSArray *cachedRecentMedia;
23
@property (readwrite, atomic) NSArray *cachedRecentAudioMedia;
24
@property (readwrite, atomic) NSArray *cachedListOfMonitoredFolders;
25
26
- (void)resetCachedListOfArtists;
27
- (void)resetCachedListOfAlbums;
28
- (void)resetCachedListOfGenres;
29
+- (void)resetCachedListOfShows;
30
- (void)resetCachedListOfMonitoredFolders;
31
- (void)mediaItemThumbnailGenerated:(VLCMediaLibraryMediaItem *)mediaItem;
32
- (void)handleMediaItemDeletionEvent:(const vlc_ml_event_t * const)p_event;
33
34
{
35
case VLC_ML_EVENT_MEDIA_ADDED:
36
libraryModel resetCachedMediaItemLists;
37
+ libraryModel resetCachedListOfShows; // TODO: Handle granularly
38
break;
39
case VLC_ML_EVENT_MEDIA_UPDATED:
40
libraryModel handleMediaItemUpdateEvent:p_event;
41
+ libraryModel resetCachedListOfShows; // TODO: Handle granularly
42
break;
43
case VLC_ML_EVENT_MEDIA_DELETED:
44
libraryModel handleMediaItemDeletionEvent:p_event;
45
+ libraryModel resetCachedListOfShows; // TODO: Handle granularly
46
break;
47
case VLC_ML_EVENT_MEDIA_THUMBNAIL_GENERATED:
48
if (p_event->media_thumbnail_generated.b_success) {
49
50
self->_initialAlbumCount = vlc_ml_count_albums(self->_p_mediaLibrary, &queryParameters);
51
self->_initialArtistCount = vlc_ml_count_artists(self->_p_mediaLibrary, &queryParameters, true);
52
self->_initialGenreCount = vlc_ml_count_genres(self->_p_mediaLibrary, &queryParameters);
53
+ self->_initialShowCount = vlc_ml_count_shows(self->_p_mediaLibrary, &queryParameters);
54
55
queryParameters.i_nbResults = self->_recentMediaLimit;
56
self->_initialRecentsCount = vlc_ml_count_video_history(self->_p_mediaLibrary, &queryParameters);
57
58
return _cachedRecentAudioMedia;
59
}
60
61
+- (void)resetCachedListOfShows
62
+{
63
+ dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INTERACTIVE, 0), ^{
64
+ vlc_ml_show_list_t * const p_show_list = vlc_ml_list_shows(self->_p_mediaLibrary, NULL);
65
+ if (p_show_list == NULL) {
66
+ return;
67
+ }
68
+ const size_t itemCount = p_show_list->i_nb_items;
69
+ NSMutableArray * const mutableArray = NSMutableArray alloc initWithCapacity:itemCount;
70
+ for (size_t x = 0; x < p_show_list->i_nb_items; x++) {
71
+ vlc_ml_show_t * const p_vlc_show = &p_show_list->p_itemsx;
72
+ VLCMediaLibraryShow * const show = VLCMediaLibraryShow alloc initWithShow:p_vlc_show;
73
+ if (show) {
74
+ mutableArray addObject:show;
75
+ }
76
+ }
77
+ vlc_ml_show_list_release(p_show_list);
78
+ dispatch_async(dispatch_get_main_queue(), ^{
79
+ self.cachedListOfShows = mutableArray.copy;
80
+ self.changeDelegate notifyChange:VLCLibraryModelListOfShowsReset withObject:self;
81
+ });
82
+ });
83
+}
84
+
85
+- (size_t)numberOfShows
86
+{
87
+ if (!_cachedListOfShows) {
88
+ self resetCachedListOfShows;
89
+ // Return initial count here, otherwise it will return 0 on the first time
90
+ return _initialShowCount;
91
+ }
92
+ return _cachedListOfShows.count;
93
+}
94
+
95
+- (NSArray<VLCMediaLibraryShow *> *)listOfShows
96
+{
97
+ if (!_cachedListOfShows) {
98
+ self resetCachedListOfShows;
99
+ }
100
+ return _cachedListOfShows;
101
+}
102
+
103
- (void)resetCachedMediaItemLists
104
{
105
self resetCachedListOfRecentMedia;
106
self resetCachedListOfRecentAudioMedia;
107
self resetCachedListOfAudioMedia;
108
self resetCachedListOfVideoMedia;
109
+ self resetCachedListOfShows;
110
}
111
112
- (void)resetCachedListOfMonitoredFolders
113
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/macosx/library/VLCLibrarySegment.h -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/library/VLCLibrarySegment.h
Changed
9
1
2
VLCLibraryLowSentinelSegment = -1,
3
VLCLibraryHomeSegment,
4
VLCLibraryVideoSegment,
5
+ VLCLibraryShowsVideoSubSegment,
6
VLCLibraryMusicSegment,
7
VLCLibraryArtistsMusicSubSegment,
8
VLCLibraryAlbumsMusicSubSegment,
9
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/macosx/library/VLCLibrarySegment.m -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/library/VLCLibrarySegment.m
Changed
39
1
2
3
- (NSArray<NSTreeNode *> *)childNodes
4
{
5
- if (self.segmentType == VLCLibraryMusicSegment) {
6
+ if (self.segmentType == VLCLibraryVideoSegment) {
7
+ return @VLCLibrarySegment segmentWithSegmentType:VLCLibraryShowsVideoSubSegment;
8
+ } else if (self.segmentType == VLCLibraryMusicSegment) {
9
return @
10
VLCLibrarySegment segmentWithSegmentType:VLCLibraryArtistsMusicSubSegment,
11
VLCLibrarySegment segmentWithSegmentType:VLCLibraryAlbumsMusicSubSegment,
12
13
return _NS("Genres");
14
case VLCLibraryVideoSegment:
15
return _NS("Videos");
16
+ case VLCLibraryShowsVideoSubSegment:
17
+ return _NS("Shows");
18
case VLCLibraryBrowseSegment:
19
return _NS("Browse");
20
case VLCLibraryBrowseBookmarkedLocationSubSegment:
21
22
case VLCLibraryGenresMusicSubSegment:
23
return NSImage imageNamed:@"sidebar-music";
24
case VLCLibraryVideoSegment:
25
+ case VLCLibraryShowsVideoSubSegment:
26
return NSImage imageNamed:@"sidebar-movie";
27
case VLCLibraryBrowseSegment:
28
case VLCLibraryBrowseBookmarkedLocationSubSegment:
29
30
case VLCLibraryVideoSegment:
31
return NSImage imageWithSystemSymbolName:@"film.stack"
32
accessibilityDescription:@"Video icon";
33
+ case VLCLibraryShowsVideoSubSegment:
34
+ return NSImage imageWithSystemSymbolName:@"tv"
35
+ accessibilityDescription:@"Shows icon";
36
case VLCLibraryBrowseSegment:
37
return NSImage imageWithSystemSymbolName:@"folder"
38
accessibilityDescription:@"Browse icon";
39
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/macosx/library/VLCLibraryWindow.m -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/library/VLCLibraryWindow.m
Changed
44
1
2
case VLCLibraryVideoSegment:
3
_currentSelectedViewModeSegment = preferences.videoLibraryViewMode;
4
break;
5
+ case VLCLibraryShowsVideoSubSegment:
6
+ _currentSelectedViewModeSegment = preferences.showsLibraryViewMode;
7
+ break;
8
case VLCLibraryMusicSegment:
9
case VLCLibraryArtistsMusicSubSegment:
10
_currentSelectedViewModeSegment = preferences.artistLibraryViewMode;
11
12
case VLCLibraryVideoSegment:
13
self showVideoLibrary;
14
break;
15
+ case VLCLibraryShowsVideoSubSegment:
16
+ self showShowLibrary;
17
+ break;
18
case VLCLibraryMusicSegment:
19
case VLCLibraryArtistsMusicSubSegment:
20
case VLCLibraryAlbumsMusicSubSegment:
21
22
case VLCLibraryVideoSegment:
23
preferences.videoLibraryViewMode = _currentSelectedViewModeSegment;
24
break;
25
+ case VLCLibraryShowsVideoSubSegment:
26
+ preferences.showsLibraryViewMode = _currentSelectedViewModeSegment;
27
+ break;
28
case VLCLibraryMusicSegment:
29
case VLCLibraryArtistsMusicSubSegment:
30
preferences.artistLibraryViewMode = _currentSelectedViewModeSegment;
31
32
_libraryVideoViewController presentVideoView;
33
}
34
35
+- (void)showShowLibrary
36
+{
37
+ self.toolbarDelegate layoutForSegment:VLCLibraryShowsVideoSubSegment;
38
+ self.libraryVideoViewController presentShowsView;
39
+}
40
+
41
- (void)showAudioLibrary
42
{
43
self.toolbarDelegate layoutForSegment:VLCLibraryMusicSegment;
44
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/macosx/library/VLCLibraryWindowNavigationSidebarViewController.m -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/library/VLCLibraryWindowNavigationSidebarViewController.m
Changed
12
1
2
VLCLibrarySegment * const segment = VLCLibrarySegment segmentWithSegmentType:segmentType;
3
self.libraryWindow.librarySegmentType = segment.segmentType;
4
5
- if (segmentType >= VLCLibraryMusicSegment && segmentType <= VLCLibraryGenresMusicSubSegment) {
6
+ if (segmentType > VLCLibraryVideoSegment && segmentType <= VLCLibraryShowsVideoSubSegment) {
7
+ self.outlineView expandItem:self nodeForSegmentType:VLCLibraryVideoSegment;
8
+ } else if (segmentType >= VLCLibraryMusicSegment && segmentType <= VLCLibraryGenresMusicSubSegment) {
9
self.outlineView expandItem:self nodeForSegmentType:VLCLibraryMusicSegment;
10
} else if (segmentType >= VLCLibraryBrowseSegment &&
11
segmentType <= VLCLibraryBrowseBookmarkedLocationSubSegment) {
12
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/macosx/library/VLCLibraryWindowPersistentPreferences.h -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/library/VLCLibraryWindowPersistentPreferences.h
Changed
9
1
2
3
@property (readwrite, nonatomic) VLCLibraryViewModeSegment homeLibraryViewMode;
4
@property (readwrite, nonatomic) VLCLibraryViewModeSegment videoLibraryViewMode;
5
+@property (readwrite, nonatomic) VLCLibraryViewModeSegment showsLibraryViewMode;
6
@property (readwrite, nonatomic) VLCLibraryViewModeSegment albumLibraryViewMode;
7
@property (readwrite, nonatomic) VLCLibraryViewModeSegment genreLibraryViewMode;
8
@property (readwrite, nonatomic) VLCLibraryViewModeSegment songsLibraryViewMode;
9
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/macosx/library/VLCLibraryWindowPersistentPreferences.m -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/library/VLCLibraryWindowPersistentPreferences.m
Changed
27
1
2
3
NSString * const VLCLibraryHomeLibraryViewModePreferenceKey = @"HomeLibraryViewMode";
4
NSString * const VLCLibraryVideoLibraryViewModePreferenceKey = @"VideoLibraryViewMode";
5
+NSString * const VLCLibraryShowsLibraryViewModePreferenceKey = @"ShowsLibraryViewMode";
6
NSString * const VLCLibraryAlbumLibraryViewModePreferenceKey = @"AlbumLibraryViewMode";
7
NSString * const VLCLibraryGenreLibraryViewModePreferenceKey = @"GenreLibraryViewMode";
8
NSString * const VLCLibrarySongsLibraryViewModePreferenceKey = @"SongsLibraryViewMode";
9
10
value:videoLibraryViewMode;
11
}
12
13
+- (VLCLibraryViewModeSegment)showsLibraryViewMode
14
+{
15
+ return self libraryViewModePreferenceWithKey:VLCLibraryShowsLibraryViewModePreferenceKey;
16
+}
17
+
18
+- (void)setShowsLibraryViewMode:(VLCLibraryViewModeSegment)showsLibraryViewMode
19
+{
20
+ self setLibraryWindowViewModePreferenceWithKey:VLCLibraryShowsLibraryViewModePreferenceKey
21
+ value:showsLibraryViewMode;
22
+}
23
+
24
- (VLCLibraryViewModeSegment)albumLibraryViewMode
25
{
26
return self libraryViewModePreferenceWithKey:VLCLibraryAlbumLibraryViewModePreferenceKey;
27
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/macosx/library/VLCLibraryWindowToolbarDelegate.m -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/library/VLCLibraryWindowToolbarDelegate.m
Changed
9
1
2
self setViewModeToolbarItemVisible:NO;
3
break;
4
case VLCLibraryVideoSegment:
5
+ case VLCLibraryShowsVideoSubSegment:
6
self setForwardsBackwardsToolbarItemsVisible:NO;
7
self setSortOrderToolbarItemVisible:YES;
8
self setLibrarySearchToolbarItemVisible:YES;
9
_service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/library/video-library/VLCLibraryShowsDataSource.h
Added
45
1
2
+/*****************************************************************************
3
+ * VLCLibraryShowsDataSource.h: MacOS X interface module
4
+ *****************************************************************************
5
+ * Copyright (C) 2024 VLC authors and VideoLAN
6
+ *
7
+ * Authors: Claudio Cambra <developer@claudiocambra.com>
8
+ *
9
+ * This program is free software; you can redistribute it and/or modify
10
+ * it under the terms of the GNU General Public License as published by
11
+ * the Free Software Foundation; either version 2 of the License, or
12
+ * (at your option) any later version.
13
+ *
14
+ * This program is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ * GNU General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU General Public License
20
+ * along with this program; if not, write to the Free Software
21
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22
+ *****************************************************************************/
23
+
24
+#import <Cocoa/Cocoa.h>
25
+
26
+#import "library/VLCLibraryCollectionViewDataSource.h"
27
+#import "library/VLCLibraryTableViewDataSource.h"
28
+
29
+NS_ASSUME_NONNULL_BEGIN
30
+
31
+@class VLCLibraryModel;
32
+
33
+@interface VLCLibraryShowsDataSource : NSObject <VLCLibraryTableViewDataSource, VLCLibraryCollectionViewDataSource>
34
+
35
+@property (readwrite, assign) VLCLibraryModel *libraryModel;
36
+@property (readwrite, assign) NSCollectionView *collectionView;
37
+@property (readwrite, assign) NSTableView *showsTableView;
38
+@property (readwrite, assign) NSTableView *selectedShowTableView;
39
+
40
+- (void)reloadData;
41
+
42
+@end
43
+
44
+NS_ASSUME_NONNULL_END
45
_service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/library/video-library/VLCLibraryShowsDataSource.m
Added
201
1
2
+/*****************************************************************************
3
+ * VLCLibraryShowsDataSource.m: MacOS X interface module
4
+ *****************************************************************************
5
+ * Copyright (C) 2024 VLC authors and VideoLAN
6
+ *
7
+ * Authors: Claudio Cambra <developer@claudiocambra.com>
8
+ *
9
+ * This program is free software; you can redistribute it and/or modify
10
+ * it under the terms of the GNU General Public License as published by
11
+ * the Free Software Foundation; either version 2 of the License, or
12
+ * (at your option) any later version.
13
+ *
14
+ * This program is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ * GNU General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU General Public License
20
+ * along with this program; if not, write to the Free Software
21
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22
+ *****************************************************************************/
23
+
24
+#import "VLCLibraryShowsDataSource.h"
25
+
26
+#import "extensions/NSPasteboardItem+VLCAdditions.h"
27
+
28
+#import "library/VLCLibraryCollectionViewItem.h"
29
+#import "library/VLCLibraryCollectionViewFlowLayout.h"
30
+#import "library/VLCLibraryCollectionViewMediaItemSupplementaryDetailView.h"
31
+#import "library/VLCLibraryCollectionViewSupplementaryElementView.h"
32
+#import "library/VLCLibraryModel.h"
33
+#import "library/VLCLibraryRepresentedItem.h"
34
+
35
+@interface VLCLibraryShowsDataSource ()
36
+
37
+@property (readwrite, atomic) NSArray<VLCMediaLibraryShow *> *showsArray;
38
+
39
+@end
40
+
41
+@implementation VLCLibraryShowsDataSource
42
+
43
+- (instancetype)init
44
+{
45
+ self = super init;
46
+ if(self) {
47
+ self connect;
48
+ }
49
+ return self;
50
+}
51
+
52
+- (void)connect
53
+{
54
+ NSNotificationCenter * const notificationCenter = NSNotificationCenter.defaultCenter;
55
+
56
+ notificationCenter addObserver:self
57
+ selector:@selector(libraryModelShowsListReset:)
58
+ name:VLCLibraryModelListOfShowsReset
59
+ object:nil;
60
+
61
+ self reloadData;
62
+}
63
+
64
+- (void)disconnect
65
+{
66
+ NSNotificationCenter.defaultCenter removeObserver:self;
67
+}
68
+
69
+- (void)libraryModelShowsListReset:(NSNotification *)notification
70
+{
71
+ self reloadData;
72
+}
73
+
74
+- (void)reloadData
75
+{
76
+ (VLCLibraryCollectionViewFlowLayout *)self.collectionView.collectionViewLayout resetLayout;
77
+
78
+ self.showsArray = self.libraryModel.listOfShows;
79
+
80
+ self.showsTableView reloadData;
81
+ self.selectedShowTableView reloadData;
82
+ self.collectionView reloadData;
83
+}
84
+
85
+- (NSUInteger)indexOfMediaItem:(const NSUInteger)libraryId inArray:(NSArray const *)array
86
+{
87
+ return array indexOfObjectPassingTest:^BOOL(const id<VLCMediaLibraryItemProtocol> findItem,
88
+ const NSUInteger idx,
89
+ BOOL * const stop) {
90
+ NSAssert(findItem != nil, @"Collection should not contain nil items");
91
+ return findItem.libraryID == libraryId;
92
+ };
93
+}
94
+
95
+#pragma mark - table view data source and delegation
96
+
97
+- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView
98
+{
99
+ if (tableView == self.showsTableView) {
100
+ return self.showsArray.count;
101
+ }
102
+
103
+ const NSInteger selectedShowRow = self.showsTableView.selectedRow;
104
+ if (tableView == self.selectedShowTableView && selectedShowRow > -1) {
105
+ VLCMediaLibraryShow * const show = self.showsArrayselectedShowRow;
106
+ return show.episodeCount;
107
+ }
108
+
109
+ return 0;
110
+}
111
+
112
+- (id<NSPasteboardWriting>)tableView:(NSTableView *)tableView pasteboardWriterForRow:(NSInteger)row
113
+{
114
+ const id<VLCMediaLibraryItemProtocol> libraryItem = self libraryItemAtRow:row
115
+ forTableView:tableView;
116
+ return NSPasteboardItem pasteboardItemWithLibraryItem:libraryItem;
117
+}
118
+
119
+- (id<VLCMediaLibraryItemProtocol>)libraryItemAtRow:(NSInteger)row
120
+ forTableView:(NSTableView *)tableView
121
+{
122
+ if (tableView == self.showsTableView) {
123
+ return self.showsArrayrow;
124
+ }
125
+
126
+ const NSInteger selectedShowRow = self.showsTableView.selectedRow;
127
+ if (tableView == self.selectedShowTableView && selectedShowRow > -1) {
128
+ VLCMediaLibraryShow * const show = self.showsArrayselectedShowRow;
129
+ return show.episodesrow;
130
+ }
131
+
132
+ return nil;
133
+}
134
+
135
+- (NSInteger)rowForLibraryItem:(id<VLCMediaLibraryItemProtocol>)libraryItem
136
+{
137
+ if (libraryItem == nil) {
138
+ return NSNotFound;
139
+ }
140
+ return self indexOfMediaItem:libraryItem.libraryID inArray:self.showsArray;
141
+}
142
+
143
+- (VLCMediaLibraryParentGroupType)currentParentType
144
+{
145
+ return VLCMediaLibraryParentGroupTypeShow;
146
+}
147
+
148
+# pragma mark - collection view data source and delegation
149
+
150
+- (id<VLCMediaLibraryItemProtocol>)libraryItemAtIndexPath:(NSIndexPath *)indexPath
151
+ forCollectionView:(NSCollectionView *)collectionView
152
+{
153
+ VLCMediaLibraryShow * const show = self.showsArrayindexPath.section;
154
+ return show.episodesindexPath.item;
155
+}
156
+
157
+- (NSIndexPath *)indexPathForLibraryItem:(id<VLCMediaLibraryItemProtocol>)libraryItem
158
+{
159
+ __block NSInteger showEpisodeIndex = NSNotFound;
160
+ const NSInteger showIndex =
161
+ self.showsArray indexOfObjectPassingTest:^BOOL(VLCMediaLibraryShow * const show,
162
+ const NSUInteger idx,
163
+ BOOL * const stop) {
164
+ showEpisodeIndex =
165
+ show.episodes indexOfObjectPassingTest:^BOOL(VLCMediaLibraryMediaItem * const item,
166
+ const NSUInteger idx,
167
+ BOOL * const stop) {
168
+ return item.libraryID == libraryItem.libraryID;
169
+ };
170
+ return showEpisodeIndex != NSNotFound;
171
+ };
172
+ return showIndex != NSNotFound
173
+ ? NSIndexPath indexPathForItem:showEpisodeIndex inSection:showIndex
174
+ : nil;
175
+}
176
+
177
+- (NSArray<VLCLibraryRepresentedItem *> *)representedItemsAtIndexPaths:(NSSet<NSIndexPath *> *const)indexPaths
178
+ forCollectionView:(NSCollectionView *)collectionView
179
+{
180
+ NSMutableArray<VLCLibraryRepresentedItem *> * const representedItems =
181
+ NSMutableArray arrayWithCapacity:indexPaths.count;
182
+
183
+ for (NSIndexPath * const indexPath in indexPaths) {
184
+ const id<VLCMediaLibraryItemProtocol> libraryItem =
185
+ self libraryItemAtIndexPath:indexPath forCollectionView:collectionView;
186
+ VLCLibraryRepresentedItem * const representedItem =
187
+ VLCLibraryRepresentedItem alloc initWithItem:libraryItem
188
+ parentType:self.currentParentType;
189
+ representedItems addObject:representedItem;
190
+ }
191
+
192
+ return representedItems;
193
+}
194
+
195
+- (NSInteger)numberOfSectionsInCollectionView:(NSCollectionView *)collectionView
196
+{
197
+ return self.showsArray.count;
198
+}
199
+
200
+- (NSInteger)collectionView:(NSCollectionView *)collectionView
201
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/macosx/library/video-library/VLCLibraryVideoDataSource.h -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/library/video-library/VLCLibraryVideoDataSource.h
Changed
16
1
2
/*****************************************************************************
3
- * VVLCLibraryVideoDataSource.h: MacOS X interface module
4
+ * VLCLibraryVideoDataSource.h: MacOS X interface module
5
*****************************************************************************
6
* Copyright (C) 2019 VLC authors and VideoLAN
7
*
8
9
@property (readwrite, assign) NSTableView *groupSelectionTableView;
10
11
- (void)reloadData;
12
-- (void)setupCollectionView:(NSCollectionView *)collectionView;
13
14
@end
15
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/macosx/library/video-library/VLCLibraryVideoDataSource.m -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/library/video-library/VLCLibraryVideoDataSource.m
Changed
119
1
2
return self;
3
}
4
5
-- (void)setupCollectionView:(NSCollectionView *)collectionView
6
-{
7
- collectionView registerClass:VLCLibraryCollectionViewItem.class
8
- forItemWithIdentifier:VLCLibraryCellIdentifier;
9
-
10
- collectionView registerClass:VLCLibraryCollectionViewSupplementaryElementView.class
11
- forSupplementaryViewOfKind:NSCollectionElementKindSectionHeader
12
- withIdentifier:VLCLibrarySupplementaryElementViewIdentifier;
13
-
14
- NSNib * const mediaItemSupplementaryDetailView = NSNib alloc initWithNibNamed:NSStringFromClass(VLCLibraryCollectionViewMediaItemSupplementaryDetailView.class) bundle:nil;
15
- collectionView registerNib:mediaItemSupplementaryDetailView
16
- forSupplementaryViewOfKind:VLCLibraryCollectionViewMediaItemSupplementaryDetailViewKind
17
- withIdentifier:VLCLibraryCollectionViewMediaItemSupplementaryDetailViewIdentifier;
18
-
19
- collectionView.dataSource = self;
20
- collectionView reloadData;
21
-}
22
-
23
- (NSUInteger)indexOfMediaItem:(const NSUInteger)libraryId inArray:(NSArray const *)array
24
{
25
return array indexOfObjectPassingTest:^BOOL(VLCMediaLibraryMediaItem * const findMediaItem, const NSUInteger idx, BOOL * const stop) {
26
27
28
self->_recentsArray = self.libraryModel listOfRecentMedia;
29
self->_libraryArray = self.libraryModel listOfVideoMedia;
30
- self.groupSelectionTableView reloadData;
31
- self.collectionView reloadData;
32
+
33
+ if (self.groupsTableView.dataSource == self) {
34
+ self.groupsTableView reloadData;
35
+ }
36
+ if (self.groupSelectionTableView.dataSource == self) {
37
+ self.groupSelectionTableView reloadData;
38
+ }
39
+ if (self.collectionView.dataSource == self) {
40
+ self.collectionView reloadData;
41
+ }
42
NSNotificationCenter.defaultCenter postNotificationName:VLCLibraryVideoDataSourceDisplayedCollectionChangedNotification
43
object:self
44
userInfo:nil;
45
46
47
} completionHandler:^(NSIndexSet * const rowIndexSet) {
48
49
- const NSInteger section = self videoGroupToRow:group;
50
- NSSet<NSIndexPath *> * const indexPathSet = rowIndexSet indexPathSetWithSection:section;
51
- self.collectionView reloadItemsAtIndexPaths:indexPathSet;
52
-
53
- const NSInteger selectedTableViewVideoGroup = self rowToVideoGroup:self.groupsTableView.selectedRow;
54
- if (selectedTableViewVideoGroup == group) {
55
- // Don't regenerate the groups by index as these do not change according to the notification
56
- // Stick to the selection table view
57
- const NSRange columnRange = NSMakeRange(0, self->_groupsTableView.numberOfColumns);
58
- NSIndexSet * const columnIndexSet = NSIndexSet indexSetWithIndexesInRange:columnRange;
59
- self.groupSelectionTableView reloadDataForRowIndexes:rowIndexSet columnIndexes:columnIndexSet;
60
+ if (self.collectionView.dataSource == self) {
61
+ const NSInteger section = self videoGroupToRow:group;
62
+ NSSet<NSIndexPath *> * const indexPathSet =
63
+ rowIndexSet indexPathSetWithSection:section;
64
+ self.collectionView reloadItemsAtIndexPaths:indexPathSet;
65
+ }
66
+
67
+ if (self.groupSelectionTableView.dataSource == self) {
68
+ const NSInteger selectedTableViewVideoGroup =
69
+ self rowToVideoGroup:self.groupsTableView.selectedRow;
70
+ if (selectedTableViewVideoGroup == group) {
71
+ // Don't regenerate the groups by index as these do not change according to the
72
+ // notification, stick to the selection table view
73
+ const NSRange columnRange = NSMakeRange(0, self->_groupsTableView.numberOfColumns);
74
+ NSIndexSet * const columnIndexSet =
75
+ NSIndexSet indexSetWithIndexesInRange:columnRange;
76
+ self.groupSelectionTableView reloadDataForRowIndexes:rowIndexSet
77
+ columnIndexes:columnIndexSet;
78
+ }
79
}
80
+
81
+ // Don't bother with the groups table view as we always show "recents" and "videos" there
82
};
83
}
84
85
86
87
mediaArray removeObjectAtIndex:mediaItemIndex;
88
89
- } completionHandler:^(NSIndexSet * const rowIndexSet){
90
+ } completionHandler:^(NSIndexSet * const rowIndexSet) {
91
92
- const NSInteger section = self videoGroupToRow:group;
93
- NSSet<NSIndexPath *> * const indexPathSet = rowIndexSet indexPathSetWithSection:section;
94
- self.collectionView deleteItemsAtIndexPaths:indexPathSet;
95
+ if (self.collectionView.dataSource == self) {
96
+ const NSInteger section = self videoGroupToRow:group;
97
+ NSSet<NSIndexPath *> * const indexPathSet =
98
+ rowIndexSet indexPathSetWithSection:section;
99
+ self.collectionView deleteItemsAtIndexPaths:indexPathSet;
100
+ }
101
102
- const NSInteger selectedTableViewVideoGroup = self rowToVideoGroup:self.groupsTableView.selectedRow;
103
- if (selectedTableViewVideoGroup == group) {
104
- // Don't regenerate the groups by index as these do not change according to the notification
105
- // Stick to the selection table view
106
- self.groupSelectionTableView removeRowsAtIndexes:rowIndexSet withAnimation:NSTableViewAnimationSlideUp;
107
+ if (self.groupSelectionTableView.dataSource == self) {
108
+ const NSInteger selectedTableViewVideoGroup =
109
+ self rowToVideoGroup:self.groupsTableView.selectedRow;
110
+ if (selectedTableViewVideoGroup == group) {
111
+ // Don't regenerate the groups by index as these do not change according to the
112
+ // notification, stick to the selection table view
113
+ self.groupSelectionTableView removeRowsAtIndexes:rowIndexSet
114
+ withAnimation:NSTableViewAnimationSlideUp;
115
+ }
116
}
117
};
118
}
119
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/macosx/library/video-library/VLCLibraryVideoViewController.h -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/library/video-library/VLCLibraryVideoViewController.h
Changed
23
1
2
@class VLCLoadingOverlayView;
3
@class VLCLibraryWindow;
4
@class VLCLibraryVideoDataSource;
5
+@class VLCLibraryShowsDataSource;
6
7
@protocol VLCMediaLibraryItemProtocol;
8
9
10
@property (readonly) VLCLoadingOverlayView *loadingOverlayView;
11
12
@property (readonly) VLCLibraryVideoDataSource *libraryVideoDataSource;
13
+@property (readonly) VLCLibraryShowsDataSource *libraryShowsDataSource;
14
15
@property (readonly) NSArray<NSLayoutConstraint *> *videoPlaceholderImageViewSizeConstraints;
16
17
- (instancetype)initWithLibraryWindow:(VLCLibraryWindow *)libraryWindow;
18
- (void)presentVideoView;
19
+- (void)presentShowsView;
20
- (void)presentLibraryItem:(id<VLCMediaLibraryItemProtocol>)libraryItem;
21
22
@end
23
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/macosx/library/video-library/VLCLibraryVideoViewController.m -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/library/video-library/VLCLibraryVideoViewController.m
Changed
201
1
2
#import "library/VLCLibraryCollectionViewDelegate.h"
3
#import "library/VLCLibraryCollectionViewFlowLayout.h"
4
#import "library/VLCLibraryCollectionViewItem.h"
5
+#import "library/VLCLibraryCollectionViewMediaItemSupplementaryDetailView.h"
6
#import "library/VLCLibraryCollectionViewSupplementaryElementView.h"
7
#import "library/VLCLibraryController.h"
8
#import "library/VLCLibraryModel.h"
9
10
11
#import "library/home-library/VLCLibraryHomeViewVideoContainerViewDataSource.h"
12
13
+#import "library/video-library/VLCLibraryShowsDataSource.h"
14
#import "library/video-library/VLCLibraryVideoDataSource.h"
15
#import "library/video-library/VLCLibraryVideoTableViewDelegate.h"
16
17
18
_splitViewDelegate = VLCLibraryTwoPaneSplitViewDelegate alloc init;
19
20
self setupPropertiesFromLibraryWindow:libraryWindow;
21
- self setupDataSource;
22
+ self setupDataSources;
23
self setupCollectionView;
24
- self setupTableViews;
25
self setupVideoPlaceholderView;
26
self setupVideoLibraryViews;
27
self setupLoadingOverlayView;
28
29
_emptyLibraryView = libraryWindow.emptyLibraryView;
30
}
31
32
-- (void)setupDataSource
33
+- (void)setupDataSources
34
{
35
_videoLibrarySplitView.delegate = _splitViewDelegate;
36
_splitViewDelegate resetDefaultSplitForSplitView:self.videoLibrarySplitView;
37
38
_libraryVideoDataSource.groupSelectionTableView = _videoLibraryGroupSelectionTableView;
39
_libraryVideoDataSource.collectionView = _videoLibraryCollectionView;
40
41
+ _libraryShowsDataSource = VLCLibraryShowsDataSource alloc init;
42
+ self.libraryShowsDataSource.libraryModel =
43
+ VLCMain.sharedInstance.libraryController.libraryModel;
44
+ self.libraryShowsDataSource.collectionView = self.videoLibraryCollectionView;
45
+ self.libraryShowsDataSource.showsTableView = self.videoLibraryGroupsTableView;
46
+ self.libraryShowsDataSource.selectedShowTableView = self.videoLibraryGroupSelectionTableView;
47
+
48
NSNib * const tableCellViewNib = NSNib alloc initWithNibNamed:NSStringFromClass(VLCLibraryTableCellView.class) bundle:nil;
49
_videoLibraryGroupsTableView registerNib:tableCellViewNib forIdentifier:@"VLCVideoLibraryTableViewCellIdentifier";
50
_videoLibraryGroupSelectionTableView registerNib:tableCellViewNib forIdentifier:@"VLCVideoLibraryTableViewCellIdentifier";
51
52
53
- (void)setupCollectionView
54
{
55
- _collectionViewLayout = VLCLibraryCollectionViewFlowLayout alloc init;
56
+ _collectionViewLayout = VLCLibraryCollectionViewFlowLayout alloc init;
57
58
const CGFloat collectionItemSpacing = VLCLibraryUIUnits.collectionViewItemSpacing;
59
const NSEdgeInsets collectionViewSectionInset = VLCLibraryUIUnits.collectionViewSectionInsets;
60
61
_collectionViewLayout.minimumInteritemSpacing = collectionItemSpacing;
62
_collectionViewLayout.sectionInset = collectionViewSectionInset;
63
64
- self.videoLibraryCollectionView.collectionViewLayout = _collectionViewLayout;
65
+ NSCollectionView * const collectionView = self.videoLibraryCollectionView;
66
+ collectionView.collectionViewLayout = _collectionViewLayout;
67
68
_collectionViewDelegate = VLCLibraryCollectionViewDelegate alloc init;
69
_collectionViewDelegate.itemsAspectRatio = VLCLibraryCollectionViewItemAspectRatioVideoItem;
70
_collectionViewDelegate.staticItemSize = VLCLibraryCollectionViewItem.defaultVideoItemSize;
71
- self.videoLibraryCollectionView.delegate = _collectionViewDelegate;
72
-
73
- self.libraryVideoDataSource setupCollectionView:self.videoLibraryCollectionView;
74
-}
75
-
76
-- (void)setupTableViews
77
-{
78
- _videoLibraryGroupsTableView.dataSource = _libraryVideoDataSource;
79
- _videoLibraryGroupsTableView.target = _libraryVideoDataSource;
80
- _videoLibraryGroupsTableView.delegate = _videoLibraryTableViewDelegate;
81
-
82
- _videoLibraryGroupSelectionTableView.dataSource = _libraryVideoDataSource;
83
- _videoLibraryGroupSelectionTableView.target = _libraryVideoDataSource;
84
- _videoLibraryGroupSelectionTableView.delegate = _videoLibraryTableViewDelegate;
85
+ collectionView.delegate = _collectionViewDelegate;
86
+
87
+ collectionView registerClass:VLCLibraryCollectionViewItem.class
88
+ forItemWithIdentifier:VLCLibraryCellIdentifier;
89
+
90
+ collectionView registerClass:VLCLibraryCollectionViewSupplementaryElementView.class
91
+ forSupplementaryViewOfKind:NSCollectionElementKindSectionHeader
92
+ withIdentifier:VLCLibrarySupplementaryElementViewIdentifier;
93
+
94
+ NSString * const mediaItemSupplementaryDetailViewString =
95
+ NSStringFromClass(VLCLibraryCollectionViewMediaItemSupplementaryDetailView.class);
96
+ NSNib * const mediaItemSupplementaryDetailViewNib =
97
+ NSNib alloc initWithNibNamed:mediaItemSupplementaryDetailViewString bundle:nil;
98
+
99
+ collectionView registerNib:mediaItemSupplementaryDetailViewNib
100
+ forSupplementaryViewOfKind:VLCLibraryCollectionViewMediaItemSupplementaryDetailViewKind
101
+ withIdentifier:VLCLibraryCollectionViewMediaItemSupplementaryDetailViewIdentifier;
102
}
103
104
- (void)setupVideoPlaceholderView
105
106
107
#pragma mark - Show the video library view
108
109
-- (void)updatePresentedView
110
+- (void)updatePresentedVideoLibraryView
111
{
112
+ self.videoLibraryCollectionView.dataSource = self.libraryVideoDataSource;
113
+
114
+ self.videoLibraryGroupsTableView.dataSource = self.libraryShowsDataSource;
115
+ self.videoLibraryGroupsTableView.target = self.libraryVideoDataSource;
116
+ self.videoLibraryGroupsTableView.delegate = _videoLibraryTableViewDelegate;
117
+
118
+ self.videoLibraryGroupSelectionTableView.dataSource = self.libraryVideoDataSource;
119
+ self.videoLibraryGroupSelectionTableView.target = self.libraryVideoDataSource;
120
+ self.videoLibraryGroupSelectionTableView.delegate = _videoLibraryTableViewDelegate;
121
+
122
+ self.libraryVideoDataSource reloadData;
123
+
124
const BOOL anyVideoMedia = self.libraryVideoDataSource.libraryModel.numberOfVideoMedia > 0;
125
if (anyVideoMedia) {
126
- self presentVideoLibraryView;
127
+ const VLCLibraryViewModeSegment viewModeSegment = VLCLibraryWindowPersistentPreferences.sharedInstance.videoLibraryViewMode;
128
+ self presentVideoLibraryView:viewModeSegment;
129
} else if (self.libraryVideoDataSource.libraryModel.filterString.length > 0) {
130
self presentNoResultsView;
131
} else {
132
133
}
134
}
135
136
+- (void)updatePresentedShowsLibraryView
137
+{
138
+ self.videoLibraryCollectionView.dataSource = self.libraryShowsDataSource;
139
+
140
+ self.videoLibraryGroupsTableView.dataSource = self.libraryShowsDataSource;
141
+ self.videoLibraryGroupsTableView.target = self.libraryShowsDataSource;
142
+ self.videoLibraryGroupsTableView.delegate = _videoLibraryTableViewDelegate;
143
+
144
+ self.videoLibraryGroupSelectionTableView.dataSource = self.libraryShowsDataSource;
145
+ self.videoLibraryGroupSelectionTableView.target = self.libraryShowsDataSource;
146
+ self.videoLibraryGroupSelectionTableView.delegate = _videoLibraryTableViewDelegate;
147
+
148
+ self.libraryShowsDataSource reloadData;
149
+
150
+ const BOOL anyShows = self.libraryShowsDataSource.libraryModel.listOfShows.count > 0;
151
+ if (anyShows) {
152
+ const VLCLibraryViewModeSegment viewModeSegment = VLCLibraryWindowPersistentPreferences.sharedInstance.showsLibraryViewMode;
153
+ self presentVideoLibraryView:viewModeSegment;
154
+ } else if (self.libraryShowsDataSource.libraryModel.filterString.length > 0) {
155
+ self presentNoResultsView;
156
+ } else {
157
+ self presentPlaceholderVideoLibraryView;
158
+ }
159
+}
160
+
161
- (void)presentVideoView
162
{
163
_libraryTargetView.subviews = @;
164
- self updatePresentedView;
165
+ self updatePresentedVideoLibraryView;
166
+}
167
+
168
+- (void)presentShowsView
169
+{
170
+ self.libraryTargetView.subviews = @;
171
+ self updatePresentedShowsLibraryView;
172
}
173
174
- (void)presentPlaceholderVideoLibraryView
175
176
;
177
}
178
179
-- (void)presentVideoLibraryView
180
+- (void)presentVideoLibraryView:(VLCLibraryViewModeSegment)viewModeSegment
181
{
182
_videoLibraryView.translatesAutoresizingMaskIntoConstraints = NO;
183
if (self.libraryTargetView.subviews containsObject:self.loadingOverlayView) {
184
185
_libraryTargetView addConstraints:NSLayoutConstraint constraintsWithVisualFormat:@"H:|_videoLibraryView(>=572.)|" options:0 metrics:0 views:dict;
186
_libraryTargetView addConstraints:NSLayoutConstraint constraintsWithVisualFormat:@"V:|_videoLibraryView(>=444.)|" options:0 metrics:0 views:dict;
187
188
- const VLCLibraryViewModeSegment viewModeSegment = VLCLibraryWindowPersistentPreferences.sharedInstance.videoLibraryViewMode;
189
-
190
if (viewModeSegment == VLCLibraryGridViewModeSegment) {
191
_videoLibrarySplitView.hidden = YES;
192
_videoLibraryCollectionViewScrollView.hidden = NO;
193
194
} else {
195
NSAssert(false, @"View mode must be grid or list mode");
196
}
197
- self.libraryVideoDataSource reloadData;
198
}
199
200
- (void)libraryModelUpdated:(NSNotification *)aNotification
201
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/macosx/windows/controlsbar/VLCControlsBarCommon.h -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/windows/controlsbar/VLCControlsBarCommon.h
Changed
9
1
2
@property (readwrite, strong) IBOutlet VLCImageView *artworkImageView;
3
@property (readwrite, strong) IBOutlet NSButton *artworkButton;
4
@property (readwrite, strong) IBOutlet VLCWrappableTextField *playingItemDisplayField;
5
+@property (readwrite, strong) IBOutlet VLCWrappableTextField *detailLabel;
6
@property (readwrite, strong) IBOutlet VLCTimeField *timeField;
7
@property (readwrite, strong) IBOutlet VLCTimeField *trailingTimeField;
8
9
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/macosx/windows/controlsbar/VLCControlsBarCommon.m -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/windows/controlsbar/VLCControlsBarCommon.m
Changed
19
1
2
3
_playingItemDisplayField.stringValue = inputItem.name;
4
5
+ VLCMediaLibraryMediaItem * const mediaItem =
6
+ VLCMediaLibraryMediaItem mediaItemForURL:_playerController.URLOfCurrentMediaItem;
7
+ if (!mediaItem) {
8
+ self.detailLabel.hidden = YES;
9
+ } else {
10
+ _detailLabel.hidden =
11
+ mediaItem.primaryDetailString isEqualToString:@"" ||
12
+ mediaItem.primaryDetailString isEqualToString:mediaItem.durationString;
13
+ _detailLabel.stringValue = mediaItem.primaryDetailString;
14
+ }
15
+
16
NSURL * const artworkURL = inputItem.artworkURL;
17
18
if (artworkURL) {
19
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/macosx/windows/controlsbar/VLCMainVideoViewControlsBar.h -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/windows/controlsbar/VLCMainVideoViewControlsBar.h
Changed
9
1
2
3
@interface VLCMainVideoViewControlsBar : VLCControlsBarCommon
4
5
-@property (readwrite, strong) IBOutlet VLCWrappableTextField *detailLabel;
6
@property (readwrite, strong) IBOutlet NSButton *bookmarksButton;
7
@property (readwrite, strong) IBOutlet NSButton *subtitlesButton;
8
@property (readwrite, strong) IBOutlet NSButton *audioButton;
9
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/macosx/windows/controlsbar/VLCMainVideoViewControlsBar.m -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/macosx/windows/controlsbar/VLCMainVideoViewControlsBar.m
Changed
50
1
2
3
NSNotificationCenter * const notificationCenter = NSNotificationCenter.defaultCenter;
4
notificationCenter addObserver:self
5
- selector:@selector(currentMediaItemChanged:)
6
- name:VLCPlayerCurrentMediaItemChanged
7
- object:nil;
8
- notificationCenter addObserver:self
9
selector:@selector(floatOnTopChanged:)
10
name:VLCWindowFloatOnTopChangedNotificationName
11
object:nil;
12
13
- (void)update
14
{
15
super update;
16
- self updateDetailLabel;
17
self updateFloatOnTopButton;
18
}
19
20
-- (void)currentMediaItemChanged:(NSNotification *)notification
21
-{
22
- self updateDetailLabel;
23
-}
24
-
25
- (void)floatOnTopChanged:(NSNotification *)notification
26
{
27
VLCVideoWindowCommon * const videoWindow = (VLCVideoWindowCommon *)notification.object;
28
29
self updateFloatOnTopButton;
30
}
31
32
-- (void)updateDetailLabel
33
-{
34
- VLCMediaLibraryMediaItem * const mediaItem =
35
- VLCMediaLibraryMediaItem mediaItemForURL:_playerController.URLOfCurrentMediaItem;
36
-
37
- if (!mediaItem) {
38
- self.detailLabel.hidden = YES;
39
- return;
40
- }
41
-
42
- _detailLabel.hidden = mediaItem.primaryDetailString isEqualToString:@"" ||
43
- mediaItem.primaryDetailString isEqualToString:mediaItem.durationString;
44
- _detailLabel.stringValue = mediaItem.primaryDetailString;
45
-}
46
-
47
- (void)updateFloatOnTopButton
48
{
49
VLCVideoWindowCommon * const videoWindow = (VLCVideoWindowCommon *)self.floatOnTopButton.window;
50
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/Makefile.am -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/Makefile.am
Changed
201
1
2
include ../../common.am
3
guidir = $(pluginsdir)/gui
4
gui_LTLIBRARIES =
5
-SUFFIXES += .ui .h .hpp .moc.cpp .qml
6
+SUFFIXES += .ui .h .hpp .moc.cpp .qml .js .mjs .moc
7
TEST_EXTENSIONS = .qml
8
-EXTRA_DIST = qt6.pro private-core.pro private-gui.pro private-quick.pro quicktest.pro
9
+EXTRA_DIST = qt6.pro private-core.pro private-gui.pro private-quick.pro quicktest.pro scripts
10
vlc_qt_libs = $(QT_LIBS)
11
12
vlc_qt_check_SOURCES = vlc-qt-check.cpp plugins.hpp
13
14
-I$(builddir)/dialogs/sout \
15
-I$(builddir)/dialogs/vlm
16
17
-libqt_plugin_la_CXXFLAGS = $(AM_CXXFLAGS) $(QT_CFLAGS) $(CXXFLAGS_qt)
18
+libqt_plugin_la_CXXFLAGS = $(AM_CXXFLAGS) $(QT_CFLAGS) $(CXXFLAGS_qt) -fPIC
19
libqt_plugin_la_LIBADD = $(vlc_qt_libs)
20
libqt_plugin_la_LDFLAGS = $(AM_LDFLAGS) $(QT_LDFLAGS)
21
if HAVE_DARWIN
22
23
.hpp.moc.cpp:
24
$(moc_verbose)$(MOC) $(MOC_CPPFLAGS) -o $@ $<
25
26
+.cpp.moc:
27
+ $(moc_verbose)$(MOC) $(MOC_CPPFLAGS) -o $@ $<
28
+
29
# These MOC files depend on the configure settings:
30
dialogs/dialogs_provider.moc.cpp dialogs/vlm/vlm.moc.cpp: $(top_builddir)/config.h
31
32
33
pixmaps/win7/play.svg
34
endif
35
36
-#QML and JS resources
37
-libqt_plugin_la_QML = \
38
+#QML modules
39
+libqml_module_dialogs_a_Module = VLC.Dialogs
40
+libqml_module_dialogs_a_ModulePath = VLC/Dialogs
41
+libqml_module_dialogs_a_CXXFLAGS = $(libqt_plugin_la_CXXFLAGS)
42
+libqml_module_dialogs_a_CPPFLAGS = $(libqt_plugin_la_CPPFLAGS)
43
+libqml_module_dialogs_a_QML = \
44
dialogs/dialogs/qml/CustomDialog.qml \
45
dialogs/dialogs/qml/Dialogs.qml \
46
dialogs/dialogs/qml/ModalDialog.qml \
47
48
dialogs/toolbar/qml/EditorTabButton.qml \
49
dialogs/toolbar/qml/ToolbarEditor.qml \
50
dialogs/toolbar/qml/ToolbarEditorDialog.qml \
51
- dialogs/toolbar/qml/ToolbarEditorButtonList.qml \
52
+ dialogs/toolbar/qml/ToolbarEditorButtonList.qml
53
+
54
+$(libqml_module_dialogs_a_QML:.qml=.cpp) : $(builddir)/dialogs/res.qrc
55
+$(libqml_module_dialogs_a_QML:.qml=.cpp) : QML_CACHEGEN_ARGS=--resource=$(builddir)/dialogs/res.qrc
56
+nodist_libqml_module_dialogs_a_SOURCES = dialogs_qmlassets.cpp
57
+
58
+libqml_module_maininterface_a_Module = VLC.MainInterface
59
+libqml_module_maininterface_a_ModulePath = VLC/MainInterface
60
+libqml_module_maininterface_a_CXXFLAGS = $(libqt_plugin_la_CXXFLAGS)
61
+libqml_module_maininterface_a_CPPFLAGS = $(libqt_plugin_la_CPPFLAGS)
62
+libqml_module_maininterface_a_QML = \
63
maininterface/qml/BannerSources.qml \
64
maininterface/qml/MainInterface.qml \
65
maininterface/qml/MainViewLoader.qml \
66
maininterface/qml/MainDisplay.qml \
67
maininterface/qml/MainGridView.qml \
68
maininterface/qml/MainTableView.qml \
69
- maininterface/qml/NoMedialibHome.qml \
70
+ maininterface/qml/NoMedialibHome.qml
71
+nodist_libqml_module_maininterface_a_SOURCES = maininterface_qmlassets.cpp
72
+$(libqml_module_maininterface_a_QML:.qml=.cpp) : $(builddir)/maininterface/res.qrc
73
+$(libqml_module_maininterface_a_QML:.qml=.cpp) : QML_CACHEGEN_ARGS=--resource=$(builddir)/maininterface/res.qrc
74
+
75
+libqml_module_medialibrary_a_Module = VLC.MediaLibrary
76
+libqml_module_medialibrary_a_ModulePath = VLC/MediaLibrary
77
+libqml_module_medialibrary_a_CXXFLAGS = $(libqt_plugin_la_CXXFLAGS)
78
+libqml_module_medialibrary_a_CPPFLAGS = $(libqt_plugin_la_CPPFLAGS)
79
+libqml_module_medialibrary_a_QML = \
80
medialibrary/qml/ArtistTopBanner.qml \
81
medialibrary/qml/AudioGridItem.qml \
82
medialibrary/qml/MediaGroupDisplay.qml \
83
84
medialibrary/qml/PlaylistMedia.qml \
85
medialibrary/qml/PlaylistMediaDisplay.qml \
86
medialibrary/qml/VideoPlaylistsDisplay.qml \
87
- medialibrary/qml/VideoRecentVideos.qml \
88
- medialibrary/qml/VideoRecentVideosDisplay.qml \
89
+ medialibrary/qml/VideoRecentVideos.qml \
90
+ medialibrary/qml/VideoRecentVideosDisplay.qml \
91
medialibrary/qml/VideoGridItem.qml \
92
medialibrary/qml/VideoInfoExpandPanel.qml \
93
medialibrary/qml/VideoListDisplay.qml \
94
- medialibrary/qml/VideoGridDisplay.qml \
95
+ medialibrary/qml/VideoGridDisplay.qml
96
+nodist_libqml_module_medialibrary_a_SOURCES = medialibrary_qmlassets.cpp
97
+$(libqml_module_medialibrary_a_QML:.qml=.cpp) : $(builddir)/medialibrary/res.qrc
98
+$(libqml_module_medialibrary_a_QML:.qml=.cpp) : QML_CACHEGEN_ARGS=--resource=$(builddir)/medialibrary/res.qrc
99
+
100
+libqml_module_menus_a_Module = VLC.Menus
101
+libqml_module_menus_a_ModulePath = VLC/Menus
102
+libqml_module_menus_a_CXXFLAGS = $(libqt_plugin_la_CXXFLAGS)
103
+libqml_module_menus_a_CPPFLAGS = $(libqt_plugin_la_CPPFLAGS)
104
+libqml_module_menus_a_QML = \
105
menus/qml/GlobalShortcuts.qml \
106
menus/qml/GlobalShortcutsMedialib.qml \
107
menus/qml/Menubar.qml \
108
- menus/qml/ShortcutExt.qml \
109
+ menus/qml/ShortcutExt.qml
110
+nodist_libqml_module_menus_a_SOURCES = menus_qmlassets.cpp
111
+$(libqml_module_menus_a_QML:.qml=.cpp) : $(builddir)/menus/res.qrc
112
+$(libqml_module_menus_a_QML:.qml=.cpp) : QML_CACHEGEN_ARGS=--resource=$(builddir)/menus/res.qrc
113
+
114
+libqml_module_network_a_Module = VLC.Network
115
+libqml_module_network_a_ModulePath = VLC/Network
116
+libqml_module_network_a_CXXFLAGS = $(libqt_plugin_la_CXXFLAGS)
117
+libqml_module_network_a_CPPFLAGS = $(libqt_plugin_la_CPPFLAGS)
118
+libqml_module_network_a_QML = \
119
network/qml/AddressbarButton.qml \
120
network/qml/BrowseDeviceView.qml \
121
network/qml/BrowseDisplay.qml \
122
123
network/qml/NetworkThumbnailItem.qml \
124
network/qml/ServicesHomeDisplay.qml \
125
network/qml/ServicesManage.qml \
126
- network/qml/ServicesSources.qml \
127
- player/qml/qmldir \
128
- player/qml/Bookmarks.qml \
129
+ network/qml/ServicesSources.qml
130
+nodist_libqml_module_network_a_SOURCES = network_qmlassets.cpp
131
+$(libqml_module_network_a_QML:.qml=.cpp) : $(builddir)/network/res.qrc
132
+$(libqml_module_network_a_QML:.qml=.cpp) : QML_CACHEGEN_ARGS=--resource=$(builddir)/network/res.qrc
133
+
134
+libqml_module_player_a_Module = VLC.Player
135
+libqml_module_player_a_ModulePath = VLC/Player
136
+libqml_module_player_a_CXXFLAGS = $(libqt_plugin_la_CXXFLAGS)
137
+libqml_module_player_a_CPPFLAGS = $(libqt_plugin_la_CPPFLAGS)
138
+libqml_module_player_a_QML = \
139
+ player/qml/Bookmarks.qml \
140
player/qml/ControlBar.qml \
141
- player/qml/ControlbarControls.qml \
142
player/qml/PlaybackSpeed.qml \
143
player/qml/MiniPlayer.qml \
144
player/qml/PIPPlayer.qml \
145
146
player/qml/TracksListPage.qml \
147
player/qml/ControlLayout.qml \
148
player/qml/ControlRepeater.qml \
149
- player/qml/NavigationBox.qml \
150
+ player/qml/NavigationBox.qml
151
+
152
+libqml_module_player_a_Singleton_QML = \
153
+ player/qml/PlayerControlbarControls.qml
154
+
155
+nodist_libqml_module_player_a_SOURCES = player_qmlassets.cpp
156
+$(libqml_module_player_a_QML:.qml=.cpp) $(libqml_module_player_a_Singleton_QML:.qml=.cpp) : $(builddir)/player/res.qrc
157
+$(libqml_module_player_a_QML:.qml=.cpp) $(libqml_module_player_a_Singleton_QML:.qml=.cpp) : QML_CACHEGEN_ARGS=--resource=$(builddir)/player/res.qrc
158
+
159
+libqml_module_playercontrols_a_Module = VLC.PlayerControls
160
+libqml_module_playercontrols_a_ModulePath = VLC/PlayerControls
161
+libqml_module_playercontrols_a_CXXFLAGS = $(libqt_plugin_la_CXXFLAGS)
162
+libqml_module_playercontrols_a_CPPFLAGS = $(libqt_plugin_la_CPPFLAGS)
163
+libqml_module_playercontrols_a_QML = \
164
player/qml/controlbarcontrols/HighResolutionTimeWidget.qml \
165
player/qml/controlbarcontrols/ArtworkInfoWidget.qml \
166
player/qml/controlbarcontrols/AspectRatioWidget.qml \
167
168
player/qml/controlbarcontrols/TeletextColorButton.qml \
169
player/qml/controlbarcontrols/TeletextWidget.qml \
170
player/qml/controlbarcontrols/VolumeWidget.qml \
171
- player/qml/controlbarcontrols/Fallback.qml \
172
+ player/qml/controlbarcontrols/Fallback.qml
173
+nodist_libqml_module_playercontrols_a_SOURCES = playercontrols_qmlassets.cpp
174
+$(libqml_module_playercontrols_a_QML:.qml=.cpp) : $(builddir)/playercontrols/res.qrc
175
+$(libqml_module_playercontrols_a_QML:.qml=.cpp) : QML_CACHEGEN_ARGS=--resource=$(builddir)/playercontrols/res.qrc
176
+
177
+libqml_module_playlist_a_Module = VLC.Playlist
178
+libqml_module_playlist_a_ModulePath = VLC/Playlist
179
+libqml_module_playlist_a_CXXFLAGS = $(libqt_plugin_la_CXXFLAGS)
180
+libqml_module_playlist_a_CPPFLAGS = $(libqt_plugin_la_CPPFLAGS)
181
+libqml_module_playlist_a_QML = \
182
playlist/qml/PlaylistDelegate.qml \
183
playlist/qml/PlaylistListView.qml \
184
playlist/qml/PlaylistToolbar.qml \
185
- playlist/qml/PlaylistDetachedWindow.qml \
186
+ playlist/qml/PlaylistDetachedWindow.qml
187
+nodist_libqml_module_playlist_a_SOURCES = playlist_qmlassets.cpp
188
+$(libqml_module_playlist_a_QML:.qml=.cpp) : $(builddir)/playlist/res.qrc
189
+$(libqml_module_playlist_a_QML:.qml=.cpp) : QML_CACHEGEN_ARGS=--resource=$(builddir)/playlist/res.qrc
190
+
191
+libqml_module_style_a_Module = VLC.Style
192
+libqml_module_style_a_ModulePath = VLC/Style
193
+libqml_module_style_a_CXXFLAGS = $(libqt_plugin_la_CXXFLAGS)
194
+libqml_module_style_a_CPPFLAGS = $(libqt_plugin_la_CPPFLAGS)
195
+libqml_module_style_a_QML =
196
+libqml_module_style_a_Singleton_QML = \
197
style/AcrylicController.qml \
198
style/VLCIcons.qml \
199
- style/VLCStyle.qml \
200
- style/qmldir \
201
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/dialogs/dialogs/qml/CustomDialog.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/dialogs/dialogs/qml/CustomDialog.qml
Changed
15
1
2
3
import QtQuick
4
import QtQuick.Layouts
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
+import VLC.MainInterface
10
+import VLC.Style
11
+import VLC.Widgets as Widgets
12
13
ModalDialog {
14
id: root
15
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/dialogs/dialogs/qml/Dialogs.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/dialogs/dialogs/qml/Dialogs.qml
Changed
38
1
2
import QtQuick.Layouts
3
import Qt5Compat.GraphicalEffects
4
import QtQuick.Templates as T
5
-import org.videolan.vlc 0.1
6
7
-
8
-import "qrc:///widgets/" as Widgets
9
-import "qrc:///style/"
10
+import VLC.MainInterface
11
+import VLC.Dialogs
12
+import VLC.Widgets as Widgets
13
+import VLC.Util
14
+import VLC.Style
15
16
Item {
17
id: root
18
19
}
20
21
edge: Widgets.DrawerExt.Edges.Bottom
22
- width: contentItem.layoutWidth
23
- height: contentItem.height
24
+ width: contentItem?.layoutWidth ?? 0
25
+ height: contentItem?.height ?? 0
26
z: 10
27
28
ColorContext {
29
30
Loader {
31
id: toolbarEditorDialogLoader
32
active: false
33
- source: "qrc:///dialogs/ToolbarEditorDialog.qml"
34
+ source: "qrc:///qt/qml/VLC/Dialogs/ToolbarEditorDialog.qml"
35
36
Connections {
37
target: toolbarEditorDialogLoader.item
38
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/dialogs/dialogs/qml/ModalDialog.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/dialogs/dialogs/qml/ModalDialog.qml
Changed
16
1
2
import QtQuick.Layouts
3
import Qt5Compat.GraphicalEffects
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.MainInterface
10
+import VLC.Widgets as Widgets
11
+import VLC.Util
12
+import VLC.Style
13
14
Dialog {
15
id: control
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/dialogs/dialogs/qml/WindowDialog.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/dialogs/dialogs/qml/WindowDialog.qml
Changed
19
1
2
import QtQuick.Layouts
3
import QtQuick.Controls
4
5
-import org.videolan.vlc 0.1
6
-import "qrc:///widgets/" as Widgets
7
-import "qrc:///style/"
8
+import VLC.Widgets as Widgets
9
+import VLC.Style
10
11
Window {
12
id: root
13
14
+ transientParent: MainCtx.intfMainWindow
15
+
16
flags: Qt.Dialog
17
18
property bool modal: false
19
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/dialogs/toolbar/qml/EditorDNDDelegate.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/dialogs/toolbar/qml/EditorDNDDelegate.qml
Changed
16
1
2
import QtQuick.Layouts
3
import QtQml.Models
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///player/"
8
-import "qrc:///widgets/" as Widgets
9
-import "qrc:///style/"
10
+import VLC.Player
11
+import VLC.Widgets as Widgets
12
+import VLC.Style
13
14
T.Control {
15
id: control
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/dialogs/toolbar/qml/EditorDNDView.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/dialogs/toolbar/qml/EditorDNDView.qml
Changed
25
1
2
import QtQuick.Controls
3
import QtQml.Models
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///util/" as Util
9
+import VLC.Style
10
+import VLC.Util
11
12
ListView {
13
id: playerBtnDND
14
15
id: theme
16
colorSet: ColorContext.View
17
}
18
-
19
- Util.FlickableScrollHandler {
20
+
21
+ FlickableScrollHandler {
22
fallbackScroll: true
23
enabled: true
24
}
25
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/dialogs/toolbar/qml/EditorDummyButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/dialogs/toolbar/qml/EditorDummyButton.qml
Changed
12
1
2
import QtQuick
3
import QtQuick.Controls
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
+import VLC.Style
9
10
Label {
11
font.pixelSize: VLCStyle.icon_medium
12
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/dialogs/toolbar/qml/EditorTabButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/dialogs/toolbar/qml/EditorTabButton.qml
Changed
14
1
2
import QtQuick
3
import QtQuick.Controls
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
+import VLC.Style
10
+import VLC.Widgets as Widgets
11
12
Widgets.BannerTabButton {
13
id: root
14
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/dialogs/toolbar/qml/ToolbarEditor.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/dialogs/toolbar/qml/ToolbarEditor.qml
Changed
27
1
2
import QtQuick.Layouts
3
import QtQml.Models
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
-import "qrc:///util/" as Util
10
+import VLC.MainInterface
11
+import VLC.Style
12
+import VLC.Widgets as Widgets
13
+import VLC.Util
14
+import VLC.PlayerControls
15
16
Item {
17
id: root
18
19
}
20
}
21
22
- Util.ViewDragAutoScrollHandler {
23
+ ViewDragAutoScrollHandler {
24
id: dragAutoScrollHandler
25
26
view: _viewThatContainsDrag ?? null
27
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/dialogs/toolbar/qml/ToolbarEditorButtonList.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/dialogs/toolbar/qml/ToolbarEditorButtonList.qml
Changed
27
1
2
import QtQml.Models
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///player/"
8
-import "qrc:///style/"
9
-import "qrc:///widgets/" as Widgets
10
-import "qrc:///util/" as Util
11
+import VLC.Player
12
+import VLC.Style
13
+import VLC.Widgets as Widgets
14
+import VLC.Util
15
16
GridView {
17
id: root
18
19
preventStealing: true
20
}
21
22
- Util.FlickableScrollHandler { }
23
+ FlickableScrollHandler { }
24
25
DropArea {
26
id: dropArea
27
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/dialogs/toolbar/qml/ToolbarEditorDialog.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/dialogs/toolbar/qml/ToolbarEditorDialog.qml
Changed
16
1
2
import QtQuick.Templates as T
3
import QtQuick.Layouts
4
5
-import "qrc:///widgets/" as Widgets
6
-import "qrc:///style/"
7
+import VLC.MainInterface
8
+import VLC.Widgets as Widgets
9
+import VLC.Style
10
+import VLC.Dialogs
11
12
-import org.videolan.vlc 0.1
13
14
WindowDialog {
15
id: root
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/maininterface/compositor.cpp -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/maininterface/compositor.cpp
Changed
16
1
2
assert(window);
3
assert(m_intf);
4
5
+ if (enable)
6
+ {
7
+ if (!var_InheritBool(m_intf, "qt-backdrop-blur"))
8
+ {
9
+ return false;
10
+ }
11
+ }
12
+
13
if (m_failedToLoadWindowEffectsModule)
14
return false;
15
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/maininterface/compositor_dcomp.cpp -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/maininterface/compositor_dcomp.cpp
Changed
28
1
2
3
if (!m_blurBehind)
4
{
5
- try
6
+ if (var_InheritBool(m_intf, "qt-backdrop-blur"))
7
{
8
- m_acrylicSurface = new CompositorDCompositionAcrylicSurface(m_intf, this, m_mainCtx, m_dcompDevice);
9
- }
10
- catch (const std::exception& exception)
11
- {
12
- if (const auto what = exception.what())
13
- msg_Warn(m_intf, "%s", what);
14
- delete m_acrylicSurface.data();
15
+ try
16
+ {
17
+ m_acrylicSurface = new CompositorDCompositionAcrylicSurface(m_intf, this, m_mainCtx, m_dcompDevice);
18
+ }
19
+ catch (const std::exception& exception)
20
+ {
21
+ if (const auto what = exception.what())
22
+ msg_Warn(m_intf, "%s", what);
23
+ delete m_acrylicSurface.data();
24
+ }
25
}
26
}
27
}
28
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/maininterface/mainctx.hpp -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/maininterface/mainctx.hpp
Changed
15
1
2
unsigned char patch)
3
{ return QT_VERSION_CHECK(major, minor, patch); }
4
5
+ Q_INVOKABLE static /*constexpr*/ inline bool qtQuickControlRejectsHoverEvents() {
6
+ // QTBUG-100543
7
+ return (QT_VERSION < QT_VERSION_CHECK(6, 3, 0) && QT_VERSION >= QT_VERSION_CHECK(6, 2, 5)) ||
8
+ (QT_VERSION < QT_VERSION_CHECK(6, 4, 0) && QT_VERSION >= QT_VERSION_CHECK(6, 3, 1)) ||
9
+ (QT_VERSION >= QT_VERSION_CHECK(6, 4, 0));
10
+ }
11
+
12
/**
13
* @brief ask for the application to terminate
14
* @return true if the application can be close right away, false if it will be delayed
15
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/maininterface/mainctx_win32.cpp -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/maininterface/mainctx_win32.cpp
Changed
10
1
2
3
const int action = TrackPopupMenu(hmenu, (TPM_RETURNCMD | alignment)
4
, screenPoints.x(), screenPoints.y()
5
- , NULL, hwnd, 0);
6
+ , 0, hwnd, nullptr);
7
8
// unlike native system menu which sends WM_SYSCOMMAND, TrackPopupMenu sends WM_COMMAND
9
// imitate native system menu by sending the action manually as WM_SYSCOMMAND
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/maininterface/mainui.cpp -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/maininterface/mainui.cpp
Changed
201
1
2
engine->addImageProvider(MLCUSTOMCOVER_PROVIDERID, customCover);
3
}
4
5
+#if QT_VERSION < QT_VERSION_CHECK(6, 5, 0)
6
+ engine->addImportPath(":/qt/qml");
7
+#endif
8
+
9
SingletonRegisterHelper<EffectsImageProvider>::setInstance(new EffectsImageProvider(engine));
10
engine->addImageProvider(QStringLiteral("svgcolor"), new SVGColorImageImageProvider());
11
engine->addImageProvider(QStringLiteral("vlcaccess"), new VLCAccessImageProvider());
12
13
- m_component = new QQmlComponent(engine, QStringLiteral("qrc:/main/MainInterface.qml"), QQmlComponent::PreferSynchronous, engine);
14
+ m_component = new QQmlComponent(engine, QStringLiteral("qrc:/qt/qml/VLC/MainInterface/MainInterface.qml"), QQmlComponent::PreferSynchronous, engine);
15
if (m_component->isLoading())
16
{
17
msg_Warn(m_intf, "component is still loading");
18
19
void MainUI::registerQMLTypes()
20
{
21
{
22
- const char* uri = "org.videolan.vlc";
23
- const int versionMajor = 0;
24
- const int versionMinor = 1;
25
+ const char* uri = "VLC.MainInterface";
26
+ const int versionMajor = 1;
27
+ const int versionMinor = 0;
28
29
+ // @uri VLC.MainInterface
30
qmlRegisterSingletonType<MainCtx>(uri, versionMajor, versionMinor, "MainCtx", SingletonRegisterHelper<MainCtx>::callback);
31
qmlRegisterUncreatableType<SearchCtx>(uri, versionMajor, versionMinor, "SearchCtx", "");
32
qmlRegisterUncreatableType<SortCtx>(uri, versionMajor, versionMinor, "SortCtx", "");
33
-
34
qmlRegisterSingletonType<NavigationHistory>(uri, versionMajor, versionMinor, "History", SingletonRegisterHelper<NavigationHistory>::callback);
35
- qmlRegisterSingletonType<PlayerController>(uri, versionMajor, versionMinor, "Player", SingletonRegisterHelper<PlayerController>::callback);
36
- qmlRegisterSingletonType<DialogsProvider>(uri, versionMajor, versionMinor, "DialogsProvider", SingletonRegisterHelper<DialogsProvider>::callback);
37
- qmlRegisterSingletonType<DialogErrorModel>(uri, versionMajor, versionMinor, "DialogErrorModel", SingletonRegisterHelper<DialogErrorModel>::callback);
38
- qmlRegisterSingletonType<QmlKeyHelper>(uri, versionMajor, versionMinor, "KeyHelper", SingletonRegisterHelper<QmlKeyHelper>::callback);
39
- qmlRegisterSingletonType<EffectsImageProvider>(uri, versionMajor, versionMinor, "Effects", SingletonRegisterHelper<EffectsImageProvider>::callback);
40
- qmlRegisterSingletonType<SVGColorImage>(uri, versionMajor, versionMinor, "SVGColorImage", SingletonRegisterHelper<SVGColorImage>::callback);
41
- qmlRegisterSingletonType<VLCAccessImage>(uri, versionMajor, versionMinor, "VLCAccessImage", SingletonRegisterHelper<VLCAccessImage>::callback);
42
- qmlRegisterSingletonType<PlaylistController>(uri, versionMajor, versionMinor, "MainPlaylistController", SingletonRegisterHelper<PlaylistController>::callback);
43
-
44
- qmlRegisterType<DelayEstimator>( uri, versionMajor, versionMinor, "DelayEstimator" );
45
-
46
qmlRegisterUncreatableType<QAbstractItemModel>(uri, versionMajor, versionMinor, "QtAbstractItemModel", "");
47
qmlRegisterUncreatableType<QWindow>(uri, versionMajor, versionMinor, "QtWindow", "");
48
qmlRegisterUncreatableType<QScreen>(uri, versionMajor, versionMinor, "QtScreen", "");
49
- qmlRegisterUncreatableType<SVGColorImageBuilder>(uri, versionMajor, versionMinor, "SVGColorImageBuilder", "");
50
-
51
qmlRegisterUncreatableType<VLCTick>(uri, versionMajor, versionMinor, "VLCTick", "");
52
- qmlRegisterUncreatableType<ColorSchemeModel>(uri, versionMajor, versionMinor, "ColorSchemeModel", "");
53
- qmlRegisterType<ColorContext>(uri, versionMajor, versionMinor, "ColorContext");
54
- qmlRegisterUncreatableType<ColorProperty>(uri, versionMajor, versionMinor, "ColorProperty", "");
55
- qmlRegisterType<SystemPalette>(uri, versionMajor, versionMinor, "SystemPalette");
56
- qmlRegisterType<CSDThemeImage>(uri, versionMajor, versionMinor, "CSDThemeImage");
57
-
58
qmlRegisterType<VideoSurface>(uri, versionMajor, versionMinor, "VideoSurface");
59
-
60
qmlRegisterUncreatableType<BaseModel>( uri, versionMajor, versionMinor, "BaseModel", "Base Model is uncreatable." );
61
- qmlRegisterType<NetworkMediaModel>( uri, versionMajor, versionMinor, "NetworkMediaModel");
62
- qmlRegisterType<NetworkDeviceModel>( uri, versionMajor, versionMinor, "NetworkDeviceModel");
63
- qmlRegisterType<NetworkSourcesModel>( uri, versionMajor, versionMinor, "NetworkSourcesModel");
64
- qmlRegisterType<ServicesDiscoveryModel>( uri, versionMajor, versionMinor, "ServicesDiscoveryModel");
65
- qmlRegisterType<StandardPathModel>( uri, versionMajor, versionMinor, "StandardPathModel");
66
- qmlRegisterType<MLFoldersModel>( uri, versionMajor, versionMinor, "MLFolderModel");
67
- qmlRegisterType<ImageLuminanceExtractor>( uri, versionMajor, versionMinor, "ImageLuminanceExtractor");
68
-
69
- qmlRegisterUncreatableType<TrackListModel>(uri, versionMajor, versionMinor, "TrackListModel", "available tracks of a media (audio/video/sub)" );
70
- qmlRegisterUncreatableType<TitleListModel>(uri, versionMajor, versionMinor, "TitleListModel", "available titles of a media" );
71
- qmlRegisterUncreatableType<ChapterListModel>(uri, versionMajor, versionMinor, "ChapterListModel", "available chapters of a media" );
72
- qmlRegisterUncreatableType<ProgramListModel>(uri, versionMajor, versionMinor, "ProgramListModel", "available programs of a media" );
73
qmlRegisterUncreatableType<VLCVarChoiceModel>(uri, versionMajor, versionMinor, "VLCVarChoiceModel", "generic variable with choice model" );
74
-
75
qmlRegisterUncreatableType<CSDButton>(uri, versionMajor, versionMinor, "CSDButton", "");
76
qmlRegisterUncreatableType<CSDButtonModel>(uri, versionMajor, versionMinor, "CSDButtonModel", "has CSD buttons and provides for communicating CSD events between UI and backend");
77
+ qmlRegisterUncreatableType<NavigationAttached>( uri, versionMajor, versionMinor, "Navigation", "Navigation is only available via attached properties");
78
79
- qmlRegisterUncreatableType<PlaylistItem>(uri, versionMajor, versionMinor, "PlaylistItem", "");
80
- qmlRegisterType<PlaylistListModel>( uri, versionMajor, versionMinor, "PlaylistListModel" );
81
- qmlRegisterType<PlaylistController>( uri, versionMajor, versionMinor, "PlaylistController" );
82
+ qmlRegisterModule(uri, versionMajor, versionMinor);
83
+ qmlProtectModule(uri, versionMajor);
84
+ }
85
86
- qmlRegisterType<AboutModel>( uri, versionMajor, versionMinor, "AboutModel" );
87
+ {
88
+ const char* uri = "VLC.Dialogs";
89
+ const int versionMajor = 1;
90
+ const int versionMinor = 0;
91
92
+ // @uri VLC.Dialogs
93
+ qmlRegisterType<AboutModel>( uri, versionMajor, versionMinor, "AboutModel" );
94
qmlRegisterType<DialogModel>(uri, versionMajor, versionMinor, "DialogModel");
95
-
96
qmlRegisterUncreatableType<DialogId>( uri, versionMajor, versionMinor, "DialogId", "");
97
+ qmlRegisterSingletonType<DialogsProvider>(uri, versionMajor, versionMinor, "DialogsProvider", SingletonRegisterHelper<DialogsProvider>::callback);
98
+ qmlRegisterSingletonType<DialogErrorModel>(uri, versionMajor, versionMinor, "DialogErrorModel", SingletonRegisterHelper<DialogErrorModel>::callback);
99
100
- qmlRegisterType<ItemKeyEventFilter>( uri, versionMajor, versionMinor, "KeyEventFilter" );
101
- qmlRegisterType<FlickableScrollHandler>( uri, versionMajor, versionMinor, "FlickableScrollHandler" );
102
+ qmlRegisterModule(uri, versionMajor, versionMinor);
103
+ qmlProtectModule(uri, versionMajor);
104
+ }
105
106
- qmlRegisterUncreatableType<ControlbarProfileModel>(uri, versionMajor, versionMinor, "ControlbarProfileModel", "");
107
- qmlRegisterUncreatableType<ControlbarProfile>(uri, versionMajor, versionMinor, "ControlbarProfile", "");
108
- qmlRegisterUncreatableType<PlayerControlbarModel>(uri, versionMajor, versionMinor, "PlayerControlbarModel", "");
109
- qmlRegisterUncreatableType<ControlListModel>( uri, versionMajor, versionMinor, "ControlListModel", "" );
110
- qmlRegisterType<ControlListFilter>(uri, versionMajor, versionMinor, "ControlListFilter");
111
- qmlRegisterSingletonType(uri, versionMajor, versionMinor, "PlayerListModel", PlayerControlbarModel::getPlaylistIdentifierListModel);
112
+ {
113
+ const char* uri = "VLC.Menus";
114
+ const int versionMajor = 1;
115
+ const int versionMinor = 0;
116
117
+ // @uri VLC.Menus
118
qmlRegisterType<StringListMenu>( uri, versionMajor, versionMinor, "StringListMenu" );
119
qmlRegisterType<SortMenu>( uri, versionMajor, versionMinor, "SortMenu" );
120
qmlRegisterType<SortMenuVideo>( uri, versionMajor, versionMinor, "SortMenuVideo" );
121
qmlRegisterType<QmlGlobalMenu>( uri, versionMajor, versionMinor, "QmlGlobalMenu" );
122
qmlRegisterType<QmlMenuBar>( uri, versionMajor, versionMinor, "QmlMenuBar" );
123
+
124
+ qmlRegisterModule(uri, versionMajor, versionMinor);
125
+ qmlProtectModule(uri, versionMajor);
126
+ }
127
+
128
+ {
129
+ const char* uri = "VLC.Player";
130
+ const int versionMajor = 1;
131
+ const int versionMinor = 0;
132
+
133
+ // @uri VLC.Player
134
+ qmlRegisterUncreatableType<TrackListModel>(uri, versionMajor, versionMinor, "TrackListModel", "available tracks of a media (audio/video/sub)" );
135
+ qmlRegisterUncreatableType<TitleListModel>(uri, versionMajor, versionMinor, "TitleListModel", "available titles of a media" );
136
+ qmlRegisterUncreatableType<ChapterListModel>(uri, versionMajor, versionMinor, "ChapterListModel", "available chapters of a media" );
137
+ qmlRegisterUncreatableType<ProgramListModel>(uri, versionMajor, versionMinor, "ProgramListModel", "available programs of a media" );
138
+ qmlRegisterSingletonType<PlayerController>(uri, versionMajor, versionMinor, "Player", SingletonRegisterHelper<PlayerController>::callback);
139
+
140
qmlRegisterType<QmlBookmarkMenu>( uri, versionMajor, versionMinor, "QmlBookmarkMenu" );
141
qmlRegisterType<QmlProgramMenu>( uri, versionMajor, versionMinor, "QmlProgramMenu" );
142
qmlRegisterType<QmlRendererMenu>( uri, versionMajor, versionMinor, "QmlRendererMenu" );
143
qmlRegisterType<QmlSubtitleMenu>( uri, versionMajor, versionMinor, "QmlSubtitleMenu" );
144
qmlRegisterType<QmlAudioMenu>( uri, versionMajor, versionMinor, "QmlAudioMenu" );
145
+
146
+ qmlRegisterModule(uri, versionMajor, versionMinor);
147
+ qmlProtectModule(uri, versionMajor);
148
+ }
149
+
150
+ {
151
+ const char* uri = "VLC.PlayerControls";
152
+ const int versionMajor = 1;
153
+ const int versionMinor = 0;
154
+
155
+ // @uri VLC.PlayerControls
156
+ qmlRegisterUncreatableType<ControlbarProfileModel>(uri, versionMajor, versionMinor, "ControlbarProfileModel", "");
157
+ qmlRegisterUncreatableType<ControlbarProfile>(uri, versionMajor, versionMinor, "ControlbarProfile", "");
158
+ qmlRegisterUncreatableType<PlayerControlbarModel>(uri, versionMajor, versionMinor, "PlayerControlbarModel", "");
159
+ qmlRegisterUncreatableType<ControlListModel>( uri, versionMajor, versionMinor, "ControlListModel", "" );
160
+ qmlRegisterType<ControlListFilter>(uri, versionMajor, versionMinor, "ControlListFilter");
161
+ qmlRegisterSingletonType(uri, versionMajor, versionMinor, "PlayerListModel", PlayerControlbarModel::getPlaylistIdentifierListModel);
162
+
163
+
164
+ qmlRegisterModule(uri, versionMajor, versionMinor);
165
+ qmlProtectModule(uri, versionMajor);
166
+ }
167
+
168
+ {
169
+ const char* uri = "VLC.Playlist";
170
+ const int versionMajor = 1;
171
+ const int versionMinor = 0;
172
+
173
+ // @uri VLC.Playlist
174
+ qmlRegisterUncreatableType<PlaylistItem>(uri, versionMajor, versionMinor, "PlaylistItem", "");
175
+ qmlRegisterType<PlaylistListModel>( uri, versionMajor, versionMinor, "PlaylistListModel" );
176
+ qmlRegisterType<PlaylistController>( uri, versionMajor, versionMinor, "PlaylistController" );
177
+ qmlRegisterType<PlaylistContextMenu>( uri, versionMajor, versionMinor, "PlaylistContextMenu" );
178
+ qmlRegisterSingletonType<PlaylistController>(uri, versionMajor, versionMinor, "MainPlaylistController", SingletonRegisterHelper<PlaylistController>::callback);
179
+
180
+ qmlRegisterModule(uri, versionMajor, versionMinor);
181
+ qmlProtectModule(uri, versionMajor);
182
+ }
183
+
184
+ {
185
+ const char* uri = "VLC.Network";
186
+ const int versionMajor = 1;
187
+ const int versionMinor = 0;
188
+
189
+ // @uri VLC.Network
190
+ qmlRegisterType<NetworkMediaModel>( uri, versionMajor, versionMinor, "NetworkMediaModel");
191
+ qmlRegisterType<NetworkDeviceModel>( uri, versionMajor, versionMinor, "NetworkDeviceModel");
192
+ qmlRegisterType<NetworkSourcesModel>( uri, versionMajor, versionMinor, "NetworkSourcesModel");
193
+ qmlRegisterType<ServicesDiscoveryModel>( uri, versionMajor, versionMinor, "ServicesDiscoveryModel");
194
+ qmlRegisterType<StandardPathModel>( uri, versionMajor, versionMinor, "StandardPathModel");
195
+ qmlRegisterType<MLFoldersModel>( uri, versionMajor, versionMinor, "MLFolderModel");
196
+
197
qmlRegisterType<NetworkMediaContextMenu>( uri, versionMajor, versionMinor, "NetworkMediaContextMenu" );
198
qmlRegisterType<NetworkDeviceContextMenu>( uri, versionMajor, versionMinor, "NetworkDeviceContextMenu" );
199
- qmlRegisterType<PlaylistContextMenu>( uri, versionMajor, versionMinor, "PlaylistContextMenu" );
200
201
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/maininterface/qml/BannerSources.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/maininterface/qml/BannerSources.qml
Changed
59
1
2
import QtQml.Models
3
import QtQuick.Window
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///playlist/" as PL
9
-import "qrc:///widgets/" as Widgets
10
-import "qrc:///menus/" as Menus
11
-import "qrc:///util/Helpers.js" as Helpers
12
+import VLC.MainInterface
13
+import VLC.Style
14
+import VLC.Playlist
15
+import VLC.Widgets as Widgets
16
+import VLC.Menus as Menus
17
+import VLC.Util
18
19
T.ToolBar {
20
id: root
21
22
23
// For now, used for d&d functionality
24
// Not strictly necessary to set
25
- property PL.PlaylistListView plListView: null
26
+ property PlaylistListView plListView: null
27
28
property bool _showCSD: MainCtx.clientSideDecoration && !(MainCtx.intfMainWindow.visibility === Window.FullScreen)
29
30
31
Loader {
32
anchors.fill: parent
33
active: root._showCSD
34
- source: "qrc:///widgets/CSDTitlebarTapNDrapHandler.qml"
35
+ source: "qrc:///qt/qml/VLC/Widgets/CSDTitlebarTapNDrapHandler.qml"
36
}
37
38
Column {
39
40
height: VLCStyle.globalToolbar_height
41
active: root._showCSD
42
source: VLCStyle.palette.hasCSDImage
43
- ? "qrc:///widgets/CSDThemeButtonSet.qml"
44
- : "qrc:///widgets/CSDWindowButtonSet.qml"
45
+ ? "qrc:///qt/qml/VLC/Widgets/CSDThemeButtonSet.qml"
46
+ : "qrc:///qt/qml/VLC/Widgets/CSDWindowButtonSet.qml"
47
}
48
}
49
50
51
52
onClicked: contextMenu.popup(this.mapToGlobal(0, height))
53
54
- QmlGlobalMenu {
55
+ Menus.QmlGlobalMenu {
56
id: contextMenu
57
ctx: MainCtx
58
}
59
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/maininterface/qml/MainDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/maininterface/qml/MainDisplay.qml
Changed
122
1
2
import QtQuick.Layouts
3
import Qt5Compat.GraphicalEffects
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///main/" as Main
9
-import "qrc:///widgets/" as Widgets
10
-import "qrc:///playlist/" as PL
11
-import "qrc:///player/" as P
12
+import VLC.Style
13
+import VLC.MainInterface
14
+import VLC.Widgets as Widgets
15
+import VLC.Playlist
16
+import VLC.Player
17
18
-import "qrc:///util/" as Util
19
-import "qrc:///util/Helpers.js" as Helpers
20
-import "qrc:///dialogs/" as DG
21
+import VLC.Util
22
+import VLC.Dialogs
23
24
FocusScope {
25
id: g_mainDisplay
26
27
displayText: qsTr("Video"),
28
icon: VLCIcons.topbar_video,
29
name: "video",
30
- url: "qrc:///medialibrary/VideoDisplay.qml"
31
+ url: "qrc:///qt/qml/VLC/MediaLibrary/VideoDisplay.qml"
32
}, {
33
listed: MainCtx.mediaLibraryAvailable,
34
displayText: qsTr("Music"),
35
icon: VLCIcons.topbar_music,
36
name: "music",
37
- url: "qrc:///medialibrary/MusicDisplay.qml"
38
+ url: "qrc:///qt/qml/VLC/MediaLibrary/MusicDisplay.qml"
39
}, {
40
listed: !MainCtx.mediaLibraryAvailable,
41
displayText: qsTr("Home"),
42
icon: VLCIcons.home,
43
name: "home",
44
- url: "qrc:///main/NoMedialibHome.qml"
45
+ url: "qrc:///qt/qml/VLC/MainInterface/NoMedialibHome.qml"
46
}, {
47
listed: true,
48
displayText: qsTr("Browse"),
49
icon: VLCIcons.topbar_network,
50
name: "network",
51
- url: "qrc:///network/BrowseDisplay.qml"
52
+ url: "qrc:///qt/qml/VLC/Network/BrowseDisplay.qml"
53
}, {
54
listed: true,
55
displayText: qsTr("Discover"),
56
icon: VLCIcons.topbar_discover,
57
name: "discover",
58
- url: "qrc:///network/DiscoverDisplay.qml"
59
+ url: "qrc:///qt/qml/VLC/Network/DiscoverDisplay.qml"
60
}, {
61
listed: false,
62
name: "mlsettings",
63
- url: "qrc:///medialibrary/MLFoldersSettings.qml"
64
+ url: "qrc:///qt/qml/VLC/MediaLibrary/MLFoldersSettings.qml"
65
}
66
67
68
69
Navigation.parentItem: g_mainDisplay
70
71
/* Source selection*/
72
- Main.BannerSources {
73
+ BannerSources {
74
id: sourcesBanner
75
z: 2
76
Layout.preferredHeight: height
77
78
}
79
}
80
81
- sourceComponent: PL.PlaylistListView {
82
+ sourceComponent: PlaylistListView {
83
id: playlist
84
85
implicitWidth: VLCStyle.isScreenSmall
86
87
88
height: active ? implicitHeight : 0
89
90
- source: "qrc:///widgets/ScanProgressBar.qml"
91
+ source: "qrc:///qt/qml/VLC/Widgets/ScanProgressBar.qml"
92
93
onLoaded: {
94
item.background.visible = Qt.binding(function() { return !stackViewParent.layer.enabled })
95
96
}
97
}
98
99
- P.PIPPlayer {
100
+ PIPPlayer {
101
id: playerPip
102
anchors {
103
bottom: miniPlayer.top
104
105
}
106
}
107
108
- DG.Dialogs {
109
+ Dialogs {
110
z: 10
111
bgContent: g_mainDisplay
112
113
114
}
115
}
116
117
- P.MiniPlayer {
118
+ MiniPlayer {
119
id: miniPlayer
120
121
anchors.left: parent.left
122
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/maininterface/qml/MainGridView.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/maininterface/qml/MainGridView.qml
Changed
10
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import "qrc:///widgets/" as Widgets
6
+import VLC.Widgets as Widgets
7
8
Widgets.ExpandGridView {
9
id: root
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/maininterface/qml/MainInterface.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/maininterface/qml/MainInterface.qml
Changed
138
1
2
import QtQuick.Window
3
import Qt5Compat.GraphicalEffects
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
-import "qrc:///util/" as Util
10
-import "qrc:///playlist/" as PL
11
+import VLC.MainInterface
12
+import VLC.Widgets as Widgets
13
+import VLC.Style
14
+import VLC.Util
15
+import VLC.Playlist
16
+import VLC.Player
17
18
Item {
19
id: root
20
21
&& (MainCtx.intfMainWindow.visibility === Window.Windowed)
22
23
readonly property var _pageModel:
24
- { name: "mc", url: "qrc:///main/MainDisplay.qml" },
25
- { name: "player", url:"qrc:///player/Player.qml" },
26
+ { name: "mc", url: "qrc:///qt/qml/VLC/MainInterface/MainDisplay.qml" },
27
+ { name: "player", url:"qrc:///qt/qml/VLC/Player/Player.qml" },
28
29
30
property var _oldHistoryPath: ()
31
32
_oldHistoryPath = History.viewPath
33
}
34
35
- Util.ModelSortSettingHandler {
36
+ ModelSortSettingHandler {
37
id: contextSaver
38
}
39
40
41
id: playlistWindowLoader
42
asynchronous: true
43
active: !MainCtx.playlistDocked
44
- source: "qrc:///playlist/PlaylistDetachedWindow.qml"
45
+ source: "qrc:///qt/qml/VLC/Playlist/PlaylistDetachedWindow.qml"
46
}
47
48
Connections {
49
50
setInitialView()
51
}
52
53
-
54
DropArea {
55
anchors.fill: parent
56
+ z: -1
57
58
onEntered: (drag) => {
59
// Do not handle internal drag here:
60
if (!drag.source) {
61
// Foreign drag, check if valid:
62
- if (drop.hasUrls || drop.hasText) {
63
+ if (drag.hasUrls || drag.hasText) {
64
drag.accepted = true
65
return
66
}
67
68
69
if (urls.length > 0) {
70
/* D&D of a subtitles file, add it on the fly */
71
- if (Player.isPlaying && urls.length == 1) {
72
+ if (Player.isStarted && urls.length == 1) {
73
if (Player.associateSubtitleFile(urls0)) {
74
drop.accept()
75
return
76
77
drop.accept()
78
}
79
}
80
+ }
81
82
- Widgets.PageLoader {
83
- id: stackView
84
- anchors.fill: parent
85
- focus: true
86
- clip: _extendedFrameVisible
87
-
88
- pageModel: _pageModel
89
-
90
- Connections {
91
- target: Player
92
- function onPlayingStateChanged() {
93
- if (Player.playingState === Player.PLAYING_STATE_STOPPED
94
- && History.match(History.viewPath, "player") ) {
95
- if (History.previousEmpty)
96
- _pushHome()
97
- else
98
- History.previous()
99
- }
100
+ Widgets.PageLoader {
101
+ id: stackView
102
+ anchors.fill: parent
103
+ focus: true
104
+ clip: _extendedFrameVisible
105
+
106
+ pageModel: _pageModel
107
+
108
+ Connections {
109
+ target: Player
110
+ function onPlayingStateChanged() {
111
+ if (Player.playingState === Player.PLAYING_STATE_STOPPED
112
+ && History.match(History.viewPath, "player") ) {
113
+ if (History.previousEmpty)
114
+ _pushHome()
115
+ else
116
+ History.previous()
117
}
118
}
119
}
120
121
122
Loader {
123
asynchronous: true
124
- source: "qrc:///menus/GlobalShortcuts.qml"
125
+ source: "qrc:///qt/qml/VLC/Menus/GlobalShortcuts.qml"
126
}
127
128
MouseArea {
129
130
}
131
Component.onCompleted: {
132
setSource(
133
- "qrc:///widgets/CSDMouseStealer.qml", {
134
+ "qrc:///qt/qml/VLC/Widgets/CSDMouseStealer.qml", {
135
target: g_mainInterface,
136
anchorInside: Qt.binding(() => !_extendedFrameVisible)
137
})
138
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/maininterface/qml/MainTableView.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/maininterface/qml/MainTableView.qml
Changed
12
1
2
3
import QtQuick
4
5
-import "qrc:///widgets/" as Widgets
6
-import "qrc:///style/"
7
+import VLC.Widgets as Widgets
8
+import VLC.Style
9
10
Widgets.KeyNavigableTableView {
11
id: root
12
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/maininterface/qml/MainViewLoader.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/maininterface/qml/MainViewLoader.qml
Changed
18
1
2
import QtQuick
3
import QtQml.Models
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///util/" as Util
9
-import "qrc:///util/Helpers.js" as Helpers
10
11
+import VLC.MainInterface
12
+import VLC.Widgets as Widgets
13
+import VLC.Util
14
+import VLC.Style
15
16
Widgets.StackViewExt {
17
id: root
18
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/maininterface/qml/NoMedialibHome.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/maininterface/qml/NoMedialibHome.qml
Changed
16
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
+import VLC.MainInterface
10
+import VLC.Style
11
+import VLC.Widgets as Widgets
12
+import VLC.Dialogs
13
14
FocusScope {
15
id: root
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/ArtistTopBanner.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/ArtistTopBanner.qml
Changed
29
1
2
import QtQml.Models
3
import Qt5Compat.GraphicalEffects
4
5
-import org.videolan.medialib 0.1
6
-import org.videolan.controls 0.1
7
-import org.videolan.vlc 0.1
8
+import VLC.MainInterface
9
+import VLC.MediaLibrary
10
11
-import "qrc:///widgets/" as Widgets
12
-import "qrc:///style/"
13
-import "qrc:///util/Helpers.js" as Helpers
14
+import VLC.Widgets as Widgets
15
+import VLC.Style
16
+import VLC.Util
17
18
FocusScope {
19
id: root
20
21
implicitHeight: VLCStyle.cover_normal
22
implicitWidth: VLCStyle.cover_normal
23
24
- RoundImage {
25
+ Widgets.RoundImage {
26
source: artist.cover || VLCStyle.noArtArtist
27
sourceSize.width: width
28
sourceSize.height: height
29
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/AudioGridItem.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/AudioGridItem.qml
Changed
18
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-import org.videolan.medialib 0.1
7
+import VLC.MediaLibrary
8
9
-import "qrc:///widgets/" as Widgets
10
-import "qrc:///style/"
11
-import "qrc:///util/Helpers.js" as Helpers
12
+import VLC.Widgets as Widgets
13
+import VLC.Style
14
+import VLC.Util
15
16
Widgets.GridItem {
17
property var model: ({})
18
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/MediaGroupDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/MediaGroupDisplay.qml
Changed
28
1
2
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-import org.videolan.medialib 0.1
7
+import VLC.MainInterface
8
+import VLC.MediaLibrary
9
10
-import "qrc:///widgets/" as Widgets
11
-import "qrc:///util/" as Util
12
-import "qrc:///style/"
13
+import VLC.Widgets as Widgets
14
+import VLC.Util
15
+import VLC.Style
16
17
VideoAll {
18
id: root
19
20
ml: MediaLib
21
}
22
23
- contextMenu: Util.MLContextMenu { model: modelVideo; showPlayAsAudioAction: true }
24
+ contextMenu: MLContextMenu { model: modelVideo; showPlayAsAudioAction: true }
25
26
header: Widgets.ViewHeader {
27
view: root
28
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/MusicAlbums.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/MusicAlbums.qml
Changed
42
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.medialib 0.1
6
-import org.videolan.vlc 0.1
7
+import VLC.MediaLibrary
8
9
-import "qrc:///util/" as Util
10
-import "qrc:///widgets/" as Widgets
11
-import "qrc:///main/" as MainInterface
12
-import "qrc:///util/Helpers.js" as Helpers
13
-import "qrc:///style/"
14
+import VLC.Util
15
+import VLC.Widgets as Widgets
16
+import VLC.MainInterface
17
+import VLC.Style
18
19
-MainInterface.MainViewLoader {
20
+MainViewLoader {
21
id: root
22
23
// Properties
24
25
defaultCover: VLCStyle.noArtAlbumCover
26
}
27
28
- Util.MLContextMenu {
29
+ MLContextMenu {
30
id: contextMenu
31
32
model: albumModelId
33
34
Component {
35
id: tableComponent
36
37
- MainInterface.MainTableView {
38
+ MainTableView {
39
id: tableView_id
40
41
property var _modelSmall: {
42
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/MusicAlbumsDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/MusicAlbumsDisplay.qml
Changed
15
1
2
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
+import VLC.MainInterface
10
+import VLC.Style
11
+import VLC.Widgets as Widgets
12
13
MusicAlbums {
14
id: root
15
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/MusicAlbumsGridExpandDelegate.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/MusicAlbumsGridExpandDelegate.qml
Changed
38
1
2
import QtQuick.Layouts
3
import QtQml.Models
4
5
-import org.videolan.medialib 0.1
6
-import org.videolan.controls 0.1
7
-import org.videolan.vlc 0.1
8
+import VLC.MainInterface
9
+import VLC.MediaLibrary
10
11
-import "qrc:///widgets/" as Widgets
12
-import "qrc:///util/Helpers.js" as Helpers
13
-import "qrc:///style/"
14
+import VLC.Widgets as Widgets
15
+import VLC.Util
16
+import VLC.Style
17
18
FocusScope {
19
id: root
20
21
Component {
22
id: cover
23
24
- RoundImage {
25
+ Widgets.RoundImage {
26
id: expand_cover_id
27
28
property int cover_height: parent.cover_height
29
30
31
sourceItem: parent
32
33
- visible: (parent.status === RoundImage.Ready)
34
+ visible: (parent.status === Widgets.RoundImage.Ready)
35
}
36
}
37
}
38
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/MusicAllArtists.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/MusicAllArtists.qml
Changed
60
1
2
3
import QtQuick
4
5
-import org.videolan.medialib 0.1
6
-import org.videolan.vlc 0.1
7
+import VLC.MediaLibrary
8
9
-import "qrc:///util/" as Util
10
-import "qrc:///widgets/" as Widgets
11
-import "qrc:///main/" as MainInterface
12
-import "qrc:///util/Helpers.js" as Helpers
13
-import "qrc:///style/"
14
+import VLC.Util
15
+import VLC.Widgets as Widgets
16
+import VLC.MainInterface
17
+import VLC.Style
18
19
-MainInterface.MainViewLoader {
20
+MainViewLoader {
21
id: root
22
23
// Properties
24
25
readonly property int currentIndex: currentItem?.currentIndex ?? - 1
26
27
property Component header: null
28
-
29
+
30
readonly property int contentLeftMargin: currentItem?.contentLeftMargin ?? 0
31
readonly property int contentRightMargin: currentItem?.contentRightMargin ?? 0
32
33
34
list: tableComponent
35
emptyLabel: emptyLabelComponent
36
37
- Util.MLContextMenu {
38
+ MLContextMenu {
39
id: contextMenu
40
41
model: artistModel
42
43
basePictureWidth: VLCStyle.gridCover_music_width
44
basePictureHeight: VLCStyle.gridCover_music_height
45
titleTopMargin: VLCStyle.gridItemTitle_topMargin + VLCStyle.margin_xxsmall
46
-
47
+
48
selectionModel: root.selectionModel
49
model: artistModel
50
focus: true
51
52
Component {
53
id: tableComponent
54
55
- MainInterface.MainTableView {
56
+ MainTableView {
57
id: artistTable
58
59
property var _modelSmall: {
60
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/MusicArtist.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/MusicArtist.qml
Changed
55
1
2
import QtQml.Models
3
import QtQuick.Layouts
4
5
-import org.videolan.medialib 0.1
6
-import org.videolan.vlc 0.1
7
+import VLC.MediaLibrary
8
9
-import "qrc:///util/" as Util
10
-import "qrc:///util/Helpers.js" as Helpers
11
-import "qrc:///widgets/" as Widgets
12
-import "qrc:///main/" as MainInterface
13
-import "qrc:///style/"
14
+import VLC.Util
15
+import VLC.Widgets as Widgets
16
+import VLC.MainInterface
17
+import VLC.Style
18
19
FocusScope {
20
id: root
21
22
root.setCurrentItemFocus(Qt.TabFocusReason);
23
}
24
25
- Util.GridSizeHelper {
26
+ GridSizeHelper {
27
id: gridHelper
28
29
availableWidth: albumsList.width
30
31
parentId: albumModel.parentId
32
}
33
34
- Util.MLContextMenu {
35
+ MLContextMenu {
36
id: contextMenu
37
38
model: albumModel
39
}
40
41
- Util.MLContextMenu {
42
+ MLContextMenu {
43
id: trackContextMenu
44
45
model: trackModel
46
47
Component {
48
id: tableComponent
49
50
- MainInterface.MainTableView {
51
+ MainTableView {
52
id: tableView_id
53
54
model: trackModel
55
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/MusicArtistDelegate.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/MusicArtistDelegate.qml
Changed
27
1
2
import QtQuick.Layouts
3
import QtQml.Models
4
5
-import org.videolan.medialib 0.1
6
-import org.videolan.controls 0.1
7
-import org.videolan.vlc 0.1
8
+import VLC.MediaLibrary
9
10
-import "qrc:///widgets/" as Widgets
11
-import "qrc:///style/"
12
+import VLC.Widgets as Widgets
13
+import VLC.Style
14
+import VLC.Util
15
16
T.ItemDelegate {
17
id: root
18
19
contentItem: RowLayout {
20
spacing: VLCStyle.margin_xsmall
21
22
- RoundImage {
23
+ Widgets.RoundImage {
24
implicitWidth: VLCStyle.play_cover_small
25
implicitHeight: VLCStyle.play_cover_small
26
Layout.fillHeight: true
27
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/MusicArtistsAlbums.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/MusicArtistsAlbums.qml
Changed
23
1
2
import QtQml.Models
3
import QtQuick.Layouts
4
5
-import org.videolan.medialib 0.1
6
-import org.videolan.controls 0.1
7
-import org.videolan.vlc 0.1
8
-
9
-import "qrc:///util/" as Util
10
-import "qrc:///util/Helpers.js" as Helpers
11
-import "qrc:///widgets/" as Widgets
12
-import "qrc:///main/" as MainInterface
13
-import "qrc:///style/"
14
+import VLC.MainInterface
15
+import VLC.MediaLibrary
16
+
17
+import VLC.Util
18
+import VLC.Widgets as Widgets
19
+import VLC.Style
20
21
FocusScope {
22
id: root
23
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/MusicArtistsDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/MusicArtistsDisplay.qml
Changed
20
1
2
import QtQml.Models
3
import QtQuick.Layouts
4
5
-import org.videolan.medialib 0.1
6
-import org.videolan.vlc 0.1
7
+import VLC.MediaLibrary
8
9
-import "qrc:///util/" as Util
10
-import "qrc:///widgets/" as Widgets
11
-import "qrc:///main/" as MainInterface
12
-import "qrc:///style/"
13
+import VLC.Util
14
+import VLC.Widgets as Widgets
15
+import VLC.MainInterface
16
+import VLC.Style
17
18
19
Widgets.PageLoader {
20
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/MusicDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/MusicDisplay.qml
Changed
46
1
2
import QtQuick.Controls
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
-import org.videolan.medialib 0.1
7
+import VLC.MainInterface
8
+import VLC.MediaLibrary
9
10
-import "qrc:///widgets/" as Widgets
11
-import "qrc:///style/"
12
+import VLC.Widgets as Widgets
13
+import VLC.Style
14
15
16
Widgets.PageLoader {
17
18
displayText: qsTr("Artists"),
19
name: "artists",
20
default: true,
21
- url: "qrc:///medialibrary/MusicArtistsDisplay.qml"
22
+ url: "qrc:///qt/qml/VLC/MediaLibrary/MusicArtistsDisplay.qml"
23
}, {
24
displayText: qsTr("Albums"),
25
name: "albums",
26
- url: "qrc:///medialibrary/MusicAlbumsDisplay.qml"
27
+ url: "qrc:///qt/qml/VLC/MediaLibrary/MusicAlbumsDisplay.qml"
28
}, {
29
displayText: qsTr("Tracks"),
30
name: "tracks" ,
31
- url: "qrc:///medialibrary/MusicTracksDisplay.qml"
32
+ url: "qrc:///qt/qml/VLC/MediaLibrary/MusicTracksDisplay.qml"
33
}, {
34
displayText: qsTr("Genres"),
35
name: "genres" ,
36
- url: "qrc:///medialibrary/MusicGenresDisplay.qml"
37
+ url: "qrc:///qt/qml/VLC/MediaLibrary/MusicGenresDisplay.qml"
38
}, {
39
displayText: qsTr("Playlists"),
40
name: "playlists" ,
41
- url: "qrc:///medialibrary/MusicPlaylistsDisplay.qml"
42
+ url: "qrc:///qt/qml/VLC/MediaLibrary/MusicPlaylistsDisplay.qml"
43
}
44
45
46
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/MusicGenres.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/MusicGenres.qml
Changed
51
1
2
import QtQuick.Templates as T
3
import QtQml.Models
4
5
-import org.videolan.vlc 0.1
6
-import org.videolan.medialib 0.1
7
+import VLC.MediaLibrary
8
9
-import "qrc:///util/" as Util
10
-import "qrc:///widgets/" as Widgets
11
-import "qrc:///main/" as MainInterface
12
-import "qrc:///util/Helpers.js" as Helpers
13
-import "qrc:///style/"
14
+import VLC.Util
15
+import VLC.Widgets as Widgets
16
+import VLC.MainInterface
17
+import VLC.Style
18
19
-MainInterface.MainViewLoader {
20
+MainViewLoader {
21
id: root
22
23
// Properties
24
25
}
26
}
27
28
- Util.MLContextMenu {
29
+ MLContextMenu {
30
id: contextMenu
31
32
model: genreModel
33
34
id: gridComponent
35
Widgets.ExpandGridItemView {
36
id: gridView_id
37
-
38
+
39
basePictureWidth: VLCStyle.gridCover_video_width
40
basePictureHeight: VLCStyle.gridCover_video_width / 2
41
titleHeight: 0
42
43
Component {
44
id: tableComponent
45
/* Table View */
46
- MainInterface.MainTableView {
47
+ MainTableView {
48
id: tableView_id
49
50
property var _modelSmall: {
51
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/MusicGenresDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/MusicGenresDisplay.qml
Changed
19
1
2
import QtQuick
3
import QtQuick.Controls
4
import QtQml.Models
5
-import org.videolan.vlc 0.1
6
-import org.videolan.medialib 0.1
7
+import VLC.MainInterface
8
+import VLC.MediaLibrary
9
10
-import "qrc:///util/" as Util
11
-import "qrc:///widgets/" as Widgets
12
-import "qrc:///style/"
13
+import VLC.Util
14
+import VLC.Widgets as Widgets
15
+import VLC.Style
16
17
Widgets.PageLoader {
18
id: root
19
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/MusicPlaylistsDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/MusicPlaylistsDisplay.qml
Changed
17
1
2
import QtQuick.Layouts
3
import QtQml.Models
4
5
-import org.videolan.vlc 0.1
6
-import org.videolan.medialib 0.1
7
+import VLC.MainInterface
8
+import VLC.MediaLibrary
9
10
-import "qrc:///widgets/" as Widgets
11
-import "qrc:///style/"
12
+import VLC.Widgets as Widgets
13
+import VLC.Style
14
15
Widgets.PageLoader {
16
id: root
17
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/MusicTrackListDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/MusicTrackListDisplay.qml
Changed
27
1
2
import QtQml.Models
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
-import org.videolan.medialib 0.1
7
+import VLC.MediaLibrary
8
9
-import "qrc:///util/" as Util
10
-import "qrc:///widgets/" as Widgets
11
-import "qrc:///style/"
12
+import VLC.Util
13
+import VLC.Widgets as Widgets
14
+import VLC.Style
15
16
Widgets.KeyNavigableTableView {
17
id: root
18
19
}
20
}
21
22
- Util.MLContextMenu {
23
+ MLContextMenu {
24
id: contextMenu
25
26
model: rootmodel
27
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/MusicTracksDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/MusicTracksDisplay.qml
Changed
18
1
2
*****************************************************************************/
3
import QtQuick
4
import QtQuick.Controls
5
-import org.videolan.medialib 0.1
6
-import org.videolan.vlc 0.1
7
+import VLC.MainInterface
8
+import VLC.MediaLibrary
9
10
-import "qrc:///style/"
11
-import "qrc:///widgets/" as Widgets
12
-import "qrc:///main/" as MainInterface
13
+import VLC.Style
14
+import VLC.Widgets as Widgets
15
16
FocusScope {
17
id: root
18
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/PlaylistMedia.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/PlaylistMedia.qml
Changed
23
1
2
import QtQuick.Controls
3
import QtQml.Models
4
5
-import org.videolan.vlc 0.1
6
-import org.videolan.medialib 0.1
7
+import VLC.MediaLibrary
8
9
-import "qrc:///widgets/" as Widgets
10
-import "qrc:///main/" as MainInterface
11
-import "qrc:///util/Helpers.js" as Helpers
12
-import "qrc:///style/"
13
+import VLC.Widgets as Widgets
14
+import VLC.MainInterface
15
+import VLC.Util
16
+import VLC.Style
17
18
-MainInterface.MainTableView {
19
+MainTableView {
20
id: root
21
22
//---------------------------------------------------------------------------------------------
23
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/PlaylistMediaDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/PlaylistMediaDisplay.qml
Changed
20
1
2
import QtQuick.Layouts
3
import QtQml.Models
4
5
-import org.videolan.medialib 0.1
6
-import org.videolan.vlc 0.1
7
+import VLC.MainInterface
8
+import VLC.MediaLibrary
9
10
-import "qrc:///widgets/" as Widgets
11
-import "qrc:///main/" as MainInterface
12
-import "qrc:///util/" as Util
13
-import "qrc:///style/"
14
+import VLC.Widgets as Widgets
15
+import VLC.Util
16
+import VLC.Style
17
18
FocusScope {
19
id: root
20
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/PlaylistMediaList.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/PlaylistMediaList.qml
Changed
43
1
2
import QtQuick.Layouts
3
import QtQml.Models
4
5
-import org.videolan.medialib 0.1
6
-import org.videolan.vlc 0.1
7
+import VLC.MediaLibrary
8
9
-import "qrc:///widgets/" as Widgets
10
-import "qrc:///main/" as MainInterface
11
-import "qrc:///util/" as Util
12
-import "qrc:///util/Helpers.js" as Helpers
13
-import "qrc:///style/"
14
+import VLC.Widgets as Widgets
15
+import VLC.MainInterface
16
+import VLC.Util
17
+import VLC.Style
18
+import VLC.Dialogs
19
20
-MainInterface.MainViewLoader {
21
+MainViewLoader {
22
id: root
23
24
//---------------------------------------------------------------------------------------------
25
26
readonly property int currentIndex: currentItem?.currentIndex ?? -1
27
28
property Component header: null
29
-
30
+
31
readonly property int contentLeftMargin: currentItem?.contentLeftMargin ?? 0
32
readonly property int contentRightMargin: currentItem?.contentRightMargin ?? 0
33
34
35
Component {
36
id: table
37
38
- MainInterface.MainTableView {
39
+ MainTableView {
40
id: tableView
41
42
//-------------------------------------------------------------------------------------
43
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/UrlListDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/UrlListDisplay.qml
Changed
27
1
2
import QtQuick.Controls
3
import QtQml.Models
4
5
-import org.videolan.vlc 0.1
6
-import org.videolan.medialib 0.1
7
+import VLC.MediaLibrary
8
9
-import "qrc:///util" as Util
10
-import "qrc:///widgets/" as Widgets
11
-import "qrc:///style/"
12
+import VLC.Util
13
+import VLC.Widgets as Widgets
14
+import VLC.Style
15
16
17
Widgets.KeyNavigableTableView {
18
19
ml: MediaLib
20
}
21
22
- Util.MLContextMenu {
23
+ MLContextMenu {
24
id: contextMenu
25
26
model: urlModel
27
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/VideoAll.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/VideoAll.qml
Changed
33
1
2
import QtQuick.Layouts
3
import QtQml.Models
4
5
-import org.videolan.medialib 0.1
6
-import org.videolan.vlc 0.1
7
+import VLC.MediaLibrary
8
9
-import "qrc:///widgets/" as Widgets
10
-import "qrc:///main/" as MainInterface
11
-import "qrc:///util/" as Util
12
-import "qrc:///util/Helpers.js" as Helpers
13
-import "qrc:///style/"
14
+import VLC.Widgets as Widgets
15
+import VLC.MainInterface
16
+import VLC.Util
17
+import VLC.Style
18
19
-MainInterface.MainViewLoader {
20
+MainViewLoader {
21
id: root
22
23
// Properties
24
25
required property string sectionProperty
26
27
// NOTE: The ContextMenu depends on the model so we have to provide it too.
28
- required property Util.MLContextMenu contextMenu
29
+ required property MLContextMenu contextMenu
30
31
// function(model) -> strings....
32
// used to get grid labels per model item
33
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/VideoAllDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/VideoAllDisplay.qml
Changed
17
1
2
import QtQuick.Layouts
3
import QtQml.Models
4
5
-import org.videolan.vlc 0.1
6
-import org.videolan.medialib 0.1
7
+import VLC.MainInterface
8
+import VLC.MediaLibrary
9
10
-import "qrc:///widgets/" as Widgets
11
-import "qrc:///style/"
12
+import VLC.Widgets as Widgets
13
+import VLC.Style
14
15
Widgets.PageLoader {
16
id: root
17
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/VideoAllSubDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/VideoAllSubDisplay.qml
Changed
30
1
2
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-import org.videolan.medialib 0.1
7
+import VLC.MainInterface
8
+import VLC.MediaLibrary
9
10
-import "qrc:///widgets/" as Widgets
11
-import "qrc:///util/" as Util
12
-import "qrc:///util/Helpers.js" as Helpers
13
-import "qrc:///style/"
14
+import VLC.Widgets as Widgets
15
+import VLC.Util
16
+import VLC.Style
17
+import VLC.Menus
18
19
VideoAll {
20
id: root
21
22
23
model: _meta?.model ?? null
24
25
- contextMenu: Util.MLContextMenu { model: _meta ? _meta.model : null; showPlayAsAudioAction: true }
26
+ contextMenu: MLContextMenu { model: _meta ? _meta.model : null; showPlayAsAudioAction: true }
27
28
gridLabels: _meta?.gridLabels ?? root.getLabel
29
30
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/VideoDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/VideoDisplay.qml
Changed
31
1
2
import QtQuick.Layouts
3
import QtQml.Models
4
5
-import org.videolan.vlc 0.1
6
-import org.videolan.medialib 0.1
7
+import VLC.MainInterface
8
+import VLC.MediaLibrary
9
10
-import "qrc:///widgets/" as Widgets
11
-import "qrc:///style/"
12
+import VLC.Widgets as Widgets
13
+import VLC.Style
14
15
Widgets.PageLoader {
16
id: root
17
18
name: "all",
19
default: true,
20
displayText: qsTr("All"),
21
- url: "qrc:///medialibrary/VideoAllDisplay.qml"
22
+ url: "qrc:///qt/qml/VLC/MediaLibrary/VideoAllDisplay.qml"
23
},{
24
name: "playlists",
25
displayText: qsTr("Playlists"),
26
- url: "qrc:///medialibrary/VideoPlaylistsDisplay.qml"
27
+ url: "qrc:///qt/qml/VLC/MediaLibrary/VideoPlaylistsDisplay.qml"
28
}
29
30
31
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/VideoGridDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/VideoGridDisplay.qml
Changed
28
1
2
import QtQuick.Controls
3
import QtQml.Models
4
5
-import org.videolan.vlc 0.1
6
-import org.videolan.medialib 0.1
7
+import VLC.MediaLibrary
8
9
-import "qrc:///util" as Util
10
-import "qrc:///widgets/" as Widgets
11
-import "qrc:///style/"
12
+import VLC.MainInterface
13
+import VLC.Util
14
+import VLC.Widgets as Widgets
15
+import VLC.Style
16
17
Widgets.ExpandGridItemView {
18
id: gridView
19
20
// Properties
21
22
property Widgets.MLDragItem dragItem
23
- property Util.MLContextMenu contextMenu
24
+ property MLContextMenu contextMenu
25
property var labels
26
27
// Signals
28
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/VideoGridItem.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/VideoGridItem.qml
Changed
19
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-import org.videolan.medialib 0.1
7
+import VLC.MainInterface
8
+import VLC.MediaLibrary
9
10
-import "qrc:///widgets/" as Widgets
11
-import "qrc:///util/Helpers.js" as Helpers
12
-import "qrc:///style/"
13
+import VLC.Widgets as Widgets
14
+import VLC.Util
15
+import VLC.Style
16
17
Widgets.GridItem {
18
id: root
19
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/VideoInfoExpandPanel.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/VideoInfoExpandPanel.qml
Changed
39
1
2
import QtQml.Models
3
import QtQuick.Layouts
4
5
-import org.videolan.medialib 0.1
6
-import org.videolan.controls 0.1
7
+import VLC.MainInterface
8
+import VLC.MediaLibrary
9
10
-import org.videolan.vlc 0.1
11
-
12
-import "qrc:///widgets/" as Widgets
13
-import "qrc:///util/Helpers.js" as Helpers
14
-import "qrc:///style/"
15
+import VLC.Widgets as Widgets
16
+import VLC.Util
17
+import VLC.Style
18
19
FocusScope {
20
id: root
21
22
width: VLCStyle.gridCover_video_width
23
24
/* A bigger cover for the album */
25
- RoundImage {
26
+ Widgets.RoundImage {
27
id: expand_cover_id
28
29
anchors.fill: parent
30
31
32
sourceItem: parent
33
34
- visible: (parent.status === RoundImage.Ready)
35
+ visible: (parent.status === Widgets.RoundImage.Ready)
36
}
37
}
38
}
39
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/VideoListDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/VideoListDisplay.qml
Changed
23
1
2
import QtQuick.Controls
3
import QtQml.Models
4
5
-import org.videolan.vlc 0.1
6
-import org.videolan.medialib 0.1
7
+import VLC.MediaLibrary
8
9
-import "qrc:///util" as Util
10
-import "qrc:///widgets/" as Widgets
11
-import "qrc:///main/" as MainInterface
12
-import "qrc:///style/"
13
+import VLC.Util
14
+import VLC.Widgets as Widgets
15
+import VLC.MainInterface
16
+import VLC.Style
17
18
-MainInterface.MainTableView {
19
+MainTableView {
20
id: listView_id
21
22
//---------------------------------------------------------------------------------------------
23
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/VideoPlaylistsDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/VideoPlaylistsDisplay.qml
Changed
17
1
2
import QtQuick.Layouts
3
import QtQml.Models
4
5
-import org.videolan.vlc 0.1
6
-import org.videolan.medialib 0.1
7
+import VLC.MainInterface
8
+import VLC.MediaLibrary
9
10
-import "qrc:///widgets/" as Widgets
11
-import "qrc:///style/"
12
+import VLC.Widgets as Widgets
13
+import VLC.Style
14
15
Widgets.PageLoader {
16
id: root
17
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/VideoRecentVideos.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/VideoRecentVideos.qml
Changed
29
1
2
import QtQuick.Layouts
3
import QtQml.Models
4
5
-import org.videolan.medialib 0.1
6
-import org.videolan.vlc 0.1
7
+import VLC.MainInterface
8
+import VLC.MediaLibrary
9
10
-import "qrc:///widgets/" as Widgets
11
-import "qrc:///util/" as Util
12
-import "qrc:///util/Helpers.js" as Helpers
13
-import "qrc:///style/"
14
+import VLC.Widgets as Widgets
15
+import VLC.Util
16
+import VLC.Style
17
18
FocusScope {
19
id: root
20
21
22
sortModel:
23
24
- contextMenu: Util.MLContextMenu {
25
+ contextMenu: MLContextMenu {
26
model: recentModel
27
28
showPlayAsAudioAction: true
29
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/medialibrary/qml/VideoRecentVideosDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/medialibrary/qml/VideoRecentVideosDisplay.qml
Changed
29
1
2
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-import org.videolan.medialib 0.1
7
+import VLC.MediaLibrary
8
9
-import "qrc:///widgets/" as Widgets
10
-import "qrc:///style/"
11
-import "qrc:///util/" as Util
12
-import "qrc:///main/" as MainInterface
13
+import VLC.Widgets as Widgets
14
+import VLC.Style
15
+import VLC.Util
16
+import VLC.MainInterface
17
18
VideoAll {
19
id: root
20
21
ml: MediaLib
22
}
23
24
- contextMenu: Util.MLContextMenu { model: recentModel; showPlayAsAudioAction: true }
25
+ contextMenu: MLContextMenu { model: recentModel; showPlayAsAudioAction: true }
26
27
header: Widgets.ViewHeader {
28
view: root
29
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/menus/menus.cpp -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/menus/menus.cpp
Changed
9
1
2
current->addMenu( new CheckableListMenu(qtr( "&Zoom" ), THEMIM->getZoom(), CheckableListMenu::GROUPED_EXLUSIVE, current) );
3
current->addMenu( new CheckableListMenu(qtr( "&Aspect Ratio" ), THEMIM->getAspectRatio(), CheckableListMenu::GROUPED_EXLUSIVE, current) );
4
current->addMenu( new CheckableListMenu(qtr( "&Crop" ), THEMIM->getCrop(), CheckableListMenu::GROUPED_EXLUSIVE, current) );
5
+ current->addMenu( new CheckableListMenu(qtr( "&Fit" ), THEMIM->getFit(), CheckableListMenu::GROUPED_EXLUSIVE, current) );
6
7
current->addSeparator();
8
/* Rendering modifiers */
9
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/menus/qml/GlobalShortcuts.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/menus/qml/GlobalShortcuts.qml
Changed
19
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
+import VLC.MainInterface
7
+import VLC.Dialogs
8
9
Item {
10
11
12
13
Loader {
14
active: MainCtx.mediaLibraryAvailable
15
- source: "qrc:///menus/GlobalShortcutsMedialib.qml"
16
+ source: "qrc:///qt/qml/VLC/Menus/GlobalShortcutsMedialib.qml"
17
}
18
}
19
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/menus/qml/GlobalShortcutsMedialib.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/menus/qml/GlobalShortcutsMedialib.qml
Changed
12
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-import org.videolan.medialib 0.1
7
+import VLC.MediaLibrary
8
+import VLC.Dialogs
9
10
Item {
11
ShortcutExt{ sequence:"Ctrl+B"; onActivated: DialogsProvider.bookmarksDialog() }
12
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/menus/qml/Menubar.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/menus/qml/Menubar.qml
Changed
16
1
2
import QtQuick.Controls
3
import QtQuick.Controls.impl
4
import QtQuick.Templates as T
5
-import org.videolan.vlc 0.1
6
import QtQuick.Layouts
7
8
-import "qrc:///style/"
9
-
10
+import VLC.MainInterface
11
+import VLC.Style
12
+import VLC.Menus
13
14
Item {
15
id: root
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/menus/qml/ShortcutExt.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/menus/qml/ShortcutExt.qml
Changed
10
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
+import VLC.MainInterface
7
8
Shortcut {
9
context: Qt.ApplicationShortcut
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/meson.build -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/meson.build
Changed
201
1
2
)
3
endif
4
5
+qrc_files = files('assets.qrc')
6
+if host_system == 'windows'
7
+ qrc_files += files('windows.qrc')
8
+endif
9
+
10
ui_sources = files(
11
'dialogs/extended/equalizer.ui',
12
'dialogs/extended/video_effects.ui',
13
14
'dialogs/vlm/vlm.ui',
15
)
16
17
-qrc_files = files('assets.qrc', 'qml.qrc')
18
-if host_system == 'windows'
19
- qrc_files += files('windows.qrc')
20
-endif
21
+qml_modules =
22
+
23
+qml_modules += {
24
+ 'name' : 'VLC.Dialogs',
25
+ 'target' : 'dialogs',
26
+ 'outdir' : 'VLC/Dialogs',
27
+ 'sources': files(
28
+ 'dialogs/dialogs/qml/CustomDialog.qml',
29
+ 'dialogs/dialogs/qml/Dialogs.qml',
30
+ 'dialogs/dialogs/qml/ModalDialog.qml',
31
+ 'dialogs/dialogs/qml/WindowDialog.qml',
32
+ 'dialogs/toolbar/qml/EditorDNDDelegate.qml',
33
+ 'dialogs/toolbar/qml/EditorDNDView.qml',
34
+ 'dialogs/toolbar/qml/EditorDummyButton.qml',
35
+ 'dialogs/toolbar/qml/EditorTabButton.qml',
36
+ 'dialogs/toolbar/qml/ToolbarEditor.qml',
37
+ 'dialogs/toolbar/qml/ToolbarEditorDialog.qml',
38
+ 'dialogs/toolbar/qml/ToolbarEditorButtonList.qml'
39
+ ),
40
+}
41
+
42
+qml_modules += {
43
+ 'name' : 'VLC.MainInterface',
44
+ 'target' : 'maininterface',
45
+ 'outdir' : 'VLC/MainInterface',
46
+ 'sources': files(
47
+ 'maininterface/qml/BannerSources.qml',
48
+ 'maininterface/qml/MainInterface.qml',
49
+ 'maininterface/qml/MainViewLoader.qml',
50
+ 'maininterface/qml/MainDisplay.qml',
51
+ 'maininterface/qml/MainGridView.qml',
52
+ 'maininterface/qml/MainTableView.qml',
53
+ 'maininterface/qml/NoMedialibHome.qml'
54
+ ),
55
+}
56
+qml_modules += {
57
+ 'name' : 'VLC.MediaLibrary',
58
+ 'target' : 'medialibrary',
59
+ 'outdir' : 'VLC/MediaLibrary',
60
+ 'sources': files(
61
+ 'medialibrary/qml/ArtistTopBanner.qml',
62
+ 'medialibrary/qml/AudioGridItem.qml',
63
+ 'medialibrary/qml/MediaGroupDisplay.qml',
64
+ 'medialibrary/qml/MusicAlbums.qml',
65
+ 'medialibrary/qml/MusicAlbumsDisplay.qml',
66
+ 'medialibrary/qml/MusicAlbumsGridExpandDelegate.qml',
67
+ 'medialibrary/qml/MusicArtist.qml',
68
+ 'medialibrary/qml/MusicArtistDelegate.qml',
69
+ 'medialibrary/qml/MusicArtistsAlbums.qml',
70
+ 'medialibrary/qml/MusicAllArtists.qml',
71
+ 'medialibrary/qml/MusicArtistsDisplay.qml',
72
+ 'medialibrary/qml/MusicDisplay.qml',
73
+ 'medialibrary/qml/MusicGenres.qml',
74
+ 'medialibrary/qml/MusicGenresDisplay.qml',
75
+ 'medialibrary/qml/MusicPlaylistsDisplay.qml',
76
+ 'medialibrary/qml/MusicTrackListDisplay.qml',
77
+ 'medialibrary/qml/MusicTracksDisplay.qml',
78
+ 'medialibrary/qml/UrlListDisplay.qml',
79
+ 'medialibrary/qml/VideoDisplay.qml',
80
+ 'medialibrary/qml/VideoAll.qml',
81
+ 'medialibrary/qml/VideoAllDisplay.qml',
82
+ 'medialibrary/qml/VideoAllSubDisplay.qml',
83
+ 'medialibrary/qml/PlaylistMediaList.qml',
84
+ 'medialibrary/qml/PlaylistMedia.qml',
85
+ 'medialibrary/qml/PlaylistMediaDisplay.qml',
86
+ 'medialibrary/qml/VideoPlaylistsDisplay.qml',
87
+ 'medialibrary/qml/VideoRecentVideos.qml',
88
+ 'medialibrary/qml/VideoRecentVideosDisplay.qml',
89
+ 'medialibrary/qml/VideoGridItem.qml',
90
+ 'medialibrary/qml/VideoInfoExpandPanel.qml',
91
+ 'medialibrary/qml/VideoListDisplay.qml',
92
+ 'medialibrary/qml/VideoGridDisplay.qml'
93
+ ),
94
+}
95
+
96
+qml_modules += {
97
+ 'name' : 'VLC.Menus',
98
+ 'target' : 'menus',
99
+ 'outdir' : 'VLC/Menus',
100
+ 'sources': files(
101
+ 'menus/qml/GlobalShortcuts.qml',
102
+ 'menus/qml/GlobalShortcutsMedialib.qml',
103
+ 'menus/qml/Menubar.qml',
104
+ 'menus/qml/ShortcutExt.qml'
105
+ ),
106
+}
107
+
108
+qml_modules += {
109
+ 'name' : 'VLC.Network',
110
+ 'target' : 'network',
111
+ 'outdir' : 'VLC/Network',
112
+ 'sources': files(
113
+ 'network/qml/AddressbarButton.qml',
114
+ 'network/qml/BrowseDeviceView.qml',
115
+ 'network/qml/BrowseDisplay.qml',
116
+ 'network/qml/BrowseHomeDisplay.qml',
117
+ 'network/qml/BrowseTreeDisplay.qml',
118
+ 'network/qml/BrowseTreeHeader.qml',
119
+ 'network/qml/DiscoverDisplay.qml',
120
+ 'network/qml/DiscoverUrlDisplay.qml',
121
+ 'network/qml/NetworkAddressbar.qml',
122
+ 'network/qml/NetworkCustomCover.qml',
123
+ 'network/qml/NetworkGridItem.qml',
124
+ 'network/qml/NetworkThumbnailItem.qml',
125
+ 'network/qml/ServicesHomeDisplay.qml',
126
+ 'network/qml/ServicesManage.qml',
127
+ 'network/qml/ServicesSources.qml'
128
+ ),
129
+}
130
+
131
+qml_modules += {
132
+ 'name' : 'VLC.Player',
133
+ 'target' : 'player',
134
+ 'outdir' : 'VLC/Player',
135
+ 'sources': files(
136
+ 'player/qml/Bookmarks.qml',
137
+ 'player/qml/ControlBar.qml',
138
+ 'player/qml/PlaybackSpeed.qml',
139
+ 'player/qml/MiniPlayer.qml',
140
+ 'player/qml/PIPPlayer.qml',
141
+ 'player/qml/Player.qml',
142
+ 'player/qml/PlayerBlurredBackground.qml',
143
+ 'player/qml/PlayerControlLayout.qml',
144
+ 'player/qml/PlayerPlaylistVisibilityFSM.qml',
145
+ 'player/qml/ResumeDialog.qml',
146
+ 'player/qml/SliderBar.qml',
147
+ 'player/qml/TopBar.qml',
148
+ 'player/qml/TracksMenu.qml',
149
+ 'player/qml/TracksPage.qml',
150
+ 'player/qml/TracksPageAudio.qml',
151
+ 'player/qml/TracksPageSpeed.qml',
152
+ 'player/qml/TracksPageSubtitle.qml',
153
+ 'player/qml/TracksListPage.qml',
154
+ 'player/qml/ControlLayout.qml',
155
+ 'player/qml/ControlRepeater.qml',
156
+ 'player/qml/NavigationBox.qml',
157
+ ),
158
+ 'singletons' : files(
159
+ 'player/qml/PlayerControlbarControls.qml',
160
+ )
161
+}
162
+
163
+qml_modules += {
164
+ 'name' : 'VLC.PlayerControls',
165
+ 'target' : 'playercontrols',
166
+ 'outdir' : 'VLC/PlayerControls',
167
+ 'sources': files(
168
+ 'player/qml/controlbarcontrols/HighResolutionTimeWidget.qml',
169
+ 'player/qml/controlbarcontrols/ArtworkInfoWidget.qml',
170
+ 'player/qml/controlbarcontrols/AspectRatioWidget.qml',
171
+ 'player/qml/controlbarcontrols/AtoBButton.qml',
172
+ 'player/qml/controlbarcontrols/BackButton.qml',
173
+ 'player/qml/controlbarcontrols/BookmarkButton.qml',
174
+ 'player/qml/controlbarcontrols/ChapterNextButton.qml',
175
+ 'player/qml/controlbarcontrols/ChapterPreviousButton.qml',
176
+ 'player/qml/controlbarcontrols/DvdMenuButton.qml',
177
+ 'player/qml/controlbarcontrols/ExpandingSpacerWidget.qml',
178
+ 'player/qml/controlbarcontrols/ExtendedSettingsButton.qml',
179
+ 'player/qml/controlbarcontrols/FasterButton.qml',
180
+ 'player/qml/controlbarcontrols/FrameButton.qml',
181
+ 'player/qml/controlbarcontrols/FullscreenButton.qml',
182
+ 'player/qml/controlbarcontrols/InfoButton.qml',
183
+ 'player/qml/controlbarcontrols/LangButton.qml',
184
+ 'player/qml/controlbarcontrols/LoopButton.qml',
185
+ 'player/qml/controlbarcontrols/MenuButton.qml',
186
+ 'player/qml/controlbarcontrols/NavigationBoxButton.qml',
187
+ 'player/qml/controlbarcontrols/NavigationWidget.qml',
188
+ 'player/qml/controlbarcontrols/NextButton.qml',
189
+ 'player/qml/controlbarcontrols/OpenButton.qml',
190
+ 'player/qml/controlbarcontrols/PlaybackSpeedButton.qml',
191
+ 'player/qml/controlbarcontrols/PlayButton.qml',
192
+ 'player/qml/controlbarcontrols/PlayerSwitchButton.qml',
193
+ 'player/qml/controlbarcontrols/PlaylistButton.qml',
194
+ 'player/qml/controlbarcontrols/PreviousButton.qml',
195
+ 'player/qml/controlbarcontrols/ProgramButton.qml',
196
+ 'player/qml/controlbarcontrols/QuitButton.qml',
197
+ 'player/qml/controlbarcontrols/RandomButton.qml',
198
+ 'player/qml/controlbarcontrols/RendererButton.qml',
199
+ 'player/qml/controlbarcontrols/RecordButton.qml',
200
+ 'player/qml/controlbarcontrols/ReverseButton.qml',
201
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/network/qml/AddressbarButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/network/qml/AddressbarButton.qml
Changed
14
1
2
import QtQuick
3
import QtQuick.Templates as T
4
5
-import org.videolan.vlc 0.1
6
-import "qrc:///style/"
7
-import "qrc:///widgets/" as Widgets
8
+import VLC.Style
9
+import VLC.Widgets as Widgets
10
+import VLC.Network
11
12
T.AbstractButton {
13
id: button
14
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/network/qml/BrowseDeviceView.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/network/qml/BrowseDeviceView.qml
Changed
18
1
2
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
-import "qrc:///util/" as Util
10
+import VLC.Style
11
+import VLC.MainInterface
12
+import VLC.Widgets as Widgets
13
+import VLC.Util
14
+import VLC.Network
15
16
FocusScope {
17
id: root
18
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/network/qml/BrowseDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/network/qml/BrowseDisplay.qml
Changed
18
1
2
import QtQml.Models
3
import QtQml
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///util/Helpers.js" as Helpers
9
-import "qrc:///style/"
10
+import VLC.MainInterface
11
+import VLC.Widgets as Widgets
12
+import VLC.Util
13
+import VLC.Style
14
+import VLC.Network
15
16
Widgets.PageLoader {
17
id: root
18
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/network/qml/BrowseHomeDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/network/qml/BrowseHomeDisplay.qml
Changed
28
1
2
import QtQml.Models
3
import QtQml
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///main/" as MainInterface
9
-import "qrc:///util/" as Util
10
-import "qrc:///style/"
11
+import VLC.Widgets as Widgets
12
+import VLC.MainInterface
13
+import VLC.Util
14
+import VLC.Style
15
+import VLC.Network
16
17
FocusScope {
18
id: root
19
20
contentWidth: column.width
21
contentHeight: column.height
22
23
- Util.FlickableScrollHandler { }
24
+ FlickableScrollHandler { }
25
26
Navigation.parentItem: root
27
28
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/network/qml/BrowseTreeDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/network/qml/BrowseTreeDisplay.qml
Changed
41
1
2
import QtQuick
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///util/" as Util
8
-import "qrc:///util/Helpers.js" as Helpers
9
-import "qrc:///widgets/" as Widgets
10
-import "qrc:///main/" as MainInterface
11
-import "qrc:///style/"
12
+import VLC.Util
13
+import VLC.Widgets as Widgets
14
+import VLC.MainInterface
15
+import VLC.Style
16
+import VLC.Network
17
18
-MainInterface.MainViewLoader {
19
+MainViewLoader {
20
id: root
21
22
// Properties
23
24
subtitleHeight: 0
25
26
maxNbItemPerRow: 12
27
-
28
+
29
selectionModel: root.selectionModel
30
model: root.model
31
32
33
Component{
34
id: tableComponent
35
36
- MainInterface.MainTableView {
37
+ MainTableView {
38
id: tableView
39
40
property Component thumbnailHeader: Widgets.TableHeaderDelegate {
41
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/network/qml/BrowseTreeHeader.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/network/qml/BrowseTreeHeader.qml
Changed
19
1
2
import QtQuick.Layouts
3
import QtQuick.Templates as T
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///util/" as Util
8
-import "qrc:///util/Helpers.js" as Helpers
9
-import "qrc:///widgets/" as Widgets
10
-import "qrc:///style/"
11
+import VLC.Util
12
+import VLC.Widgets as Widgets
13
+import VLC.Style
14
+import VLC.Network
15
+import VLC.MainInterface
16
17
T.Pane {
18
id: root
19
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/network/qml/DiscoverDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/network/qml/DiscoverDisplay.qml
Changed
32
1
2
import QtQml.Models
3
import QtQml
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///util/" as Util
9
-import "qrc:///style/"
10
+import VLC.MainInterface
11
+import VLC.Widgets as Widgets
12
+import VLC.Util
13
+import VLC.Style
14
+import VLC.Network
15
16
Widgets.PageLoader {
17
id: root
18
19
displayText: qsTr("Services"),
20
default: true,
21
name: "services",
22
- url: "qrc:///network/ServicesHomeDisplay.qml"
23
+ url: "qrc:///qt/qml/VLC/Network/ServicesHomeDisplay.qml"
24
}, {
25
displayText: qsTr("URL"),
26
name: "url",
27
- url: "qrc:///network/DiscoverUrlDisplay.qml"
28
+ url: "qrc:///qt/qml/VLC/Network/DiscoverUrlDisplay.qml"
29
}
30
31
32
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/network/qml/DiscoverUrlDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/network/qml/DiscoverUrlDisplay.qml
Changed
28
1
2
import QtQuick.Controls
3
import QtQml.Models
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///util" as Util
8
-import "qrc:///widgets/" as Widgets
9
-import "qrc:///style/"
10
+import VLC.MainInterface
11
+import VLC.Util
12
+import VLC.Widgets as Widgets
13
+import VLC.Style
14
+import VLC.Playlist
15
+import VLC.Network
16
17
FocusScope {
18
id: root
19
20
height: parent.height - searchFieldContainer.height
21
22
active: MainCtx.mediaLibraryAvailable
23
- source: "qrc:///medialibrary/UrlListDisplay.qml"
24
+ source: "qrc:///qt/qml/VLC/MediaLibrary/UrlListDisplay.qml"
25
26
onLoaded: {
27
item.leftPadding = Qt.binding(function() {
28
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/network/qml/NetworkAddressbar.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/network/qml/NetworkAddressbar.qml
Changed
17
1
2
import QtQuick.Templates as T
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
+import VLC.MainInterface
10
+import VLC.Style
11
+import VLC.Widgets as Widgets
12
+import VLC.Network
13
+import VLC.Menus
14
15
T.Control {
16
id: control
17
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/network/qml/NetworkCustomCover.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/network/qml/NetworkCustomCover.qml
Changed
16
1
2
import QtQuick.Controls
3
import Qt5Compat.GraphicalEffects
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.Widgets as Widgets
10
+import VLC.Style
11
+import VLC.Network
12
+import VLC.Util
13
14
Item {
15
id: root
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/network/qml/NetworkGridItem.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/network/qml/NetworkGridItem.qml
Changed
42
1
2
import QtQml.Models
3
import Qt5Compat.GraphicalEffects
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///util/Helpers.js" as Helpers
9
-import "qrc:///style/"
10
+import VLC.Widgets as Widgets
11
+import VLC.Network
12
+import VLC.Style
13
+import VLC.Util
14
15
Widgets.GridItem {
16
id: root
17
18
19
title: model.name || qsTr("Unknown share")
20
subtitle: {
21
- if (!model.mrl) {
22
- return ""
23
- } else if ((model.type === NetworkMediaModel.TYPE_NODE || model.type === NetworkMediaModel.TYPE_DIRECTORY) && model.mrl.toString() === "vlc://nop") {
24
- return ""
25
- } else {
26
- return model.mrl
27
- }
28
+ // make sure subtitle is never empty otherwise it causes alignment issues
29
+ const defaultTxt = "--"
30
+
31
+ const mrl = model.mrl?.toString() || ""
32
+ const type = model.type
33
+
34
+ if ((type === NetworkMediaModel.TYPE_NODE || type === NetworkMediaModel.TYPE_DIRECTORY)
35
+ && (mrl === "vlc://nop"))
36
+ return defaultTxt
37
+
38
+ return mrl || defaultTxt
39
}
40
41
pictureOverlay: Item {
42
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/network/qml/NetworkThumbnailItem.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/network/qml/NetworkThumbnailItem.qml
Changed
16
1
2
import QtQml.Models
3
import Qt5Compat.GraphicalEffects
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.Widgets as Widgets
10
+import VLC.Style
11
+import VLC.Network
12
+import VLC.Util
13
14
Widgets.TableRowDelegate {
15
id: root
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/network/qml/ServicesHomeDisplay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/network/qml/ServicesHomeDisplay.qml
Changed
28
1
2
import QtQml.Models
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///util/" as Util
9
-import "qrc:///main/" as MainInterface
10
-import "qrc:///style/"
11
+import VLC.Widgets as Widgets
12
+import VLC.Util
13
+import VLC.MainInterface
14
+import VLC.Style
15
+import VLC.Network
16
17
Widgets.PageLoader {
18
id: root
19
20
component: serviceSourceComponent
21
}, {
22
name: "services_manage",
23
- url: "qrc:///network/ServicesManage.qml"
24
+ url: "qrc:///qt/qml/VLC/Network/ServicesManage.qml"
25
}, {
26
name: "source_root",
27
component: sourceRootComponent
28
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/network/qml/ServicesManage.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/network/qml/ServicesManage.qml
Changed
16
1
2
import QtQuick
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.MainInterface
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
+import VLC.Network
13
14
Widgets.KeyNavigableListView {
15
id: servicesView
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/network/qml/ServicesSources.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/network/qml/ServicesSources.qml
Changed
18
1
2
import QtQuick.Controls
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///util/" as Util
9
-import "qrc:///style/"
10
+import VLC.Widgets as Widgets
11
+import VLC.Util
12
+import VLC.MainInterface
13
+import VLC.Style
14
+import VLC.Network
15
16
Widgets.ExpandGridItemView {
17
id: root
18
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/player_controller.cpp -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/player_controller.cpp
Changed
54
1
2
m_zoom.resetObject( main_vout );
3
m_aspectRatio.resetObject( main_vout );
4
m_crop.resetObject( main_vout );
5
+ m_fit.resetObject( main_vout );
6
m_deinterlace.resetObject( main_vout );
7
m_deinterlaceMode.resetObject( main_vout );
8
m_autoscale.resetObject( main_vout );
9
10
, m_zoom((vout_thread_t*)nullptr, "zoom")
11
, m_aspectRatio((vout_thread_t*)nullptr, "aspect-ratio")
12
, m_crop((vout_thread_t*)nullptr, "crop")
13
+ , m_fit((vout_thread_t*)nullptr, "fit")
14
, m_deinterlace((vout_thread_t*)nullptr, "deinterlace")
15
, m_deinterlaceMode((vout_thread_t*)nullptr, "deinterlace-mode")
16
, m_autoscale((vout_thread_t*)nullptr, "autoscale")
17
18
return d->m_player;
19
}
20
21
-input_item_t *PlayerController::getInput()
22
+input_item_t *PlayerController::getInput() const
23
{
24
- Q_D(PlayerController);
25
+ Q_D(const PlayerController);
26
vlc_player_locker locker{ d->m_player };
27
return vlc_player_GetCurrentMedia( d->m_player );
28
}
29
30
-bool PlayerController::hasInput() const
31
+bool PlayerController::isStarted() const
32
{
33
Q_D(const PlayerController);
34
vlc_player_locker locker{ d->m_player };
35
return vlc_player_IsStarted( d->m_player );
36
}
37
38
+bool PlayerController::hasInput() const
39
+{
40
+ return getInput();
41
+}
42
+
43
void PlayerController::reverse()
44
{
45
Q_D(PlayerController);
46
47
QABSTRACTLIST_GETTER( VLCVarChoiceModel, getZoom, m_zoom)
48
QABSTRACTLIST_GETTER( VLCVarChoiceModel, getAspectRatio, m_aspectRatio)
49
QABSTRACTLIST_GETTER( VLCVarChoiceModel, getCrop, m_crop)
50
+QABSTRACTLIST_GETTER( VLCVarChoiceModel, getFit, m_fit)
51
QABSTRACTLIST_GETTER( VLCVarChoiceModel, getDeinterlace, m_deinterlace)
52
QABSTRACTLIST_GETTER( VLCVarChoiceModel, getDeinterlaceMode, m_deinterlaceMode)
53
QABSTRACTLIST_GETTER( VLCVarChoiceModel, getAudioStereoMode, m_audioStereoMode)
54
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/player_controller.hpp -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/player_controller.hpp
Changed
43
1
2
3
//playback
4
Q_PROPERTY(PlayingState playingState READ getPlayingState NOTIFY playingStateChanged FINAL)
5
- Q_PROPERTY(bool isPlaying READ hasInput NOTIFY inputChanged FINAL)
6
+ Q_PROPERTY(bool isStarted READ isStarted NOTIFY playingStateChanged FINAL)
7
Q_PROPERTY(QString name READ getName NOTIFY nameChanged FINAL)
8
Q_PROPERTY(float buffering READ getBuffering NOTIFY bufferingChanged FINAL)
9
Q_PROPERTY(float rate READ getRate WRITE setRate NOTIFY rateChanged FINAL)
10
11
Q_PROPERTY(VLCVarChoiceModel* zoom READ getZoom CONSTANT FINAL)
12
Q_PROPERTY(VLCVarChoiceModel* aspectRatio READ getAspectRatio CONSTANT FINAL)
13
Q_PROPERTY(VLCVarChoiceModel* crop READ getCrop CONSTANT FINAL)
14
+ Q_PROPERTY(VLCVarChoiceModel* fit READ getFit CONSTANT FINAL)
15
Q_PROPERTY(VLCVarChoiceModel* deinterlace READ getDeinterlace CONSTANT FINAL)
16
Q_PROPERTY(VLCVarChoiceModel* deinterlaceMode READ getDeinterlaceMode CONSTANT FINAL)
17
Q_PROPERTY(bool fullscreen READ isFullscreen WRITE setFullscreen NOTIFY fullscreenChanged FINAL)
18
19
public:
20
vlc_player_t * getPlayer() const;
21
22
- input_item_t *getInput();
23
+ input_item_t *getInput() const;
24
25
SharedVOutThread getVout();
26
VOutThreadList getVouts() const;
27
28
public slots:
29
//playback
30
PlayingState getPlayingState() const;
31
+ bool isStarted() const;
32
bool hasInput() const;
33
QString getName() const;
34
float getBuffering() const;
35
36
VLCVarChoiceModel* getZoom();
37
VLCVarChoiceModel* getAspectRatio();
38
VLCVarChoiceModel* getCrop();
39
+ VLCVarChoiceModel* getFit();
40
VLCVarChoiceModel* getDeinterlace();
41
VLCVarChoiceModel* getDeinterlaceMode();
42
bool isFullscreen() const;
43
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/player_controller_p.hpp -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/player_controller_p.hpp
Changed
9
1
2
VLCVarChoiceModel m_zoom;
3
VLCVarChoiceModel m_aspectRatio;
4
VLCVarChoiceModel m_crop;
5
+ VLCVarChoiceModel m_fit;
6
VLCVarChoiceModel m_deinterlace;
7
VLCVarChoiceModel m_deinterlaceMode;
8
QVLCBool m_autoscale;
9
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/Bookmarks.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/Bookmarks.qml
Changed
16
1
2
import QtQuick
3
import QtQuick.Controls
4
5
-import org.videolan.vlc 0.1
6
-import org.videolan.medialib 0.1
7
+import VLC.MediaLibrary
8
9
-import "qrc:///widgets/" as Widgets
10
-import "qrc:///style/"
11
+import VLC.Widgets as Widgets
12
+import VLC.Style
13
14
Item {
15
id: control
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/ControlBar.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/ControlBar.qml
Changed
27
1
2
import QtQuick.Layouts
3
import QtQml.Models
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
-import "qrc:///playlist/" as PL
10
11
+import VLC.MainInterface
12
+import VLC.Style
13
+import VLC.Widgets as Widgets
14
+import VLC.Player
15
16
T.Pane {
17
id: root
18
19
20
parent: root
21
active: MainCtx.mediaLibraryAvailable
22
- source: "qrc:/player/Bookmarks.qml"
23
+ source: "qrc:///qt/qml/VLC/Player/Bookmarks.qml"
24
25
x: root.leftPadding + trackPositionSlider.x + row2.Layout.leftMargin
26
y: row2.y + row2.height + VLCStyle.margin_xxsmall
27
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/ControlLayout.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/ControlLayout.qml
Changed
15
1
2
import QtQuick.Layouts
3
import QtQml.Models
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
+import VLC.MainInterface
10
+import VLC.Style
11
+import VLC.Widgets as Widgets
12
13
FocusScope {
14
id: controlLayout
15
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/ControlRepeater.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/ControlRepeater.qml
Changed
35
1
2
import QtQuick.Layouts
3
import QtQuick.Controls
4
5
-import org.videolan.vlc 0.1
6
+import VLC.MainInterface
7
8
Repeater {
9
id: repeater
10
11
12
Binding on visible {
13
delayed: true // this is important
14
- when: (loader.status === Loader.Ready)
15
- value: (loader.x + loader.Layout.minimumWidth <= repeater.availableWidth)
16
+ when: condition
17
+ value: {
18
+ if (condition)
19
+ return (loader.x + loader.Layout.minimumWidth <= repeater.availableWidth)
20
+ else
21
+ return true;
22
+ }
23
+
24
+ property bool condition: false
25
+
26
+ Binding on condition {
27
+ delayed: true
28
+ value: (loader.status === Loader.Ready) &&
29
+ (loader.Layout.minimumWidth > 0) &&
30
+ (repeater.availableWidth < Number.MAX_VALUE)
31
+ }
32
}
33
34
// Events
35
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/MiniPlayer.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/MiniPlayer.qml
Changed
26
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
+import VLC.MainInterface
9
+import VLC.Player
10
+import VLC.PlayerControls
11
+import VLC.Style
12
13
ControlBar {
14
id: root
15
16
17
anchors.bottomMargin: (state === "outViewport") ? -_delayedImplicitHeight : 0
18
19
- state: (Player.playingState === Player.PLAYING_STATE_STOPPED) ? "outViewport"
20
- : "inViewport"
21
+ state: Player.isStarted ? "inViewport"
22
+ : "outViewport"
23
24
textPosition: (MainCtx.pinVideoControls) ? ControlBar.TimeTextPosition.LeftRightSlider
25
: ControlBar.TimeTextPosition.Hide
26
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/NavigationBox.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/NavigationBox.qml
Changed
16
1
2
import QtQuick.Controls
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
+import VLC.MainInterface
10
+import VLC.Style
11
+import VLC.Widgets as Widgets
12
+import VLC.Player
13
14
Control {
15
id: navigationBox
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/PIPPlayer.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/PIPPlayer.qml
Changed
16
1
2
import QtQuick
3
import QtQuick.Controls
4
5
-import org.videolan.vlc 0.1
6
-import "qrc:///style/"
7
-import "qrc:///widgets/" as Widgets
8
+import VLC.MainInterface
9
+import VLC.Style
10
+import VLC.Widgets as Widgets
11
+import VLC.Playlist
12
+import VLC.Player
13
14
Item {
15
id: root
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/PlaybackSpeed.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/PlaybackSpeed.qml
Changed
18
1
2
import QtQuick.Controls
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
-import "qrc:///util/Helpers.js" as Helpers
10
+import VLC.MainInterface
11
+import VLC.Player
12
+import VLC.Style
13
+import VLC.Widgets as Widgets
14
+import VLC.Util
15
16
ColumnLayout {
17
id: root
18
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/Player.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/Player.qml
Changed
60
1
2
import Qt5Compat.GraphicalEffects
3
import QtQuick.Window
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
-import "qrc:///playlist/" as PL
10
-import "qrc:///util/Helpers.js" as Helpers
11
-import "qrc:///dialogs/" as DG
12
-import "qrc:///util/" as Util
13
+import VLC.MainInterface
14
+import VLC.Style
15
+import VLC.Widgets as Widgets
16
+import VLC.Playlist
17
+import VLC.Player
18
+import VLC.PlayerControls
19
+import VLC.Dialogs
20
+import VLC.Util
21
22
FocusScope {
23
id: rootPlayer
24
25
History.previous()
26
}
27
28
- Util.FadeControllerStateGroup {
29
+ FadeControllerStateGroup {
30
target: topBar
31
}
32
33
34
value: playlistVisibility.isPlaylistVisible ? "visible" : "hidden"
35
}
36
37
- component: PL.PlaylistListView {
38
+ component: PlaylistListView {
39
id: playlistView
40
41
width: Helpers.clamp(rootPlayer.width / resizeHandle.widthFactor
42
43
}
44
}
45
46
- DG.Dialogs {
47
+ Dialogs {
48
z: 10
49
bgContent: rootPlayer
50
51
52
color: windowTheme.bg.primary
53
}
54
55
- Util.FadeControllerStateGroup {
56
+ FadeControllerStateGroup {
57
target: controlBar
58
}
59
}
60
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/PlayerBlurredBackground.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/PlayerBlurredBackground.qml
Changed
9
1
2
import QtQuick
3
4
import Qt5Compat.GraphicalEffects
5
+import VLC.Util
6
7
Item {
8
id: rootItem
9
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/PlayerControlLayout.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/PlayerControlLayout.qml
Changed
17
1
2
import QtQuick
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
10
+import VLC.MainInterface
11
+import VLC.Style
12
+import VLC.Widgets as Widgets
13
+import VLC.PlayerControls
14
15
FocusScope {
16
id: playerControlLayout
17
_service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/PlayerControlbarControls.qml
Added
88
1
2
+•/*****************************************************************************
3
+ * Copyright (C) 2019 VLC authors and VideoLAN
4
+ *
5
+ * This program is free software; you can redistribute it and/or modify
6
+ * it under the terms of the GNU General Public License as published by
7
+ * the Free Software Foundation; either version 2 of the License, or
8
+ * ( at your option ) any later version.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU General Public License
16
+ * along with this program; if not, write to the Free Software
17
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
18
+ *****************************************************************************/
19
+
20
+pragma Singleton
21
+
22
+import QtQml
23
+
24
+
25
+import VLC.MainInterface
26
+import VLC.PlayerControls
27
+import VLC.Widgets as Widgets
28
+import VLC.Style
29
+
30
+QtObject {
31
+ readonly property string controlPath : "qrc:///qt/qml/VLC/PlayerControls/"
32
+
33
+ readonly property var controlList:
34
+ { id: ControlListModel.PLAY_BUTTON, file: "PlayButton.qml", label: VLCIcons.play_filled, text: qsTr("Play") },
35
+ { id: ControlListModel.STOP_BUTTON, file: "StopButton.qml", label: VLCIcons.stop, text: qsTr("Stop") },
36
+ { id: ControlListModel.OPEN_BUTTON, file: "OpenButton.qml", label: VLCIcons.eject, text: qsTr("Open") },
37
+ { id: ControlListModel.PREVIOUS_BUTTON, file: "PreviousButton.qml", label: VLCIcons.previous, text: qsTr("Previous") },
38
+ { id: ControlListModel.NEXT_BUTTON, file: "NextButton.qml", label: VLCIcons.next, text: qsTr("Next") },
39
+ { id: ControlListModel.SLOWER_BUTTON, file: "SlowerButton.qml", label: VLCIcons.slower, text: qsTr("Slower") },
40
+ { id: ControlListModel.FASTER_BUTTON, file: "FasterButton.qml", label: VLCIcons.faster, text: qsTr("Faster") },
41
+ { id: ControlListModel.FULLSCREEN_BUTTON, file: "FullscreenButton.qml", label: VLCIcons.fullscreen, text: qsTr("Fullscreen") },
42
+ { id: ControlListModel.EXTENDED_BUTTON, file: "ExtendedSettingsButton.qml", label: VLCIcons.effect_filter, text: qsTr("Extended panel") },
43
+ { id: ControlListModel.PLAYLIST_BUTTON, file: "PlaylistButton.qml", label: VLCIcons.playlist, text: qsTr("Playlist") },
44
+ { id: ControlListModel.SNAPSHOT_BUTTON, file: "SnapshotButton.qml", label: VLCIcons.snapshot, text: qsTr("Snapshot") },
45
+ { id: ControlListModel.RECORD_BUTTON, file: "RecordButton.qml", label: VLCIcons.record, text: qsTr("Record") },
46
+ { id: ControlListModel.ATOB_BUTTON, file: "AtoBButton.qml", label: VLCIcons.atob, text: qsTr("A-B Loop") },
47
+ { id: ControlListModel.FRAME_BUTTON, file: "FrameButton.qml", label: VLCIcons.frame_by_frame, text: qsTr("Frame By Frame") },
48
+ { id: ControlListModel.REVERSE_BUTTON, file: "ReverseButton.qml", label: VLCIcons.play_reverse, text: qsTr("Trickplay Reverse") },
49
+ { id: ControlListModel.SKIP_BACK_BUTTON, file: "SkipBackButton.qml", label: VLCIcons.skip_back, text: qsTr("Step backward") },
50
+ { id: ControlListModel.SKIP_FW_BUTTON, file: "SkipForwardButton.qml", label: VLCIcons.skip_for, text: qsTr("Step forward") },
51
+ { id: ControlListModel.QUIT_BUTTON, file: "QuitButton.qml", label: VLCIcons.clear, text: qsTr("Quit") },
52
+ { id: ControlListModel.RANDOM_BUTTON, file: "RandomButton.qml", label: VLCIcons.shuffle, text: qsTr("Random") },
53
+ { id: ControlListModel.LOOP_BUTTON, file: "LoopButton.qml", label: VLCIcons.repeat_all, text: qsTr("Loop") },
54
+ { id: ControlListModel.INFO_BUTTON, file: "InfoButton.qml", label: VLCIcons.info, text: qsTr("Information") },
55
+ { id: ControlListModel.LANG_BUTTON, file: "LangButton.qml", label: VLCIcons.audiosub, text: qsTr("Open subtitles") },
56
+ { id: ControlListModel.BOOKMARK_BUTTON, file: "BookmarkButton.qml", label: VLCIcons.bookmark, text: qsTr("Bookmark Button") },
57
+ { id: ControlListModel.CHAPTER_PREVIOUS_BUTTON, file: "ChapterPreviousButton.qml", label: VLCIcons.dvd_prev, text: qsTr("Previous chapter") },
58
+ { id: ControlListModel.CHAPTER_NEXT_BUTTON, file: "ChapterNextButton.qml", label: VLCIcons.dvd_next, text: qsTr("Next chapter") },
59
+ { id: ControlListModel.VOLUME, file: "VolumeWidget.qml", label: VLCIcons.volume_high, text: qsTr("Volume Widget") },
60
+ { id: ControlListModel.NAVIGATION_BOX, file: "NavigationBoxButton.qml", label: VLCIcons.ic_fluent_arrow_move, text: qsTr("Navigation Box") },
61
+ { id: ControlListModel.NAVIGATION_BUTTONS, file: "NavigationWidget.qml", label: VLCIcons.dvd_menu, text: qsTr("Navigation") },
62
+ { id: ControlListModel.DVD_MENUS_BUTTON, file: "DvdMenuButton.qml", label: VLCIcons.dvd_menu, text: qsTr("DVD menus") },
63
+ { id: ControlListModel.PROGRAM_BUTTON, file: "ProgramButton.qml", label: VLCIcons.tv, text: qsTr("Program Button") },
64
+ { id: ControlListModel.TELETEXT_BUTTONS, file: "TeletextButton.qml", label: VLCIcons.tvtelx, text: qsTr("Teletext") },
65
+ { id: ControlListModel.RENDERER_BUTTON, file: "RendererButton.qml", label: VLCIcons.renderer, text: qsTr("Renderer Button") },
66
+ { id: ControlListModel.ASPECT_RATIO_COMBOBOX, file: "AspectRatioWidget.qml", label: VLCIcons.aspect_ratio, text: qsTr("Aspect Ratio") },
67
+ { id: ControlListModel.WIDGET_SPACER, file: "SpacerWidget.qml", label: VLCIcons.space, text: qsTr("Spacer") },
68
+ { id: ControlListModel.WIDGET_SPACER_EXTEND, file: "ExpandingSpacerWidget.qml", label: VLCIcons.space, text: qsTr("Expanding Spacer") },
69
+ { id: ControlListModel.PLAYER_SWITCH_BUTTON, file: "PlayerSwitchButton.qml", label: VLCIcons.fullscreen, text: qsTr("Switch Player") },
70
+ { id: ControlListModel.ARTWORK_INFO, file: "ArtworkInfoWidget.qml", label: VLCIcons.info, text: qsTr("Artwork Info") },
71
+ { id: ControlListModel.PLAYBACK_SPEED_BUTTON, file: "PlaybackSpeedButton.qml", label: "1x", text: qsTr("Playback Speed") },
72
+ { id: ControlListModel.HIGH_RESOLUTION_TIME_WIDGET, file: "HighResolutionTimeWidget.qml", label: VLCIcons.info, text: qsTr("High Resolution Time") }
73
+
74
+
75
+ function control(id) {
76
+ const entry = controlList.find( function(e) { return ( e.id === id ) } )
77
+
78
+ if (entry === undefined) {
79
+ console.log("control delegate id " + id + " doesn't exist")
80
+ return { source: controlPath + "Fallback.qml" }
81
+ }
82
+
83
+ entry.source = controlPath + entry.file
84
+
85
+ return entry
86
+ }
87
+}
88
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/PlayerPlaylistVisibilityFSM.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/PlayerPlaylistVisibilityFSM.qml
Changed
73
1
2
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
3
*****************************************************************************/
4
import QtQuick
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///util/" as Util
8
+import VLC.MainInterface
9
+import VLC.Util
10
11
/**
12
* playlist visibility state machine
13
14
* @enduml
15
*
16
*/
17
-Util.FSM {
18
+FSM {
19
id: fsm
20
21
//incoming signals
22
23
updateVideoEmbed: fsm.updateVideoEmbed
24
})
25
26
- Util.FSMState {
27
+ FSMState {
28
id: fsmFloating
29
30
transitions: ({
31
32
})
33
}
34
35
- Util.FSMState {
36
+ FSMState {
37
id: fsmDocked
38
39
initialState: MainCtx.hasEmbededVideo ? fsmForceHidden : fsmFollowVisible
40
41
- Util.FSMState {
42
+ FSMState {
43
id: fsmFollowVisible
44
45
initialState: MainCtx.playlistVisible ? fsmVisible : fsmHidden
46
47
}
48
})
49
50
- Util.FSMState {
51
+ FSMState {
52
id: fsmVisible
53
54
transitions: ({
55
56
})
57
}
58
59
- Util.FSMState {
60
+ FSMState {
61
id: fsmHidden
62
63
transitions: ({
64
65
}
66
}
67
68
- Util.FSMState {
69
+ FSMState {
70
id: fsmForceHidden
71
72
transitions: ({
73
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/ResumeDialog.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/ResumeDialog.qml
Changed
17
1
2
import QtQuick.Controls
3
import QtQuick.Templates as T
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
-import "qrc:///menus/" as Menus
10
+import VLC.MainInterface
11
+import VLC.Player
12
+import VLC.Style
13
+import VLC.Widgets as Widgets
14
15
FocusScope {
16
id: resumePanel
17
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/SliderBar.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/SliderBar.qml
Changed
76
1
2
import QtQuick.Layouts
3
import Qt5Compat.GraphicalEffects
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
-import "qrc:///util/Helpers.js" as Helpers
10
-import "qrc:///util/" as Util
11
+import VLC.Player
12
+import VLC.Widgets as Widgets
13
+import VLC.Style
14
+import VLC.Util
15
16
T.ProgressBar {
17
id: control
18
19
: (control.visualPosition * control.width), 0)
20
}
21
22
- Util.FSM {
23
+ FSM {
24
id: fsm
25
signal playerUpdatePosition(real position)
26
signal pressControl(real position, bool forcePrecise)
27
28
Player.position = position
29
}
30
31
- Util.FSMState {
32
+ FSMState {
33
id: fsmReleased
34
35
transitions: ({
36
37
})
38
}
39
40
- Util.FSMState {
41
+ FSMState {
42
id: fsmHeld
43
44
transitions: ({
45
46
})
47
}
48
49
- Util.FSMState {
50
+ FSMState {
51
id: fsmHeldWrongInput
52
53
function enter() {
54
55
TapHandler {
56
acceptedButtons: Qt.LeftButton
57
58
- grabPermissions: TapHandler.CanTakeOverFromAnything
59
-
60
gesturePolicy: TapHandler.WithinBounds
61
62
- //clicked but not dragged
63
- onTapped: (point, button) => {
64
- fsm.pressControl(point.position.x / control.width, point.modifiers === Qt.ShiftModifier)
65
- fsm.releaseControl(point.position.x / control.width, point.modifiers === Qt.ShiftModifier)
66
+ onPressedChanged: {
67
+ if (pressed) {
68
+ fsm.pressControl(point.position.x / control.width, point.modifiers === Qt.ShiftModifier)
69
+ } else {
70
+ // NOTE: Point is still valid at this point.
71
+ fsm.releaseControl(point.position.x / control.width, point.modifiers === Qt.ShiftModifier)
72
+ }
73
}
74
}
75
76
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/TopBar.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/TopBar.qml
Changed
47
1
2
import QtQuick.Layouts
3
import QtQuick.Window
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
-import "qrc:///menus/" as Menus
10
+import VLC.MainInterface
11
+import VLC.Style
12
+import VLC.PlayerControls
13
+import VLC.Widgets as Widgets
14
+import VLC.Menus as Menus
15
16
FocusScope{
17
id: root
18
19
20
anchors.fill: parent
21
active: root.showCSD
22
- source: "qrc:///widgets/CSDTitlebarTapNDrapHandler.qml"
23
+ source: "qrc:///qt/qml/VLC/Widgets/CSDTitlebarTapNDrapHandler.qml"
24
}
25
26
// Components -
27
28
enabled: root.showCSD
29
visible: root.showCSD
30
source: VLCStyle.palette.hasCSDImage
31
- ? "qrc:///widgets/CSDThemeButtonSet.qml"
32
- : "qrc:///widgets/CSDWindowButtonSet.qml"
33
+ ? "qrc:///qt/qml/VLC/Widgets/CSDThemeButtonSet.qml"
34
+ : "qrc:///qt/qml/VLC/Widgets/CSDWindowButtonSet.qml"
35
36
Connections {
37
target: csdDecorations.item
38
39
40
onHoveredChanged: root.requestLockUnlockAutoHide(hovered)
41
42
- QmlGlobalMenu {
43
+ Menus.QmlGlobalMenu {
44
id: contextMenu
45
46
ctx: MainCtx
47
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/TracksListPage.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/TracksListPage.qml
Changed
20
1
2
import QtQuick.Layouts
3
import QtQml.Models
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
-import "qrc:///util/" as Util
10
11
+import VLC.MainInterface
12
+import VLC.Style
13
+import VLC.Player
14
+import VLC.Widgets as Widgets
15
+import VLC.Util
16
+import VLC.Dialogs
17
18
RowLayout {
19
id: root
20
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/TracksMenu.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/TracksMenu.qml
Changed
35
1
2
import QtQuick.Layouts
3
import QtQml.Models
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
-import "qrc:///util/" as Util
10
+import VLC.Style
11
+import VLC.Widgets as Widgets
12
+import VLC.Util
13
14
// FIXME: Keyboard navigation needs to be fixed for this Popup.
15
T.Popup {
16
17
}
18
19
onRequestAudioPage: {
20
- stackView.push("qrc:///player/TracksPageAudio.qml", {"trackMenuController": trackMenuController})
21
+ stackView.push("qrc:///qt/qml/VLC/Player/TracksPageAudio.qml", {"trackMenuController": trackMenuController})
22
}
23
24
onRequestSubtitlePage: {
25
- stackView.push("qrc:///player/TracksPageSubtitle.qml", {"trackMenuController": trackMenuController})
26
+ stackView.push("qrc:///qt/qml/VLC/Player/TracksPageSubtitle.qml", {"trackMenuController": trackMenuController})
27
}
28
29
onRequestPlaybackSpeedPage: {
30
- stackView.push("qrc:///player/TracksPageSpeed.qml", {"trackMenuController": trackMenuController})
31
+ stackView.push("qrc:///qt/qml/VLC/Player/TracksPageSpeed.qml", {"trackMenuController": trackMenuController})
32
}
33
}
34
}
35
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/TracksPage.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/TracksPage.qml
Changed
15
1
2
import QtQuick
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
+import VLC.MainInterface
10
+import VLC.Style
11
+import VLC.Widgets as Widgets
12
13
RowLayout {
14
id: root
15
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/TracksPageAudio.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/TracksPageAudio.qml
Changed
17
1
2
import QtQuick
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
+import VLC.MainInterface
10
+import VLC.Style
11
+import VLC.Util
12
+import VLC.Widgets as Widgets
13
+import VLC.Player
14
15
TracksPage {
16
id: root
17
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/TracksPageSpeed.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/TracksPageSpeed.qml
Changed
10
1
2
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
+import VLC.MainInterface
7
8
TracksPage {
9
id: root
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/TracksPageSubtitle.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/TracksPageSubtitle.qml
Changed
17
1
2
import QtQuick
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
+import VLC.MainInterface
10
+import VLC.Style
11
+import VLC.Player
12
+import VLC.Util
13
+import VLC.Widgets as Widgets
14
15
TracksPage {
16
id: root
17
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/ArtworkInfoWidget.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/ArtworkInfoWidget.qml
Changed
18
1
2
import QtQuick.Controls
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.MainInterface
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
+import VLC.Playlist
13
+import VLC.Player
14
+import VLC.Util
15
16
AbstractButton {
17
id: root
18
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/AspectRatioWidget.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/AspectRatioWidget.qml
Changed
16
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
+import VLC.Player
13
14
Widgets.ComboBoxExt {
15
id: combo
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/AtoBButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/AtoBButton.qml
Changed
16
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.Widgets as Widgets
10
+import VLC.Player
11
+import VLC.Style
12
+import VLC.Util
13
14
Widgets.ImageToolButton {
15
id: control
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/BackButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/BackButton.qml
Changed
15
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import "qrc:///widgets/" as Widgets
6
-import "qrc:///style/"
7
+import VLC.MainInterface
8
+import VLC.Widgets as Widgets
9
+import VLC.Style
10
11
-import org.videolan.vlc 0.1
12
13
Widgets.IconToolButton {
14
id: backBtn
15
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/BookmarkButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/BookmarkButton.qml
Changed
16
1
2
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.MainInterface
10
+import VLC.Player
11
+import VLC.Widgets as Widgets
12
+import VLC.Style
13
14
Widgets.IconToolButton {
15
id: root
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/ChapterNextButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/ChapterNextButton.qml
Changed
16
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
+import VLC.Player
13
14
Widgets.IconToolButton {
15
id: chapterNextBtn
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/ChapterPreviousButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/ChapterPreviousButton.qml
Changed
16
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
+import VLC.Player
13
14
Widgets.IconToolButton {
15
id: chapterPreviousBtn
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/DvdMenuButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/DvdMenuButton.qml
Changed
15
1
2
3
import QtQuick
4
5
-import "qrc:///widgets/" as Widgets
6
-import "qrc:///style/"
7
+import VLC.Widgets as Widgets
8
+import VLC.Style
9
+import VLC.Player
10
11
-import org.videolan.vlc 0.1
12
13
Widgets.IconToolButton {
14
15
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/ExpandingSpacerWidget.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/ExpandingSpacerWidget.qml
Changed
14
1
2
import QtQuick.Templates as T
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.Widgets as Widgets
10
+import VLC.Style
11
12
13
Item {
14
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/ExtendedSettingsButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/ExtendedSettingsButton.qml
Changed
16
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
+import VLC.Dialogs
13
14
Widgets.IconToolButton {
15
id: extdSettingsBtn
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/Fallback.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/Fallback.qml
Changed
18
1
2
import QtQuick.Controls
3
import Qt5Compat.GraphicalEffects
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
-import "qrc:///util/Helpers.js" as Helpers
10
11
+import VLC.MainInterface
12
+import VLC.Widgets as Widgets
13
+import VLC.Util
14
+import VLC.Style
15
16
Control {
17
padding: VLCStyle.focus_border
18
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/FasterButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/FasterButton.qml
Changed
16
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
+import VLC.Player
13
14
Widgets.IconToolButton {
15
id: fasterBtn
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/FrameButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/FrameButton.qml
Changed
15
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.Widgets as Widgets
10
+import VLC.Player
11
+import VLC.Style
12
13
14
Widgets.IconToolButton {
15
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/FullscreenButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/FullscreenButton.qml
Changed
16
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
+import VLC.Player
13
14
Widgets.IconToolButton {
15
id: fullScreenBtn
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/HighResolutionTimeWidget.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/HighResolutionTimeWidget.qml
Changed
17
1
2
import QtQuick
3
import QtQuick.Controls
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///player/"
8
-import "qrc:///widgets/" as Widgets
9
-import "qrc:///style/"
10
+import VLC.MainInterface
11
+import VLC.Player
12
+import VLC.Widgets as Widgets
13
+import VLC.Style
14
15
16
Control {
17
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/InfoButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/InfoButton.qml
Changed
22
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
+import VLC.Player
13
+import VLC.Dialogs
14
15
Widgets.IconToolButton {
16
id: infoBtn
17
- enabled: Player.isPlaying
18
+ enabled: Player.isStarted
19
text: VLCIcons.info
20
onClicked: DialogsProvider.mediaInfoDialog()
21
description: qsTr("Information")
22
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/LangButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/LangButton.qml
Changed
25
1
2
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
-import "qrc:///player/" as Player
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
+import VLC.Player
13
14
Widgets.IconToolButton {
15
id: root
16
17
Loader {
18
id: menuLoader
19
20
- sourceComponent: Player.TracksMenu {
21
+ sourceComponent: TracksMenu {
22
id: menu
23
24
parent: root._parentItem
25
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/LoopButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/LoopButton.qml
Changed
16
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
+import VLC.Playlist
13
14
Widgets.IconToolButton {
15
id: repeatBtn
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/MenuButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/MenuButton.qml
Changed
17
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
10
+import VLC.MainInterface
11
+import VLC.Widgets as Widgets
12
+import VLC.Style
13
+import VLC.Menus
14
15
Widgets.IconToolButton {
16
id: menuBtn
17
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/NavigationBoxButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/NavigationBoxButton.qml
Changed
16
1
2
3
import QtQuick
4
5
-import "qrc:///widgets/" as Widgets
6
-import "qrc:///style/"
7
+import VLC.MainInterface
8
+import VLC.Widgets as Widgets
9
+import VLC.Player
10
+import VLC.Style
11
12
-import org.videolan.vlc 0.1
13
14
Widgets.IconToolButton {
15
visible: Player.isInteractive
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/NavigationWidget.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/NavigationWidget.qml
Changed
25
1
2
import QtQuick
3
import QtQuick.Templates as Templates
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.MainInterface
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
+import VLC.Player
13
14
Templates.Pane {
15
id: root
16
17
18
// Private
19
20
- readonly property string _controlPath : "qrc:///player/controlbarcontrols/"
21
+ readonly property string _controlPath : "qrc:///qt/qml/VLC/PlayerControls/"
22
23
// Signals
24
25
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/NextButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/NextButton.qml
Changed
16
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
+import VLC.Playlist
13
14
Widgets.IconToolButton {
15
id: nextBtn
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/OpenButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/OpenButton.qml
Changed
16
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
+import VLC.Dialogs
13
14
Widgets.IconToolButton {
15
id: openMediaBtn
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/PlayButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/PlayButton.qml
Changed
47
1
2
import QtQuick
3
import QtQuick.Templates as T
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
-import "qrc:///util/Helpers.js" as Helpers
10
+import VLC.MainInterface
11
+import VLC.Widgets as Widgets
12
+import VLC.Style
13
+import VLC.Player
14
+import VLC.Playlist
15
+import VLC.Util
16
17
T.Control {
18
id: root
19
20
}
21
}
22
23
+ onCursorInsideChanged: {
24
+ if (pressed && !cursorInside) {
25
+ // Press and hold action can no longer be done,
26
+ // so reset the state in order to reset the
27
+ // animation:
28
+ innerRectangle.state = ""
29
+ }
30
+ }
31
+
32
onPressed: (mouse) => {
33
if (!cursorInside) {
34
mouse.accepted = false
35
36
}
37
38
onPressAndHold: (mouse) => {
39
+ if (!cursorInside) {
40
+ mouse.accepted = false
41
+ return
42
+ }
43
+
44
_pressAndHoldAction()
45
mouse.accepted = true
46
}
47
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/PlaybackSpeedButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/PlaybackSpeedButton.qml
Changed
27
1
2
import QtQuick
3
import QtQuick.Templates as T
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///player/" as P
9
-import "qrc:///widgets/"
10
+import VLC.MainInterface
11
+import VLC.Style
12
+import VLC.Player
13
+import VLC.Widgets
14
+import VLC.Util
15
16
PopupIconToolButton {
17
id: root
18
19
20
description: qsTr("change playback speed")
21
22
- popup.contentItem: P.PlaybackSpeed {
23
+ popup.contentItem: PlaybackSpeed {
24
colorContext.palette: root.colorContext.palette
25
26
Navigation.parentItem: root
27
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/PlayerSwitchButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/PlayerSwitchButton.qml
Changed
15
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import "qrc:///widgets/" as Widgets
6
-import "qrc:///style/"
7
+import VLC.MainInterface
8
+import VLC.Widgets as Widgets
9
+import VLC.Style
10
11
-import org.videolan.vlc 0.1
12
13
Widgets.IconToolButton {
14
text: VLCIcons.fullscreen
15
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/PlaylistButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/PlaylistButton.qml
Changed
15
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.MainInterface
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
13
14
Widgets.IconToolButton {
15
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/PreviousButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/PreviousButton.qml
Changed
15
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.Widgets as Widgets
10
+import VLC.Style
11
+import VLC.Playlist
12
13
Widgets.IconToolButton {
14
id: prevBtn
15
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/ProgramButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/ProgramButton.qml
Changed
15
1
2
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.Player
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
13
Widgets.IconToolButton {
14
id: root
15
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/QuitButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/QuitButton.qml
Changed
15
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.MainInterface
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
13
14
Widgets.IconToolButton {
15
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/RandomButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/RandomButton.qml
Changed
16
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
+import VLC.Playlist
13
14
Widgets.IconToolButton {
15
id: randomBtn
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/RecordButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/RecordButton.qml
Changed
22
1
2
import QtQuick
3
import QtQuick.Templates as T
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
+import VLC.Player
13
14
Widgets.IconToolButton {
15
id: control
16
17
- enabled: !paintOnly && Player.isPlaying
18
+ enabled: !paintOnly && Player.isStarted
19
20
color: "#FFFF0000" //red means recording
21
text: VLCIcons.record
22
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/RendererButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/RendererButton.qml
Changed
16
1
2
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.MainInterface
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
+import VLC.Player
13
14
Widgets.IconToolButton {
15
id: root
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/ReverseButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/ReverseButton.qml
Changed
15
1
2
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.Widgets as Widgets
10
+import VLC.Player
11
+import VLC.Style
12
13
Widgets.IconToolButton {
14
enabled: Player.rewindable
15
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/SkipBackButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/SkipBackButton.qml
Changed
16
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
+import VLC.Player
13
14
Widgets.IconToolButton {
15
id: stepBackBtn
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/SkipForwardButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/SkipForwardButton.qml
Changed
16
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
+import VLC.Player
13
14
Widgets.IconToolButton {
15
id: stepfwdBtn
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/SlowerButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/SlowerButton.qml
Changed
16
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
+import VLC.Player
13
14
Widgets.IconToolButton {
15
id: slowerBtn
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/SnapshotButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/SnapshotButton.qml
Changed
21
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
+import VLC.Player
13
14
Widgets.IconToolButton {
15
id: snapshotBtn
16
- enabled: Player.isPlaying
17
+ enabled: Player.isStarted
18
text: VLCIcons.snapshot
19
onClicked: Player.snapshot()
20
description: qsTr("Snapshot")
21
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/SpacerWidget.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/SpacerWidget.qml
Changed
14
1
2
import QtQuick
3
import QtQuick.Templates as T
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.Widgets as Widgets
10
+import VLC.Style
11
12
13
Item {
14
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/StopButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/StopButton.qml
Changed
22
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.Widgets as Widgets
10
+import VLC.Style
11
+import VLC.Player
12
+import VLC.Playlist
13
14
15
Widgets.IconToolButton {
16
id: stopBtn
17
- enabled: Player.isPlaying
18
+ enabled: Player.isStarted
19
text: VLCIcons.stop
20
onClicked: MainPlaylistController.stop()
21
description: qsTr("Stop")
22
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/TeletextButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/TeletextButton.qml
Changed
16
1
2
import QtQuick
3
import QtQuick.Controls
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/"
9
+import VLC.MainInterface
10
+import VLC.Style
11
+import VLC.Player
12
+import VLC.Widgets
13
14
PopupIconToolButton {
15
id: root
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/TeletextColorButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/TeletextColorButton.qml
Changed
12
1
2
import QtQuick
3
import QtQuick.Templates as T
4
5
-import "qrc:///widgets/" as Widgets
6
-import "qrc:///style/"
7
+import VLC.Widgets as Widgets
8
+import VLC.Style
9
10
Widgets.IconToolButton {
11
// Settings
12
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/TeletextWidget.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/TeletextWidget.qml
Changed
16
1
2
import QtQuick.Layouts
3
import QtQuick.Templates as T
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.MainInterface
10
+import VLC.Widgets as Widgets
11
+import VLC.Player
12
+import VLC.Style
13
14
T.Pane {
15
id: root
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/player/qml/controlbarcontrols/VolumeWidget.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/player/qml/controlbarcontrols/VolumeWidget.qml
Changed
18
1
2
import QtQuick.Templates as T
3
import Qt5Compat.GraphicalEffects
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///util/Helpers.js" as Helpers
9
-import "qrc:///style/"
10
+import VLC.MainInterface
11
+import VLC.Widgets as Widgets
12
+import VLC.Util
13
+import VLC.Style
14
+import VLC.Player
15
16
T.Pane {
17
id: root
18
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/playlist/qml/PlaylistDelegate.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/playlist/qml/PlaylistDelegate.qml
Changed
17
1
2
import QtQuick.Layouts
3
import QtQml.Models
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.Widgets as Widgets
10
+import VLC.Style
11
+import VLC.Playlist
12
+import VLC.Player
13
+import VLC.Util
14
15
T.Control {
16
id: delegate
17
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/playlist/qml/PlaylistDetachedWindow.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/playlist/qml/PlaylistDetachedWindow.qml
Changed
13
1
2
import QtQuick
3
import QtQuick.Window
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
+import VLC.MainInterface
9
+import VLC.Style
10
11
12
Window {
13
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/playlist/qml/PlaylistListView.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/playlist/qml/PlaylistListView.qml
Changed
43
1
2
import QtQuick.Layouts
3
import QtQml.Models
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///util" as Util
9
-import "qrc:///util/Helpers.js" as Helpers
10
-import "qrc:///style/"
11
+import VLC.MainInterface
12
+import VLC.Widgets as Widgets
13
+import VLC.Util
14
+import VLC.Playlist
15
+import VLC.Style
16
17
T.Pane {
18
id: root
19
20
model: root.model
21
22
Binding on fadingEdge.enableBeginningFade {
23
- when: (autoScroller.scrollingDirection === Util.ViewDragAutoScrollHandler.Direction.Backward)
24
+ when: (autoScroller.scrollingDirection === ViewDragAutoScrollHandler.Direction.Backward)
25
value: false
26
}
27
28
Binding on fadingEdge.enableEndFade {
29
- when: (autoScroller.scrollingDirection === Util.ViewDragAutoScrollHandler.Direction.Forward)
30
+ when: (autoScroller.scrollingDirection === ViewDragAutoScrollHandler.Direction.Forward)
31
value: false
32
}
33
34
35
}
36
}
37
38
- Util.ViewDragAutoScrollHandler {
39
+ ViewDragAutoScrollHandler {
40
id: autoScroller
41
42
view: listView
43
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/playlist/qml/PlaylistToolbar.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/playlist/qml/PlaylistToolbar.qml
Changed
16
1
2
import QtQuick.Controls
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
+import VLC.Playlist
13
14
RowLayout {
15
id: rowLayout
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/qt.cpp -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/qt.cpp
Changed
126
1
2
#define HIDE_WINDOW_ON_CLOSE_TEXT N_( "Hide the window on close" )
3
#define HIDE_WINDOW_ON_CLOSE_LONGTEXT N_( "Instead of closing the application, hide the window. This setting is only applicable when system tray icon is enabled." )
4
5
+#define BACKDROP_BLUR_FILTER_TEXT N_( "Enable backdrop blur filter for the main window if possible" )
6
+#define BACKDROP_BLUR_FILTER_LONGTEXT N_( "If backdrop blur filter is available, use translucency in the backgrounds of certain parts of the user interface " \
7
+ "instead of a solid color. This setting impairs readibility of text." )
8
+
9
static const int initial_prefs_view_list = { 0, 1, 2 };
10
static const char *const initial_prefs_view_list_texts =
11
{ N_("Simple"), N_("Advanced"), N_("Expert") };
12
13
14
add_bool( "qt-close-to-system-tray", false, HIDE_WINDOW_ON_CLOSE_TEXT, HIDE_WINDOW_ON_CLOSE_LONGTEXT )
15
16
+ add_bool( "qt-backdrop-blur", true, BACKDROP_BLUR_FILTER_TEXT, BACKDROP_BLUR_FILTER_LONGTEXT )
17
+
18
add_float_with_range( "qt-safe-area", 0, 0, 100.0, SAFE_AREA_TEXT, SAFE_AREA_LONGTEXT )
19
20
cannot_unload_broken_library()
21
22
#endif
23
argvargc = NULL;
24
25
+ //qml modules are always statically linked
26
+ Q_INIT_RESOURCE( dialogs_assets );
27
+ Q_INIT_RESOURCE( maininterface_assets );
28
+ Q_INIT_RESOURCE( menus_assets );
29
+ Q_INIT_RESOURCE( maininterface_assets );
30
+ Q_INIT_RESOURCE( medialibrary_assets );
31
+ Q_INIT_RESOURCE( network_assets );
32
+ Q_INIT_RESOURCE( player_assets );
33
+ Q_INIT_RESOURCE( playercontrols_assets );
34
+ Q_INIT_RESOURCE( playlist_assets );
35
+ Q_INIT_RESOURCE( style_assets );
36
+ Q_INIT_RESOURCE( util_assets );
37
+ Q_INIT_RESOURCE( widgets_assets );
38
+
39
+#ifdef QT_USE_QMLCACHEGEN
40
+ Q_INIT_RESOURCE( dialogs_cachegen );
41
+ Q_INIT_RESOURCE( maininterface_cachegen );
42
+ Q_INIT_RESOURCE( menus_cachegen );
43
+ Q_INIT_RESOURCE( maininterface_cachegen );
44
+ Q_INIT_RESOURCE( medialibrary_cachegen );
45
+ Q_INIT_RESOURCE( network_cachegen );
46
+ Q_INIT_RESOURCE( player_cachegen );
47
+ Q_INIT_RESOURCE( playercontrols_cachegen );
48
+ Q_INIT_RESOURCE( playlist_cachegen );
49
+ Q_INIT_RESOURCE( style_cachegen );
50
+ Q_INIT_RESOURCE( util_cachegen );
51
+ Q_INIT_RESOURCE( widgets_cachegen );
52
+#endif
53
+
54
#ifdef QT_STATIC
55
Q_INIT_RESOURCE( assets );
56
- Q_INIT_RESOURCE( qml );
57
#ifdef _WIN32
58
Q_INIT_RESOURCE( windows );
59
#endif
60
61
QApplication app( argc, argv );
62
app.setProperty("initialStyle", app.style()->objectName());
63
64
-#if defined(_WIN32) && (_WIN32_WINNT < _WIN32_WINNT_WIN8)
65
+#if defined(_WIN32) && (_WIN32_WINNT < _WIN32_WINNT_WINBLUE)
66
// TODO: Qt Quick RHI Fallback does not work (Qt 6.7.1).
67
// We have to manually pick a graphics api here for
68
- // Windows 7, since it may not support the default
69
- // graphics api (D3D11).
70
+ // Windows 7 and Windows 8, since it may not support
71
+ // the default graphics api (Direct3D 11.2).
72
73
if (qEnvironmentVariableIsEmpty("QSG_RHI_BACKEND"))
74
{
75
- if (QOperatingSystemVersion::current() < QOperatingSystemVersion::Windows8)
76
+ if (QOperatingSystemVersion::current() < QOperatingSystemVersion::Windows8_1)
77
{
78
// TODO: Probe D3D12 when it becomes the default.
79
{
80
81
p_intf->p_mainPlayerController = new PlayerController(p_intf);
82
p_intf->p_mainPlaylistController = new vlc::playlist::PlaylistController(p_intf->p_playlist);
83
84
-#ifdef UPDATE_CHECK
85
- /* Checking for VLC updates */
86
- if( var_InheritBool( p_intf, "qt-updates-notif" ) &&
87
- !var_InheritBool( p_intf, "qt-privacy-ask" ) )
88
- {
89
- int interval = var_InheritInteger( p_intf, "qt-updates-days" );
90
- if( QDate::currentDate() >
91
- getSettings()->value( "updatedate" ).toDate().addDays( interval ) )
92
- {
93
- /* The constructor of the update Dialog will do the 1st request */
94
- UpdateDialog::getInstance( p_intf );
95
- getSettings()->setValue( "updatedate", QDate::currentDate() );
96
- }
97
- }
98
-#endif
99
-
100
/* Create the normal interface in non-DP mode */
101
#ifdef _WIN32
102
p_intf->p_mi = new MainCtxWin32(p_intf);
103
104
/* Explain how to show a dialog :D */
105
p_intf->pf_show_dialog = ShowDialog;
106
107
+#ifdef UPDATE_CHECK
108
+ /* Checking for VLC updates */
109
+ if( var_InheritBool( p_intf, "qt-updates-notif" ) &&
110
+ !var_InheritBool( p_intf, "qt-privacy-ask" ) )
111
+ {
112
+ int interval = var_InheritInteger( p_intf, "qt-updates-days" );
113
+ if( QDate::currentDate() >
114
+ getSettings()->value( "updatedate" ).toDate().addDays( interval ) )
115
+ {
116
+ /* The constructor of the update Dialog will do the 1st request */
117
+ UpdateDialog::getInstance( p_intf );
118
+ getSettings()->setValue( "updatedate", QDate::currentDate() );
119
+ }
120
+ }
121
+#endif
122
+
123
/* Tell the main LibVLC thread we are ready */
124
{
125
vlc::threads::mutex_locker locker (lock);
126
_service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/scripts
Added
2
1
+(directory)
2
_service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/scripts/genqmldir.py
Added
42
1
2
+import os
3
+from pathlib import Path
4
+import sys
5
+import argparse
6
+
7
+def genQmldir(out, files, singletons, module, prefix, version):
8
+ out.write(f"module {module}\n")
9
+ out.write(f"prefer :{prefix}/\n")
10
+ for f in files:
11
+ basename = Path(f).stem
12
+ filename = os.path.basename(f)
13
+ out.write(f"{basename} {version} {filename}\n")
14
+
15
+ for f in singletons:
16
+ basename = Path(f).stem
17
+ filename = os.path.basename(f)
18
+ out.write(f"singleton {basename} {version} {filename}\n")
19
+
20
+if __name__ == "__main__":
21
+ parser = argparse.ArgumentParser(
22
+ description='This program generates qmldir files to build Qml modules'
23
+ )
24
+ parser.add_argument("-o", "--output", required=True, help="genereated file")
25
+ parser.add_argument("-s", "--srcdir", required=False, default="", help="path to the source directory")
26
+ parser.add_argument("--prefix", default="", help="module prefix path")
27
+ parser.add_argument("--version", default="1.0", help="version of the module")
28
+ parser.add_argument("--module", required=True, help="module name")
29
+ parser.add_argument("--singletons", action='append', default=, nargs='*', metavar=("CLASS"), help="mark CLASS as a singleton")
30
+ parser.add_argument("--sources", action='append', default=, nargs='*', metavar=("CLASS"), help="mark CLASS as a singleton")
31
+
32
+ args = parser.parse_args()
33
+ prefix = os.path.join("/", args.prefix, *args.module.split("."))
34
+ singletons = os.path.join(args.srcdir, s) for s in args.singletons0
35
+ files = os.path.join(args.srcdir, relpath) for relpath in args.sources0
36
+
37
+ #ensure outdir exists
38
+ os.makedirs(os.path.dirname(args.output), exist_ok=True)
39
+
40
+ with open(args.output, "w+") as fd:
41
+ genQmldir(fd, files, singletons, args.module, prefix, args.version)
42
_service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/scripts/genqrc.py
Added
37
1
2
+import os
3
+from pathlib import Path
4
+import sys
5
+import argparse
6
+
7
+def genQrc(out, files, prefix):
8
+ out.write(f'''<RCC>
9
+ <qresource prefix="{prefix}">
10
+''')
11
+ for f in files:
12
+ alias = os.path.basename(f)
13
+ abspath = os.path.abspath(f)
14
+ out.write(f' <file alias="{alias}">{abspath}</file>\n')
15
+ out.write(''' </qresource>
16
+</RCC>
17
+''')
18
+
19
+if __name__ == "__main__":
20
+ parser = argparse.ArgumentParser(
21
+ description='This program generates qrc from a list of resources'
22
+ )
23
+ parser.add_argument("-o", "--output", required=True, help="genereated file")
24
+ parser.add_argument("-s", "--srcdir", required=False, default="", help="path to the source directory")
25
+ parser.add_argument("-p", "--prefix", required=False, default="", help="resource prefix")
26
+ parser.add_argument("--sources", action='append', default=, nargs='*', metavar=("FILE"), help="file to embed")
27
+
28
+ args = parser.parse_args()
29
+ files = os.path.join(args.srcdir, relpath) for relpath in args.sources0
30
+ prefix = os.path.join("/", args.prefix)
31
+
32
+ #ensure outdir exists
33
+ os.makedirs(os.path.dirname(args.output), exist_ok=True)
34
+
35
+ with open(args.output, "w+") as fd:
36
+ genQrc(fd, files, prefix)
37
_service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/scripts/qrc2rsp.py
Added
34
1
2
+import xml.etree.ElementTree as ET
3
+import os
4
+import sys
5
+import argparse
6
+
7
+def parseQrc(fdin, fdout):
8
+ tree = ET.parse(fdin)
9
+ root = tree.getroot()
10
+ for qresources in root:
11
+ if qresources.tag != "qresource":
12
+ raise RuntimeError("unexpected qrc format")
13
+ prefix = qresources.get("prefix")
14
+ for file in qresources:
15
+ if file.tag != "file":
16
+ raise RuntimeError("unexpected qrc format")
17
+ alias = file.get("alias")
18
+ fdout.write(os.path.join(prefix, alias))
19
+ fdout.write("\n")
20
+
21
+
22
+if __name__ == "__main__":
23
+ parser = argparse.ArgumentParser(
24
+ description="This program generates a list of files from Qt qrc file, this file may be used as an input for QmlCachegen"
25
+ )
26
+ parser.add_argument("-o", "--output", type=argparse.FileType('w'),
27
+ default=sys.stdout)
28
+ parser.add_argument("FILES", nargs="*")
29
+
30
+ args = parser.parse_args()
31
+ for f in args.FILES:
32
+ with open(f) as fdin:
33
+ parseQrc(fdin, args.output)
34
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/style/AcrylicController.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/style/AcrylicController.qml
Changed
10
1
2
pragma Singleton
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
+import VLC.MainInterface
7
8
Item {
9
id: root
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/style/VLCStyle.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/style/VLCStyle.qml
Changed
11
1
2
pragma Singleton
3
import QtQuick
4
import QtQuick.Controls
5
-import org.videolan.vlc 0.1
6
+import VLC.MainInterface
7
+import VLC.Style
8
9
QtObject {
10
id: vlc_style
11
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/tests/qml_test.cpp -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/tests/qml_test.cpp
Changed
43
1
2
*****************************************************************************/
3
4
#include <QtQuickTest>
5
+#include <QQmlEngine>
6
7
// not much right now, type registration & initialisation may be required later on
8
// https://doc.qt.io/qt-5/qtquicktest-index.html#executing-c-before-qml-tests
9
10
+class Setup : public QObject
11
+{
12
+ Q_OBJECT
13
+
14
+public:
15
+ Setup() {}
16
+
17
+public slots:
18
+ void qmlEngineAvailable(QQmlEngine *engine)
19
+ {
20
+#if QT_VERSION < QT_VERSION_CHECK(6, 5, 0)
21
+ engine->addImportPath(":/qt/qml");
22
+#endif
23
+ }
24
+};
25
+
26
int main(int argc, char **argv)
27
{
28
QTEST_SET_MAIN_SOURCE_PATH
29
+
30
+ Q_INIT_RESOURCE( util_assets );
31
+#ifdef QT_USE_QMLCACHEGEN
32
+ Q_INIT_RESOURCE( util_cachegen );
33
+#endif
34
+
35
//run tests offscreen as the CI doesn't have a desktop environment
36
qputenv("QT_QPA_PLATFORM", "offscreen");
37
- return quick_test_main(argc, argv, "qml_test", QUICK_TEST_SOURCE_DIR);
38
+ Setup setup;
39
+ return quick_test_main_with_setup(argc, argv, "qml_test", QUICK_TEST_SOURCE_DIR, &setup);
40
}
41
+
42
+#include "qml_test.moc"
43
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/tests/tst_FSM.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/tests/tst_FSM.qml
Changed
201
1
2
*****************************************************************************/
3
import QtQuick
4
import QtTest
5
-import "qrc:///util/" as Util
6
+import VLC.Util
7
8
TestCase {
9
id: root
10
11
events.push(e)
12
}
13
14
- Util.FSM {
15
+ FSM {
16
id: fsm
17
initialState: fsmA
18
19
20
21
property bool selfTransitionDone: false
22
23
- Util.FSMState {
24
+ FSMState {
25
id: fsmA
26
objectName: "fsmA"
27
28
29
recEvent("-A")
30
}
31
32
- Util.FSMState {
33
+ FSMState {
34
id: fsmAA
35
objectName: "fsmAA"
36
37
38
signalInParent: fsmC,
39
})
40
41
- Util.FSMState {
42
+ FSMState {
43
id: fsmAAA
44
objectName: "fsmAAA"
45
46
47
})
48
}
49
50
- Util.FSMState {
51
+ FSMState {
52
id: fsmAAB
53
objectName: "fsmAAB"
54
55
56
}
57
}
58
}
59
- Util.FSMState {
60
+ FSMState {
61
id: fsmB
62
objectName: "fsmB"
63
64
65
function enter() { recEvent("+B") }
66
function exit() { recEvent("-B") }
67
68
- Util.FSMState {
69
+ FSMState {
70
id: fsmBA
71
objectName: "fsmBA"
72
73
74
function exit() { recEvent("-BA") }
75
}
76
}
77
- Util.FSMState {
78
+ FSMState {
79
id: fsmC
80
objectName: "fsmC"
81
82
83
check_active_inactive(fsmA, fsmAA, fsmAAA, fsmAAB)
84
}
85
86
- Util.FSM {
87
+ FSM {
88
id: fsmSeq
89
90
signal atob()
91
92
})
93
94
initialState: seqA
95
- Util.FSMState {
96
+ FSMState {
97
id: seqA
98
objectName: "seqA"
99
function enter() { recEvent("+A") }
100
101
102
})
103
}
104
- Util.FSMState {
105
+ FSMState {
106
id: seqB
107
objectName: "seqB"
108
function enter() { recEvent("+B") }
109
110
atob: seqA,
111
})
112
}
113
- Util.FSMState {
114
+ FSMState {
115
id: seqC
116
objectName: "seqC"
117
function enter() {
118
119
ctod: seqD,
120
})
121
}
122
- Util.FSMState {
123
+ FSMState {
124
id: seqD
125
objectName: "seqD"
126
function enter() { recEvent("+D") }
127
128
check_active_inactive(data.active, data.inactive)
129
}
130
131
- Util.FSM {
132
+ FSM {
133
id: fsmGuard
134
135
signal success()
136
137
})
138
139
initialState: guardInit
140
- Util.FSMState {
141
+ FSMState {
142
id: guardInit
143
objectName: "guardInit"
144
transitions: ({
145
146
147
})
148
}
149
- Util.FSMState {
150
+ FSMState {
151
id: guardOK
152
objectName: "guardOK"
153
}
154
- Util.FSMState {
155
+ FSMState {
156
id: guardFail
157
objectName: "guardFail"
158
}
159
160
}
161
162
163
- Util.FSM {
164
+ FSM {
165
id: fsmAction
166
167
signal simple()
168
169
170
initialState: actionA
171
172
- Util.FSMState {
173
+ FSMState {
174
id: actionA
175
objectName: "actionA"
176
initialState: actionAA
177
178
}
179
})
180
181
- Util.FSMState {
182
+ FSMState {
183
id: actionAA
184
objectName: "actionAA"
185
function enter() { recEvent("+AA") }
186
187
})
188
}
189
}
190
- Util.FSMState {
191
+ FSMState {
192
id: actionOK
193
objectName: "actionOK"
194
function enter() { recEvent("+OK") }
195
function exit() { recEvent("-OK") }
196
197
}
198
- Util.FSMState {
199
+ FSMState {
200
id: actionKO
201
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/util/qml/FSM.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/util/qml/FSM.qml
Changed
10
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import "qrc:///util/Helpers.js" as Helpers
6
+import VLC.Util
7
8
/**
9
* @brief a pure QML hierarchical Finite State Machine implementation
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/util/qml/FadeControllerStateGroup.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/util/qml/FadeControllerStateGroup.qml
Changed
10
1
2
3
import QtQuick
4
5
-import "qrc:///style/"
6
+import VLC.Style
7
8
StateGroup {
9
id: root
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/util/qml/FlickableScrollHandler.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/util/qml/FlickableScrollHandler.qml
Changed
14
1
2
3
import QtQml
4
5
-import org.videolan.vlc 0.1 as VLC
6
+import VLC.MainInterface
7
+import VLC.Util
8
9
-VLC.FlickableScrollHandler {
10
+FlickableScrollHandler {
11
id: handler
12
13
scaleFactor: VLC.MainCtx.intfScaleFactor
14
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/util/qml/GridSizeHelper.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/util/qml/GridSizeHelper.qml
Changed
10
1
2
3
import QtQuick
4
5
-import "qrc:///style/"
6
+import VLC.Style
7
8
QtObject{
9
// NOTE: Base picture sizing
10
_service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/util/qml/Helpers.qml
Added
134
1
2
+/*****************************************************************************
3
+ * Copyright (C) 2021 VLC authors and VideoLAN
4
+ *
5
+ * This program is free software; you can redistribute it and/or modify
6
+ * it under the terms of the GNU General Public License as published by
7
+ * the Free Software Foundation; either version 2 of the License, or
8
+ * ( at your option ) any later version.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU General Public License
16
+ * along with this program; if not, write to the Free Software
17
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
18
+ *****************************************************************************/
19
+
20
+pragma Singleton
21
+
22
+import QtQuick
23
+
24
+QtObject {
25
+
26
+ function clamp(num, min, max) {
27
+ return num <= min ? min : num >= max ? max : num;
28
+ }
29
+
30
+ function isValidInstanceOf(object, type) {
31
+ return (!!object && (object instanceof type))
32
+ }
33
+
34
+ // NOTE: This allows us to force another 'reason' even when the item has activeFocus.
35
+ function enforceFocus(item, reason) {
36
+ if (item.activeFocus && item.focusReason === reason)
37
+ return
38
+
39
+ item.focus = false;
40
+
41
+ item.forceActiveFocus(reason);
42
+ }
43
+
44
+ function applyVolume(player, delta) {
45
+ // Degrees to steps for standard mouse
46
+ delta = delta / 8 / 15
47
+
48
+ const steps = Math.ceil(Math.abs(delta))
49
+
50
+ player.muted = false
51
+
52
+ if (delta > 0)
53
+ player.setVolumeUp(steps)
54
+ else
55
+ player.setVolumeDown(steps)
56
+ }
57
+
58
+ function pointInRadius(x, y, radius) {
59
+ return (x * x + y * y < radius * radius)
60
+ }
61
+
62
+ // checks if point `pos` lies in rect `rect`
63
+ function contains(rect, pos) {
64
+ return (clamp(pos.x, rect.x, rect.x + rect.width) === pos.x)
65
+ && (clamp(pos.y, rect.y, rect.y + rect.height) === pos.y)
66
+ }
67
+
68
+ function isInteger(data) {
69
+ return (typeof data === 'number' && (data % 1) === 0)
70
+ }
71
+
72
+ function compareFloat(a, b) {
73
+ return (Math.abs(a - b) < Number.EPSILON)
74
+ }
75
+
76
+ function alignUp(a, b) {
77
+ return Math.ceil(a / b) * b
78
+ }
79
+
80
+ function alignDown(a, b) {
81
+ return Math.floor(a / b) * b
82
+ }
83
+
84
+ function isSortedIntegerArrayConsecutive(array) {
85
+ for (let i = 1; i < array.length; ++i) {
86
+ if ((arrayi - arrayi - 1) !== 1)
87
+ return false
88
+ }
89
+
90
+ return true
91
+ }
92
+
93
+ function itemsMovable(sortedItemIndexes, targetIndex) {
94
+ return !isSortedIntegerArrayConsecutive(sortedItemIndexes) ||
95
+ (targetIndex > (sortedItemIndexessortedItemIndexes.length - 1 + 1) ||
96
+ targetIndex < sortedItemIndexes0)
97
+ }
98
+
99
+ /**
100
+ * calculate content y for flickable such that item with given param will be fully visible
101
+ * @param type:Flickable flickable
102
+ * @param type:real y
103
+ * @param type:real height
104
+ * @param type:real topMargin
105
+ * @param type:real bottomMargin
106
+ * @return type:real appropriate contentY for flickable
107
+ */
108
+ function flickablePositionContaining(flickable, y, height, topMargin, bottomMargin) {
109
+ const itemTopY = flickable.originY + y
110
+ const itemBottomY = itemTopY + height
111
+
112
+ const viewTopY = flickable.contentY
113
+ const viewBottomY = viewTopY + flickable.height
114
+
115
+ let newContentY
116
+
117
+ if (itemTopY < viewTopY)
118
+ //item above view
119
+ newContentY = itemTopY - topMargin
120
+ else if (itemBottomY > viewBottomY)
121
+ //item below view
122
+ newContentY = itemBottomY + bottomMargin - flickable.height
123
+ else
124
+ newContentY = flickable.contentY
125
+
126
+ return newContentY
127
+ }
128
+
129
+ function isArray(obj) {
130
+ return (obj?.length !== undefined) ?? false
131
+ }
132
+
133
+}
134
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/util/qml/MLContextMenu.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/util/qml/MLContextMenu.qml
Changed
17
1
2
*****************************************************************************/
3
import QtQml
4
5
-import org.videolan.vlc 0.1
6
-import org.videolan.medialib 0.1
7
+import VLC.MainInterface
8
+import VLC.MediaLibrary
9
+import VLC.Dialogs
10
11
-
12
-import "qrc:///util/Helpers.js" as Helpers
13
+import VLC.Util
14
15
// @brief - a generic ML context menu
16
NativeMenu {
17
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/util/qml/ModelSortSettingHandler.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/util/qml/ModelSortSettingHandler.qml
Changed
10
1
2
*****************************************************************************/
3
import QtQml
4
5
-import org.videolan.vlc 0.1
6
+import VLC.MainInterface
7
8
/**
9
* save and restore global context properties when view is changing
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/util/qml/NativeMenu.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/util/qml/NativeMenu.qml
Changed
12
1
2
*****************************************************************************/
3
import QtQml
4
5
-import org.videolan.vlc 0.1
6
-
7
+import VLC.MainInterface
8
+import VLC.Menus
9
10
// @brief - a class that can be used to create native menus with support
11
// to asyncronously retreive data from MLBaseModel like model
12
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/util/qml/ViewDragAutoScrollHandler.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/util/qml/ViewDragAutoScrollHandler.qml
Changed
10
1
2
import QtQuick
3
import QtQuick.Controls
4
5
-import "qrc:///style/"
6
+import VLC.Style
7
8
QtObject {
9
id: root
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/native/qvlcframe.cpp -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/native/qvlcframe.cpp
Changed
19
1
2
return defaultUsed;
3
}
4
5
+QVLCFrame::QVLCFrame(qt_intf_t *_p_intf) : QWidget( NULL ), p_intf( _p_intf )
6
+{
7
+ assert(_p_intf);
8
+
9
+ if (windowFlags().testFlag(Qt::Window))
10
+ {
11
+ // If window, set the transient parent:
12
+ QVLCDialog::setWindowTransientParent(this, nullptr, p_intf);
13
+ }
14
+}
15
+
16
void QVLCFrame::keyPressEvent(QKeyEvent *keyEvent)
17
{
18
if (keyEvent->key() == Qt::Key_Escape)
19
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/native/qvlcframe.hpp -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/native/qvlcframe.hpp
Changed
62
1
2
class QVLCFrame : public QWidget
3
{
4
public:
5
- QVLCFrame( qt_intf_t *_p_intf ) : QWidget( NULL ), p_intf( _p_intf )
6
- {}
7
+ QVLCFrame( qt_intf_t *_p_intf );
8
virtual ~QVLCFrame() {}
9
10
void toggleVisible()
11
12
void keyPressEvent( QKeyEvent *keyEvent ) override;
13
};
14
15
-class QVLCMW : public QMainWindow
16
-{
17
-public:
18
- QVLCMW( qt_intf_t *_p_intf,QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags() )
19
- : QMainWindow( parent, flags )
20
- , p_intf( _p_intf )
21
- {}
22
-
23
- void toggleVisible()
24
- {
25
- if( isVisible() ) hide();
26
- else show();
27
- }
28
-protected:
29
- qt_intf_t *p_intf;
30
- QSize mainSize;
31
-
32
- void readSettings( const QString& name, QSize defSize )
33
- {
34
- QVLCTools::restoreWidgetPosition( p_intf, name, this, defSize);
35
- }
36
-
37
- void readSettings( const QString& name )
38
- {
39
- QVLCTools::restoreWidgetPosition( p_intf, name, this);
40
- }
41
- void readSettings( QSettings *settings )
42
- {
43
- QVLCTools::restoreWidgetPosition(settings, this);
44
- }
45
-
46
- void readSettings( QSettings *settings, QSize defSize)
47
- {
48
- QVLCTools::restoreWidgetPosition(settings, this, defSize);
49
- }
50
-
51
- void writeSettings( const QString& name )
52
- {
53
- QVLCTools::saveWidgetPosition( p_intf, name, this);
54
- }
55
- void writeSettings(QSettings *settings )
56
- {
57
- QVLCTools::saveWidgetPosition(settings, this);
58
- }
59
-};
60
-
61
#endif
62
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/AcrylicBackground.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/AcrylicBackground.qml
Changed
13
1
2
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
+import VLC.Widgets
9
+import VLC.Style
10
11
12
ViewBlockingRectangle {
13
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/ActionButtonOverlay.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/ActionButtonOverlay.qml
Changed
11
1
2
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-import "qrc:///style/"
7
+import VLC.Style
8
9
ButtonExt {
10
id: control
11
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/ActionButtonPrimary.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/ActionButtonPrimary.qml
Changed
11
1
2
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-import "qrc:///style/"
7
+import VLC.Style
8
9
ButtonExt {
10
id: control
11
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/AnimatedBackground.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/AnimatedBackground.qml
Changed
10
1
2
3
import QtQuick
4
5
-import "qrc:///style/"
6
+import VLC.Style
7
8
Rectangle {
9
id: root
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/BannerCone.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/BannerCone.qml
Changed
16
1
2
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.MainInterface
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
+import VLC.Util
13
14
Image {
15
id: root
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/BannerTabButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/BannerTabButton.qml
Changed
15
1
2
import QtQuick.Templates as T
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.MainInterface
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
13
T.TabButton {
14
id: control
15
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/BusyIndicatorExt.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/BusyIndicatorExt.qml
Changed
10
1
2
*****************************************************************************/
3
import QtQuick
4
import QtQuick.Controls
5
-import "qrc:///style/"
6
+import VLC.Style
7
8
BusyIndicator {
9
id: control
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/ButtonExt.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/ButtonExt.qml
Changed
15
1
2
import QtQuick.Templates as T
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.MainInterface
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
13
T.Button {
14
id: control
15
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/CSDMouseStealer.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/CSDMouseStealer.qml
Changed
10
1
2
import QtQuick
3
import QtQuick.Window
4
5
-import org.videolan.vlc 0.1
6
+import VLC.MainInterface
7
8
Item {
9
id: root
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/CSDThemeButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/CSDThemeButton.qml
Changed
14
1
2
import QtQuick.Layouts
3
import QtQuick.Window
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
+import VLC.MainInterface
9
+import VLC.Widgets
10
+import VLC.Style
11
12
T.AbstractButton {
13
id: control
14
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/CSDThemeButtonSet.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/CSDThemeButtonSet.qml
Changed
14
1
2
import QtQuick.Window
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
+import VLC.MainInterface
9
+import VLC.Style
10
+import VLC.Widgets
11
12
Rectangle {
13
id: root
14
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/CSDTitlebarTapNDrapHandler.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/CSDTitlebarTapNDrapHandler.qml
Changed
10
1
2
import QtQuick
3
import QtQuick.Window
4
5
-import org.videolan.vlc 0.1
6
+import VLC.MainInterface
7
8
Item {
9
TapHandler {
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/CSDWindowButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/CSDWindowButton.qml
Changed
24
1
2
import QtQuick.Templates as T
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
-
7
-import "."
8
-import "qrc:///style/"
9
+import VLC.Widgets as Widgets
10
+import VLC.MainInterface
11
+import VLC.Style
12
13
14
T.Button {
15
16
}
17
18
contentItem: Item {
19
- IconLabel {
20
+ Widgets.IconLabel {
21
id: icon
22
anchors.centerIn: parent
23
text: control.iconTxt
24
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/CSDWindowButtonSet.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/CSDWindowButtonSet.qml
Changed
13
1
2
import QtQuick
3
import QtQuick.Window
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
+import VLC.MainInterface
9
+import VLC.Style
10
11
Row {
12
id: windowButtonGroup
13
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/CaptionLabel.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/CaptionLabel.qml
Changed
10
1
2
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
3
*****************************************************************************/
4
import QtQuick
5
-import "qrc:///style/"
6
+import VLC.Style
7
8
LabelExt {
9
elide: Text.ElideRight
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/CheckButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/CheckButton.qml
Changed
13
1
2
import QtQuick
3
import QtQuick.Templates as T
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
+import VLC.MainInterface
9
+import VLC.Style
10
11
T.Switch {
12
id: root
13
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/CheckedDelegate.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/CheckedDelegate.qml
Changed
40
1
2
import QtQuick
3
import QtQuick.Controls
4
import QtQuick.Templates as T
5
-import org.videolan.vlc 0.1
6
7
-import "."
8
-import "qrc:///style/"
9
+import VLC.Widgets as Widgets
10
+import VLC.Style
11
12
T.ItemDelegate {
13
id: control
14
15
enabled: control.enabled
16
}
17
18
- background: AnimatedBackground {
19
+ background: Widgets.AnimatedBackground {
20
enabled: theme.initialized
21
color: control.checked ? theme.bg.highlight : theme.bg.primary
22
border.color: visualFocus ? theme.visualFocus : "transparent"
23
}
24
25
contentItem: Item { // don't use a row, it will move text when control is unchecked
26
- IconLabel {
27
+ Widgets.IconLabel {
28
id: checkIcon
29
30
height: parent.height
31
32
font.pixelSize: VLCStyle.icon_track
33
}
34
35
- MenuLabel {
36
+ Widgets.MenuLabel {
37
id: text
38
39
anchors.left: checkIcon.right
40
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/ComboBoxExt.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/ComboBoxExt.qml
Changed
17
1
2
import QtQuick.Templates as T
3
import QtQuick.Controls
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
-import "qrc:///util/Helpers.js" as Helpers
10
+import VLC.MainInterface
11
+import VLC.Style
12
+import VLC.Widgets as Widgets
13
+import VLC.Util
14
15
T.ComboBox {
16
id: control
17
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/CurrentIndicator.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/CurrentIndicator.qml
Changed
11
1
2
import QtQuick
3
import QtQuick.Controls
4
5
-import org.videolan.vlc 0.1
6
-import "qrc:///style/"
7
+import VLC.Style
8
9
Rectangle {
10
readonly property ColorContext colorContext: ColorContext {
11
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/DefaultShadow.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/DefaultShadow.qml
Changed
11
1
2
import QtQuick
3
import Qt5Compat.GraphicalEffects
4
5
-import "qrc:///style/"
6
+import VLC.Style
7
+import VLC.Util
8
9
DoubleShadow {
10
id: root
11
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/DoubleShadow.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/DoubleShadow.qml
Changed
13
1
2
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
+import VLC.Style
9
+import VLC.Util
10
11
// A convenience file to encapsulate two drop shadow images stacked on top
12
// of each other
13
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/DragItem.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/DragItem.qml
Changed
101
1
2
3
import Qt5Compat.GraphicalEffects
4
5
-import org.videolan.vlc 0.1
6
-import org.videolan.controls 0.1
7
8
-import "qrc:///style/"
9
-import "qrc:///playlist/" as Playlist
10
-import "qrc:///util/Helpers.js" as Helpers
11
-import "qrc:///util/" as Util
12
+import VLC.MainInterface
13
+import VLC.Style
14
+import VLC.Widgets as Widgets
15
+import VLC.Playlist as Playlist
16
+import VLC.Util
17
18
Item {
19
id: dragItem
20
21
}
22
}
23
24
- Util.FSM {
25
+ FSM {
26
id: fsm
27
28
signal startDrag()
29
30
31
initialState: fsmDragInactive
32
33
- Util.FSMState {
34
+ FSMState {
35
id: fsmDragInactive
36
37
function enter() {
38
39
})
40
}
41
42
- Util.FSMState {
43
+ FSMState {
44
id: fsmDragActive
45
46
initialState: fsmRequestData
47
48
stopDrag: fsmDragInactive
49
})
50
51
- Util.FSMState {
52
+ FSMState {
53
id: fsmRequestData
54
55
function enter() {
56
57
})
58
}
59
60
- Util.FSMState {
61
+ FSMState {
62
id: fsmRequestInputItem
63
64
function enter() {
65
66
})
67
}
68
69
- Util.FSMState {
70
+ FSMState {
71
id: fsmLoadingDone
72
73
function enter() {
74
75
}
76
}
77
78
- Util.FSMState {
79
+ FSMState {
80
id: fsmLoadingFailed
81
function enter() {
82
_pendingNativeDragStart = false
83
84
}
85
}
86
87
- RoundImage {
88
+ Widgets.RoundImage {
89
id: fallbackCover
90
91
anchors.centerIn: parent
92
93
border.width: VLCStyle.dp(1, VLCStyle.scale)
94
border.color: theme.border
95
96
- MenuLabel {
97
+ Widgets.MenuLabel {
98
anchors.fill: parent
99
100
verticalAlignment: Text.AlignVCenter
101
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/DrawerExt.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/DrawerExt.qml
Changed
10
1
2
import QtQuick
3
import QtQuick.Controls
4
5
-import "qrc:///style/"
6
+import VLC.Style
7
8
FocusScope {
9
id: root
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/DropShadowImage.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/DropShadowImage.qml
Changed
10
1
2
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
+import VLC.Util
7
8
ScaledImage {
9
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/EmptyLabel.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/EmptyLabel.qml
Changed
14
1
2
3
import QtQuick
4
import QtQuick.Templates as T
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
+import VLC.Style
10
+import VLC.Widgets as Widgets
11
12
T.Control {
13
id: root
14
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/EmptyLabelButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/EmptyLabelButton.qml
Changed
16
1
2
*****************************************************************************/
3
4
import QtQuick
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
+import VLC.MainInterface
10
+import VLC.Style
11
+import VLC.Widgets as Widgets
12
+import VLC.Util
13
14
EmptyLabel {
15
id: root
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/EmptyLabelHint.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/EmptyLabelHint.qml
Changed
14
1
2
*****************************************************************************/
3
4
import QtQuick
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
+import VLC.Style
10
+import VLC.Widgets as Widgets
11
12
EmptyLabel {
13
id: root
14
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/ExpandGridItemView.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/ExpandGridItemView.qml
Changed
14
1
2
3
import QtQuick
4
5
-import "qrc:///util/" as Util
6
-import "qrc:///widgets/" as Widgets
7
-import "qrc:///style/"
8
+import VLC.Util as Util
9
+import VLC.Widgets as Widgets
10
+import VLC.Style
11
12
Widgets.ExpandGridView {
13
id: root
14
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/ExpandGridView.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/ExpandGridView.qml
Changed
25
1
2
3
import QtQml.Models
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///util/Helpers.js" as Helpers
9
-import "qrc:///util/" as Util
10
+import VLC.MainInterface
11
+import VLC.Style
12
+import VLC.Util
13
14
FocusScope {
15
id: root
16
17
}
18
}
19
20
- Util.FlickableScrollHandler { }
21
+ FlickableScrollHandler { }
22
23
Loader {
24
id: headerItemLoader
25
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/FadingEdge.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/FadingEdge.qml
Changed
12
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import "qrc:///style/"
6
-import "qrc:///util/Helpers.js" as Helpers
7
+import VLC.Style
8
+import VLC.Util
9
10
Item {
11
id: root
12
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/FadingEdgeForListView.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/FadingEdgeForListView.qml
Changed
12
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import "qrc:///style/"
6
-import "qrc:///util/Helpers.js" as Helpers
7
+import VLC.Style
8
+import VLC.Util
9
10
FadingEdge {
11
id: root
12
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/FrostedGlassEffect.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/FrostedGlassEffect.qml
Changed
11
1
2
import QtQuick
3
import Qt5Compat.GraphicalEffects
4
5
-import "qrc:///style/"
6
+import VLC.Style
7
+import VLC.Util
8
9
// This item can be used as a layer effect.
10
// Make sure that the sampler name is set to "source" (default).
11
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/GridItem.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/GridItem.qml
Changed
16
1
2
import QtQuick.Layouts
3
import QtQml.Models
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///util/Helpers.js" as Helpers
9
-import "qrc:///style/"
10
+import VLC.Widgets as Widgets
11
+import VLC.Util
12
+import VLC.Style
13
14
T.ItemDelegate {
15
id: root
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/HorizontalResizeHandle.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/HorizontalResizeHandle.qml
Changed
23
1
2
*****************************************************************************/
3
import QtQuick
4
import QtQuick.Controls
5
-import "qrc:///style/"
6
-import org.videolan.vlc 0.1
7
+import VLC.MainInterface
8
+import VLC.Style
9
10
// targetWidth: concerned widget's current width
11
// sourceWidth: target's width is bounded by this value (parent's width?)
12
13
MainCtx.restoreCursor()
14
}
15
16
+ onCanceled: {
17
+ MainCtx.restoreCursor()
18
+ }
19
+
20
onPositionChanged: {
21
const f = atRight ? -1 : 1
22
const delta = mouseX - _previousX
23
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/IconButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/IconButton.qml
Changed
24
1
2
import QtQuick.Controls
3
import QtQuick.Templates as T
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "."
9
+import VLC.MainInterface
10
+import VLC.Style
11
+import VLC.Widgets as Widgets
12
13
T.Button {
14
id: control
15
16
T.ToolTip.delay: VLCStyle.delayToolTipAppear
17
T.ToolTip.text: description
18
19
- contentItem: IconLabel {
20
+ contentItem: Widgets.IconLabel {
21
font: control.font
22
color: control.color
23
text: control.text
24
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/IconLabel.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/IconLabel.qml
Changed
10
1
2
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
3
*****************************************************************************/
4
import QtQuick
5
-import "qrc:///style/"
6
+import VLC.Style
7
8
Text {
9
elide: Text.ElideNone
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/IconToolButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/IconToolButton.qml
Changed
34
1
2
import QtQuick
3
import QtQuick.Templates as T
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
-import "."
10
+import VLC.MainInterface
11
+import VLC.Widgets as Widgets
12
+import VLC.Style
13
14
T.ToolButton {
15
id: control
16
17
pressed: control.down
18
}
19
20
- background: AnimatedBackground {
21
+ background: Widgets.AnimatedBackground {
22
implicitWidth: control.font.pixelSize
23
implicitHeight: control.font.pixelSize
24
25
26
border.color: visualFocus ? theme.visualFocus : "transparent"
27
}
28
29
- contentItem: IconLabel {
30
+ contentItem: Widgets.IconLabel {
31
text: control.text
32
33
color: control.color
34
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/IconTrackButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/IconTrackButton.qml
Changed
10
1
2
3
import QtQuick
4
5
-import "qrc:///style/"
6
+import VLC.Style
7
8
IconToolButton {
9
// Style
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/ImageToolButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/ImageToolButton.qml
Changed
16
1
2
import QtQuick
3
import QtQuick.Templates as T
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
+import VLC.MainInterface
9
+import VLC.Widgets as Widgets
10
11
-import "qrc:///style/"
12
+import VLC.Style
13
14
T.ToolButton {
15
id: control
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/KeyNavigableListView.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/KeyNavigableListView.qml
Changed
25
1
2
import QtQuick.Window
3
import Qt5Compat.GraphicalEffects
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///util/" as Util
9
-import "qrc:///util/Helpers.js" as Helpers
10
+import VLC.MainInterface
11
+import VLC.Style
12
+import VLC.Util
13
14
ListView {
15
id: root
16
17
}
18
}
19
20
- Util.FlickableScrollHandler { }
21
+ FlickableScrollHandler { }
22
23
// FIXME: This is probably not useful anymore.
24
Connections {
25
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/KeyNavigableTableView.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/KeyNavigableTableView.qml
Changed
17
1
2
import QtQuick.Layouts
3
import Qt5Compat.GraphicalEffects
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///util/" as Util
8
-import "qrc:///widgets/" as Widgets
9
-import "qrc:///style/"
10
+import VLC.MainInterface
11
+import VLC.Util
12
+import VLC.Widgets as Widgets
13
+import VLC.Style
14
15
// FIXME: Maybe we could inherit from KeyNavigableListView directly.
16
FocusScope {
17
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/LabelExt.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/LabelExt.qml
Changed
10
1
2
*****************************************************************************/
3
import QtQuick 2.12
4
import QtQuick.Templates 2.12 as T
5
-import "qrc:///style/"
6
+import VLC.Style
7
8
T.Label {
9
T.ToolTip.visible: (elide !== Text.ElideNone) && (width < implicitWidth) && hoverHandler.hovered
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/ListLabel.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/ListLabel.qml
Changed
10
1
2
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
3
*****************************************************************************/
4
import QtQuick
5
-import "qrc:///style/"
6
+import VLC.Style
7
8
LabelExt {
9
elide: Text.ElideRight
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/LocalTabBar.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/LocalTabBar.qml
Changed
10
1
2
*****************************************************************************/
3
import QtQuick
4
5
-import "qrc:///style/"
6
+import VLC.Style
7
8
NavigableRow {
9
id: row
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/MLDragItem.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/MLDragItem.qml
Changed
11
1
2
3
import QtQuick
4
5
-import org.videolan.medialib 0.1
6
+import VLC.MainInterface
7
+import VLC.MediaLibrary
8
9
DragItem {
10
id: root
11
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/MLTableColumns.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/MLTableColumns.qml
Changed
11
1
2
*****************************************************************************/
3
4
5
-import org.videolan.medialib 0.1
6
+import VLC.MainInterface
7
+import VLC.MediaLibrary
8
9
10
TableColumns {
11
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/MediaCover.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/MediaCover.qml
Changed
42
1
2
import QtQuick
3
import QtQuick.Controls
4
5
-import org.videolan.vlc 0.1
6
-import org.videolan.controls 0.1
7
8
-import "qrc:///widgets/" as Widgets
9
-import "qrc:///style/"
10
+import VLC.Widgets as Widgets
11
+import VLC.Style
12
13
14
// NOTE: This rectangle is useful to discern the item against a similar background.
15
16
17
property alias cacheImage: image.cache
18
19
- property bool isImageReady: image.status == RoundImage.Ready
20
+ property bool isImageReady: image.status == Widgets.RoundImage.Ready
21
22
23
property string fallbackImageSource
24
25
26
// Children
27
28
- RoundImage {
29
+ Widgets.RoundImage {
30
id: image
31
32
anchors.fill: parent
33
34
cache: false
35
}
36
37
- RoundImage {
38
+ Widgets.RoundImage {
39
id: fallbackImage
40
41
anchors.fill: parent
42
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/MenuCaption.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/MenuCaption.qml
Changed
10
1
2
*****************************************************************************/
3
import QtQuick
4
import QtQuick.Templates as T
5
-import "qrc:///style/"
6
+import VLC.Style
7
8
T.Label {
9
elide: Text.ElideRight
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/MenuLabel.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/MenuLabel.qml
Changed
10
1
2
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
3
*****************************************************************************/
4
import QtQuick
5
-import "qrc:///style/"
6
+import VLC.Style
7
8
LabelExt {
9
elide: Text.ElideRight
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/NavigableCol.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/NavigableCol.qml
Changed
11
1
2
import QtQuick
3
import QtQuick.Templates as T
4
5
-import org.videolan.vlc 0.1
6
-
7
+import VLC.MainInterface
8
9
T.Control {
10
id: root
11
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/NavigableRow.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/NavigableRow.qml
Changed
10
1
2
import QtQuick
3
import QtQuick.Templates as T
4
5
-import org.videolan.vlc 0.1
6
+import VLC.MainInterface
7
8
T.Control {
9
id: root
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/OverlayMenu.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/OverlayMenu.qml
Changed
61
1
2
import QtQuick.Controls
3
import QtQuick.Templates as T
4
import QtQuick.Layouts
5
-import org.videolan.vlc 0.1
6
7
-import "."
8
-import "qrc:///style/"
9
+import VLC.Widgets
10
+import VLC.MainInterface
11
+import VLC.Style
12
+import VLC.Util
13
14
FocusScope {
15
id: root
16
17
}
18
}
19
20
- header: MenuLabel {
21
+ header: Widgets.MenuLabel {
22
font.pixelSize: VLCStyle.fontSize_xlarge
23
text: listView.currentModel.title
24
25
26
27
Component {
28
id: fontIcon
29
- IconLabel {
30
+ Widgets.IconLabel {
31
horizontalAlignment: Text.AlignHCenter
32
text: modelData.fontIcon
33
color: theme.fg.primary
34
35
36
Component {
37
id: tickMark
38
- ListLabel {
39
+ Widgets.ListLabel {
40
horizontalAlignment: Text.AlignHCenter
41
text: "✓"
42
color: theme.fg.primary
43
44
}
45
}
46
47
- ListLabel {
48
+ Widgets.ListLabel {
49
id: textLabel
50
51
Layout.fillWidth: true
52
53
Accessible.ignored: true
54
}
55
56
- ListLabel {
57
+ Widgets.ListLabel {
58
Layout.alignment: Qt.AlignHCenter
59
60
horizontalAlignment: Text.AlignHCenter
61
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/PageLoader.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/PageLoader.qml
Changed
13
1
2
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
3
*****************************************************************************/
4
import QtQuick
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///util/Helpers.js" as Helpers
8
+import VLC.MainInterface
9
+import VLC.Util
10
11
StackViewExt {
12
id: root
13
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/PlayCover.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/PlayCover.qml
Changed
13
1
2
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
-import "qrc:///style/"
7
-import "qrc:///widgets/" as Widgets
8
+import VLC.Style
9
+import VLC.Widgets as Widgets
10
11
Item {
12
id: root
13
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/PointingTooltip.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/PointingTooltip.qml
Changed
10
1
2
import QtQuick
3
import QtQuick.Controls
4
5
-import "qrc:///style/"
6
+import VLC.Style
7
8
ToolTipExt {
9
id: pointingTooltip
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/PopupIconToolButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/PopupIconToolButton.qml
Changed
17
1
2
import QtQuick
3
import QtQuick.Controls
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
-import "qrc:///util/Helpers.js" as Helpers
10
+import VLC.MainInterface
11
+import VLC.Style
12
+import VLC.Widgets as Widgets
13
+import VLC.Util
14
15
Widgets.IconToolButton {
16
id: control
17
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/ProgressIndicator.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/ProgressIndicator.qml
Changed
12
1
2
import QtQuick
3
import QtQuick.Controls
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
+import VLC.Style
9
10
Control {
11
id: root
12
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/RoundButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/RoundButton.qml
Changed
13
1
2
import QtQuick
3
import QtQuick.Controls
4
5
-import org.videolan.vlc 0.1
6
-import "qrc:///widgets/" as Widgets
7
-import "qrc:///style/"
8
+import VLC.Widgets as Widgets
9
+import VLC.Style
10
11
Button{
12
id: control
13
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/ScaledImage.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/ScaledImage.qml
Changed
10
1
2
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
+import VLC.MainInterface
7
8
Image {
9
id: root
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/ScanProgressBar.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/ScanProgressBar.qml
Changed
14
1
2
import QtQuick.Controls
3
import QtQuick.Templates as T
4
5
-import org.videolan.vlc 0.1
6
-import org.videolan.medialib 0.1
7
+import VLC.MediaLibrary
8
9
-import "qrc:///style/"
10
+import VLC.Style
11
12
T.ProgressBar {
13
id: control
14
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/SearchBox.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/SearchBox.qml
Changed
15
1
2
import QtQuick.Controls
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
+import VLC.MainInterface
10
+import VLC.Style
11
+import VLC.Widgets as Widgets
12
13
FocusScope {
14
id: root
15
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/SliderExt.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/SliderExt.qml
Changed
14
1
2
import QtQuick
3
import QtQuick.Templates as T
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///util/Helpers.js" as Helpers
9
+import VLC.Style
10
+import VLC.Util
11
12
T.Slider {
13
id: control
14
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/SortControl.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/SortControl.qml
Changed
16
1
2
3
import QtQuick
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
+import VLC.MainInterface
10
+import VLC.Style
11
+import VLC.Menus
12
+import VLC.Widgets as Widgets
13
14
Widgets.IconToolButton {
15
id: root
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/SpinBoxExt.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/SpinBoxExt.qml
Changed
15
1
2
import QtQuick.Controls
3
import QtQuick.Templates as T
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///widgets/" as Widgets
9
+import VLC.MainInterface
10
+import VLC.Style
11
+import VLC.Widgets as Widgets
12
13
T.SpinBox {
14
id: control
15
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/StackViewExt.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/StackViewExt.qml
Changed
10
1
2
import QtQuick
3
import QtQuick.Controls
4
5
-import "qrc:///style/"
6
+import VLC.Style
7
8
/*
9
* Custom StackView with brief transitions and helper to load view from the history
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/SubtitleLabel.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/SubtitleLabel.qml
Changed
10
1
2
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
3
*****************************************************************************/
4
import QtQuick
5
-import "qrc:///style/"
6
+import VLC.Style
7
8
LabelExt {
9
elide: Text.ElideRight
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/TableColumns.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/TableColumns.qml
Changed
16
1
2
import QtQuick.Controls
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///util/Helpers.js" as Helpers
9
-import "qrc:///style/"
10
+import VLC.Widgets as Widgets
11
+import VLC.Util
12
+import VLC.Style
13
14
Item {
15
id: root
16
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/TableViewDelegate.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/TableViewDelegate.qml
Changed
79
1
2
import QtQuick.Templates as T
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.Widgets as Widgets
10
+import VLC.Style
11
+import VLC.Util
12
13
T.Control {
14
id: delegate
15
16
onActiveChanged: {
17
if (dragItem) {
18
if (active) {
19
+ if (!selected) {
20
+ delegate.ListView.view.selectionModel.select(index, ItemSelectionModel.ClearAndSelect)
21
+ }
22
+
23
dragItem.Drag.active = true
24
} else {
25
dragItem.Drag.drop()
26
27
28
grabPermissions: TapHandler.CanTakeOverFromHandlersOfDifferentType | TapHandler.ApprovesTakeOverByAnything
29
30
- onSingleTapped: (point, button) => {
31
+ onSingleTapped: (eventPoint, button) => {
32
initialAction()
33
34
+ if (!(delegate.selected && button === Qt.RightButton)) {
35
+ const view = delegate.ListView.view
36
+ view.selectionModel.updateSelection(point.modifiers, view.currentIndex, index)
37
+ view.currentIndex = index
38
+ }
39
+
40
if (button === Qt.RightButton)
41
- delegate.rightClick(delegate, delegate.rowModel, parent.mapToGlobal(point.position.x, point.position.y))
42
+ delegate.rightClick(delegate, delegate.rowModel, parent.mapToGlobal(eventPoint.position.x, eventPoint.position.y))
43
}
44
45
onDoubleTapped: (point, button) => {
46
47
}
48
49
function initialAction() {
50
- if ((point.pressedButtons === Qt.LeftButton) || !delegate.selected) {
51
- delegate.selectAndFocus(point.modifiers, Qt.MouseFocusReason)
52
- }
53
+ delegate.forceActiveFocus(Qt.MouseFocusReason)
54
}
55
}
56
57
58
59
visible: delegate.hovered
60
61
+ // NOTE: QTBUG-100543
62
+ // Hover handling in controls is blocking in Qt 6.2, meaning if this
63
+ // control handles the hover, delegate itself won't have its `hovered`
64
+ // set. Since this control is visible when delegate is hovered, there
65
+ // becomes an infinite loop of visibility when this control is hovered.
66
+
67
+ // 1) When delegate is hovered, delegate's hovered property becomes set.
68
+ // 2) This control becomes visible.
69
+ // 3) When this control is hovered, delegate's hovered property becomes unset.
70
+ // 4) This control becomes invisible. Delegate's hovered property becomes set.
71
+ // * Infinite loop *
72
+
73
+ // Disable hovering in this control to prevent twitching due to infinite loop:
74
+ hoverEnabled: MainCtx.qtQuickControlRejectsHoverEvents()
75
+
76
onClicked: {
77
if (!delegate.selected)
78
delegate.selectAndFocus(Qt.NoModifier, Qt.MouseFocusReason)
79
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/TextAutoScroller.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/TextAutoScroller.qml
Changed
10
1
2
import QtQuick
3
import QtQuick.Controls
4
5
-import "qrc:///style/"
6
+import VLC.Style
7
8
Item {
9
id: root
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/TextFieldExt.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/TextFieldExt.qml
Changed
12
1
2
import QtQuick
3
import QtQuick.Controls
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
+import VLC.Style
9
10
TextField {
11
id: control
12
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/TextToolButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/TextToolButton.qml
Changed
13
1
2
import QtQuick
3
import QtQuick.Templates as T
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
+import VLC.MainInterface
9
+import VLC.Style
10
11
T.ToolButton {
12
id: control
13
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/ToolTipExt.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/ToolTipExt.qml
Changed
11
1
2
import QtQuick
3
import QtQuick.Templates as T
4
5
-import org.videolan.vlc 0.1
6
-import "qrc:///style/"
7
+import VLC.Style
8
9
T.ToolTip {
10
id: control
11
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/TrackDelayButton.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/TrackDelayButton.qml
Changed
14
1
2
import QtQuick
3
import QtQuick.Layouts
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///widgets/" as Widgets
8
-import "qrc:///style/"
9
+import VLC.Widgets as Widgets
10
+import VLC.Style
11
12
ButtonExt {
13
id: control
14
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/VideoProgressBar.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/VideoProgressBar.qml
Changed
11
1
2
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
3
*****************************************************************************/
4
import QtQuick
5
-import org.videolan.vlc 0.1
6
-import "qrc:///style/"
7
+import VLC.Style
8
9
//we want the progress bar to match the radius of the of the video thumbnail
10
//so we generarte two rectangles with the right radius and we clip the part we
11
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/VideoQualityLabels.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/VideoQualityLabels.qml
Changed
11
1
2
import QtQuick
3
import QtQuick.Templates as T
4
5
-import org.videolan.vlc 0.1
6
-import "qrc:///style/"
7
+import VLC.Style
8
9
Row {
10
id: root
11
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/modules/gui/qt/widgets/qml/ViewHeader.qml -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/modules/gui/qt/widgets/qml/ViewHeader.qml
Changed
15
1
2
import QtQuick.Layouts
3
import QtQuick.Templates as T
4
5
-import org.videolan.vlc 0.1
6
7
-import "qrc:///style/"
8
-import "qrc:///util/Helpers.js" as Helpers
9
+import VLC.MainInterface
10
+import VLC.Style
11
+import VLC.Util
12
13
T.Pane {
14
id: root
15
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/po/POTFILES.in -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/po/POTFILES.in
Changed
10
1
2
modules/gui/qt/player/control_list_filter.hpp
3
modules/gui/qt/player/player_controlbar_model.cpp
4
modules/gui/qt/player/player_controlbar_model.hpp
5
-modules/gui/qt/player/qml/ControlbarControls.qml
6
+modules/gui/qt/player/qml/PlayerControlbarControls.qml
7
modules/gui/qt/player/qml/NavigationBox.qml
8
modules/gui/qt/player/qml/PlaybackSpeed.qml
9
modules/gui/qt/player/qml/Player.qml
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/src/audio_output/dec.c -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/src/audio_output/dec.c
Changed
103
1
2
vlc_mutex_unlock(&stream->timing.lock);
3
}
4
5
+static vlc_tick_t stream_ClockConvert(vlc_aout_stream *stream,
6
+ vlc_tick_t system_now, vlc_tick_t pts)
7
+{
8
+ uint32_t clock_id;
9
+
10
+ vlc_clock_Lock(stream->sync.clock);
11
+ vlc_tick_t play_date =
12
+ vlc_clock_ConvertToSystem(stream->sync.clock, system_now, pts,
13
+ stream->sync.rate, &clock_id);
14
+ vlc_clock_Unlock(stream->sync.clock);
15
+
16
+ if (clock_id != stream->sync.clock_id && stream->sync.played)
17
+ {
18
+ stream->sync.clock_id = clock_id;
19
+ return VLC_TICK_INVALID;
20
+ }
21
+ return play_date;
22
+}
23
+
24
/*****************************************************************************
25
* vlc_aout_stream_Play : filter & mix the decoded buffer
26
*****************************************************************************/
27
28
if (unlikely(ret == AOUT_DEC_FAILED))
29
goto drop; /* Pipeline is unrecoverably broken :-( */
30
31
+ vlc_tick_t play_date = VLC_TICK_INVALID;
32
+ vlc_tick_t system_now;
33
+
34
if (stream->filters && (block->i_flags & BLOCK_FLAG_CORE_PRIVATE_FILTERED) == 0)
35
{
36
+ system_now = vlc_tick_now();
37
+ vlc_tick_t prefilter_pts = block->i_pts;
38
+
39
+ play_date = stream_ClockConvert(stream, system_now, block->i_pts);
40
+ if (play_date == VLC_TICK_INVALID)
41
+ return stream_StartDiscontinuity(stream, block);
42
+
43
if (atomic_load_explicit(&owner->vp.update, memory_order_relaxed))
44
{
45
vlc_mutex_lock (&owner->vp.lock);
46
47
block = aout_FiltersPlay(stream->filters, block, stream->sync.rate);
48
if (block == NULL)
49
return ret;
50
+ assert (block->i_pts != VLC_TICK_INVALID);
51
+
52
+ /* Re-trigger a clock convert if the filtered ts is different */
53
+ if (prefilter_pts != block->i_pts)
54
+ play_date = VLC_TICK_INVALID;
55
}
56
57
/* Software volume */
58
59
stream_Silence(stream, delta, block->i_pts);
60
}
61
62
- /* Drift correction */
63
- vlc_tick_t system_now = vlc_tick_now();
64
-
65
- uint32_t clock_id;
66
- vlc_clock_Lock(stream->sync.clock);
67
- vlc_tick_t play_date =
68
- vlc_clock_ConvertToSystem(stream->sync.clock, system_now, block->i_pts,
69
- stream->sync.rate, &clock_id);
70
- vlc_clock_Unlock(stream->sync.clock);
71
-
72
- if (clock_id != stream->sync.clock_id)
73
+ /* Convert the pts if not previously done by filters */
74
+ if (play_date == VLC_TICK_INVALID)
75
{
76
- stream->sync.clock_id = clock_id;
77
- block->i_flags |= BLOCK_FLAG_CORE_PRIVATE_FILTERED;
78
- return stream_StartDiscontinuity(stream, block);
79
+ system_now = vlc_tick_now();
80
+ play_date = stream_ClockConvert(stream, system_now, block->i_pts);
81
+ if (play_date == VLC_TICK_INVALID)
82
+ {
83
+ block->i_flags |= BLOCK_FLAG_CORE_PRIVATE_FILTERED;
84
+ return stream_StartDiscontinuity(stream, block);
85
+ }
86
}
87
88
+ /* Drift correction */
89
stream_Synchronize(stream, system_now, play_date, block->i_pts);
90
91
vlc_audio_meter_Process(&owner->meter, block, play_date);
92
93
{
94
block_t *block = aout_FiltersDrain (stream->filters);
95
if (block)
96
+ {
97
+ assert (block->i_pts != VLC_TICK_INVALID);
98
aout->play(aout, block, vlc_tick_now());
99
+ }
100
}
101
102
if (aout->drain)
103
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/src/clock/input_clock.c -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/src/clock/input_clock.c
Changed
24
1
2
*****************************************************************************/
3
void input_clock_ChangeRate( input_clock_t *cl, float rate )
4
{
5
+ float oldrate = cl->rate;
6
+ cl->rate = rate;
7
+
8
if( cl->b_has_reference )
9
{
10
/* Move the reference point (as if we were playing at the new rate
11
* from the start */
12
- cl->ref.system = cl->last.system - (vlc_tick_t) ((cl->last.system - cl->ref.system) / rate * cl->rate);
13
- }
14
- cl->rate = rate;
15
+ cl->ref.system = cl->last.system
16
+ - (vlc_tick_t) ((cl->last.system - cl->ref.system) / rate * oldrate);
17
18
- UpdateListener( cl, false );
19
+ UpdateListener( cl, false );
20
+ }
21
}
22
23
/*****************************************************************************
24
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/src/rust/Makefile.am -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/src/rust/Makefile.am
Changed
13
1
2
vlcrs-messages.cargo:
3
vlcrs-plugin.cargo:
4
vlcrs-utils.cargo:
5
- cd $(top_srcdir)/src/rust/$(@:.cargo=) && env \
6
- top_builddir="${abs_top_builddir}" \
7
- cargo build
8
+ env top_builddir="${abs_top_builddir}" \
9
+ $(RUST_ENV) $(CARGO) -C $(top_srcdir)/src/rust/$(@:.cargo=) --target=$(RUST_TARGET) build
10
11
if HAVE_RUST
12
TESTS += \
13
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/src/video_output/display.c -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/src/video_output/display.c
Changed
10
1
2
struct vout_display_placement place_cfg = osys->cfg.display;
3
vout_display_place_t prev_place = osys->src_place;
4
vout_display_PlacePicture(&osys->src_place, &osys->source, &place_cfg);
5
- return vout_display_PlaceEquals(&prev_place, &osys->src_place);
6
+ return !vout_display_PlaceEquals(&prev_place, &osys->src_place);
7
}
8
9
/*****************************************************************************
10
_service:obs_scm:vlc-beta-20240720.e23f2dbdee.obscpio/src/video_output/vout_intf.c -> _service:obs_scm:vlc-beta-20240726.7f41329811.obscpio/src/video_output/vout_intf.c
Changed
39
1
2
{ "5:4", "5:4" },
3
};
4
5
+static const struct
6
+{
7
+ enum vlc_video_fitting fit;
8
+ char psz_label15;
9
+} p_fit_values = {
10
+ { VLC_VIDEO_FIT_NONE, N_("None") },
11
+ { VLC_VIDEO_FIT_SMALLER, N_("Inside Window") },
12
+ { VLC_VIDEO_FIT_LARGER, N_("Outside Window") },
13
+ { VLC_VIDEO_FIT_WIDTH, N_("Window Width") },
14
+ { VLC_VIDEO_FIT_HEIGHT, N_("Window Height") },
15
+};
16
+
17
static void AddCustomRatios( vout_thread_t *p_vout, const char *psz_var,
18
char *psz_list )
19
{
20
21
free( psz_buf );
22
}
23
24
+ /* display fit */
25
+ var_Create( p_vout, "fit", VLC_VAR_INTEGER | VLC_VAR_ISCOMMAND |
26
+ VLC_VAR_DOINHERIT );
27
+ var_Change( p_vout, "fit", VLC_VAR_SETTEXT, _("Fit Mode") );
28
+
29
+ for( size_t i = 0; i < ARRAY_SIZE(p_fit_values); i++ )
30
+ {
31
+ val.i_int = p_fit_valuesi.fit;
32
+ var_Change( p_vout, "fit", VLC_VAR_ADDCHOICE, val,
33
+ p_fit_valuesi.psz_label );
34
+ }
35
+
36
/* Add a variable to indicate if the window should be on top of others */
37
var_Create( p_vout, "video-on-top", VLC_VAR_BOOL | VLC_VAR_DOINHERIT
38
| VLC_VAR_ISCOMMAND );
39
_service:obs_scm:vlc-beta.obsinfo
Changed
9
1
2
name: vlc-beta
3
-version: 20240720.e23f2dbdee
4
-mtime: 1721471895
5
-commit: e23f2dbdee195a87b267c25ba917c1622260c7d7
6
+version: 20240726.7f41329811
7
+mtime: 1721972800
8
+commit: 7f41329811c2173f53d9152aa0032d92779ee575
9