From ab50cb365c79ce497fb7d58b8968c0501986c1d1 Mon Sep 17 00:00:00 2001 From: Claudio Cambra <developer@claudiocambra.com> Date: Tue, 25 Mar 2025 15:26:22 +0100 Subject: [PATCH 1/3] macosx: Also scroll to visibile when using audio data source select indices Signed-off-by: Claudio Cambra <developer@claudiocambra.com> --- .../macosx/library/audio-library/VLCLibraryAudioDataSource.m | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/gui/macosx/library/audio-library/VLCLibraryAudioDataSource.m b/modules/gui/macosx/library/audio-library/VLCLibraryAudioDataSource.m index aef76be15dbe..4eb02f3b213e 100644 --- a/modules/gui/macosx/library/audio-library/VLCLibraryAudioDataSource.m +++ b/modules/gui/macosx/library/audio-library/VLCLibraryAudioDataSource.m @@ -701,11 +701,12 @@ NSString * const VLCLibraryAudioDataSourceDisplayedCollectionChangedNotification return; } + const NSInteger selectedRow = indices.firstIndex; if (tableView.selectedRowIndexes != indices) { [tableView selectRowIndexes:indices byExtendingSelection:NO]; + [tableView scrollRowToVisible:selectedRow]; } - const NSInteger selectedRow = indices.firstIndex; if (selectedRow >= self.displayedCollection.count) { return; } -- GitLab From 097e5cc0530e3f27762d5994b89ee43930d0bd54 Mon Sep 17 00:00:00 2001 From: Claudio Cambra <developer@claudiocambra.com> Date: Tue, 25 Mar 2025 15:27:26 +0100 Subject: [PATCH 2/3] macosx: Use audio data source selection method in audio view controller for table view Signed-off-by: Claudio Cambra <developer@claudiocambra.com> --- .../library/audio-library/VLCLibraryAudioViewController.m | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/gui/macosx/library/audio-library/VLCLibraryAudioViewController.m b/modules/gui/macosx/library/audio-library/VLCLibraryAudioViewController.m index 3c2e17cef102..72a95ffe0928 100644 --- a/modules/gui/macosx/library/audio-library/VLCLibraryAudioViewController.m +++ b/modules/gui/macosx/library/audio-library/VLCLibraryAudioViewController.m @@ -429,8 +429,7 @@ NSString *VLCLibraryPlaceholderAudioViewIdentifier = @"VLCLibraryPlaceholderAudi const NSInteger rowForLibraryItem = [self.audioDataSource rowForLibraryItem:libraryItem]; if (rowForLibraryItem != NSNotFound) { NSIndexSet * const indexSet = [NSIndexSet indexSetWithIndex:rowForLibraryItem]; - [targetMainTableView selectRowIndexes:indexSet byExtendingSelection:NO]; - [targetMainTableView scrollRowToVisible:rowForLibraryItem]; + [self.audioDataSource tableView:targetMainTableView selectRowIndices:indexSet]; } } -- GitLab From 34ed2bd42cb693ce8d34548fa92e05817c2549ca Mon Sep 17 00:00:00 2001 From: Claudio Cambra <developer@claudiocambra.com> Date: Wed, 26 Mar 2025 15:42:05 +0100 Subject: [PATCH 3/3] macosx: Fix presenting item in current audio library segment Signed-off-by: Claudio Cambra <developer@claudiocambra.com> --- .../audio-library/VLCLibraryAudioViewController.m | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/modules/gui/macosx/library/audio-library/VLCLibraryAudioViewController.m b/modules/gui/macosx/library/audio-library/VLCLibraryAudioViewController.m index 72a95ffe0928..fbf481d6ab43 100644 --- a/modules/gui/macosx/library/audio-library/VLCLibraryAudioViewController.m +++ b/modules/gui/macosx/library/audio-library/VLCLibraryAudioViewController.m @@ -459,7 +459,7 @@ NSString *VLCLibraryPlaceholderAudioViewIdentifier = @"VLCLibraryPlaceholderAudi } } -- (void)presentLibraryItemWaitForDataSourceFinished:(NSNotification *)aNotification +- (void)presentLibraryItemWaitForDataSourceFinished:(nullable NSNotification *)aNotification { if (self.audioDataSource.displayedCollectionCount < self.audioDataSource.collectionToDisplayCount) { return; @@ -502,12 +502,17 @@ NSString *VLCLibraryPlaceholderAudioViewIdentifier = @"VLCLibraryPlaceholderAudi segmentType = VLCLibrarySongsMusicSubSegmentType; } + VLCLibraryWindow * const libraryWindow = self.libraryWindow; + if (segmentType == libraryWindow.librarySegmentType) { + [self presentLibraryItemWaitForDataSourceFinished:nil]; + return; + } + [NSNotificationCenter.defaultCenter addObserver:self selector:@selector(presentLibraryItemWaitForDataSourceFinished:) name:VLCLibraryAudioDataSourceDisplayedCollectionChangedNotification object:self.audioDataSource]; - VLCLibraryWindow * const libraryWindow = self.libraryWindow; libraryWindow.librarySegmentType = segmentType; [libraryWindow.splitViewController.navSidebarViewController selectSegment:segmentType]; } -- GitLab