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