[vlc-commits] [Git][videolan/vlc][master] 5 commits: macosx: Add groups search provider
Steve Lhomme (@robUx4)
gitlab at videolan.org
Wed Aug 19 23:55:55 UTC 2026
Steve Lhomme pushed to branch master at VideoLAN / VLC
Commits:
3bac96f3 by Claudio Cambra at 2026-08-19T23:44:33+00:00
macosx: Add groups search provider
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
2f210fc7 by Claudio Cambra at 2026-08-19T23:44:33+00:00
macosx: Fix query parameters for groups fetch in library model
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
079c3ca4 by Claudio Cambra at 2026-08-19T23:44:33+00:00
macosx: Reset groups list when all caches dropped
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
ad39b569 by Claudio Cambra at 2026-08-19T23:44:33+00:00
macosx: Prevent setting empty string on collection view item labels
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
b5757a20 by Claudio Cambra at 2026-08-19T23:44:33+00:00
macosx: Use media item list supplementary detail view for groups in search view
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
5 changed files:
- modules/gui/macosx/library/VLCLibraryCollectionViewItem.m
- modules/gui/macosx/library/VLCLibraryModel.m
- modules/gui/macosx/library/groups-library/VLCLibraryGroupsDataSource.m
- modules/gui/macosx/library/search-library/VLCLibrarySearchDataSource.m
- modules/gui/macosx/library/search-library/VLCLibrarySearchProvider.m
Changes:
=====================================
modules/gui/macosx/library/VLCLibraryCollectionViewItem.m
=====================================
@@ -135,8 +135,8 @@ NSString *VLCLibraryCollectionViewItemIdentifier = @"VLCLibraryCollectionViewIte
}
id<VLCMediaLibraryItemProtocol> const actualItem = libraryItem.item;
- self.mediaTitleTextField.stringValue = actualItem.displayString;
- self.secondaryInfoTextField.stringValue = actualItem.primaryDetailString;
+ self.mediaTitleTextField.stringValue = actualItem.displayString ?: @"";
+ self.secondaryInfoTextField.stringValue = actualItem.primaryDetailString ?: @"";
self.secondaryInfoTextField.hidden = NO;
__weak typeof(self) weakSelf = self;
=====================================
modules/gui/macosx/library/VLCLibraryModel.m
=====================================
@@ -951,7 +951,9 @@ static void libraryCallback(void *p_data, const vlc_ml_event_t *p_event)
- (void)resetCachedListOfGroups
{
dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INTERACTIVE, 0), ^{
- vlc_ml_group_list_t * const p_group_list = vlc_ml_list_groups(self->_p_mediaLibrary, NULL);
+ const vlc_ml_query_params_t queryParams = [self queryParams];
+ vlc_ml_group_list_t * const p_group_list =
+ vlc_ml_list_groups(self->_p_mediaLibrary, &queryParams);
if (p_group_list == NULL) {
return;
}
=====================================
modules/gui/macosx/library/groups-library/VLCLibraryGroupsDataSource.m
=====================================
@@ -44,6 +44,10 @@
selector:@selector(libraryModelGroupsListReset:)
name:VLCLibraryModelListOfGroupsReset
object:nil];
+ [notificationCenter addObserver:self
+ selector:@selector(libraryModelGroupsListReset:)
+ name:VLCLibraryModelAllCachesDropped
+ object:nil];
[notificationCenter addObserver:self
selector:@selector(libraryModelGroupDeleted:)
name:VLCLibraryModelGroupDeleted
=====================================
modules/gui/macosx/library/search-library/VLCLibrarySearchDataSource.m
=====================================
@@ -484,7 +484,8 @@ viewForSupplementaryElementOfKind:(NSCollectionViewSupplementaryElementKind)kind
const id<VLCMediaLibraryItemProtocol> item =
[self libraryItemAtIndexPath:selectedIndexPath forCollectionView:self.collectionView];
- if ([item isKindOfClass:VLCMediaLibraryAlbum.class]) {
+ if ([item isKindOfClass:VLCMediaLibraryAlbum.class] ||
+ [item isKindOfClass:VLCMediaLibraryGroup.class]) {
return VLCLibraryCollectionViewMediaItemListSupplementaryDetailViewKind;
} else if ([item conformsToProtocol:@protocol(VLCMediaLibraryAudioGroupProtocol)]) {
return VLCLibraryCollectionViewAudioGroupSupplementaryDetailViewKind;
=====================================
modules/gui/macosx/library/search-library/VLCLibrarySearchProvider.m
=====================================
@@ -77,6 +77,7 @@ static NSArray<id<VLCMediaLibraryItemProtocol>> *name(const vlc_ml_query_params_
FETCH_TYPED_LIST(fetchAlbums, album, Album, vlc_ml_list_albums(p_ml, params))
FETCH_TYPED_LIST(fetchArtists, artist, Artist, vlc_ml_list_artists(p_ml, params, false))
FETCH_TYPED_LIST(fetchGenres, genre, Genre, vlc_ml_list_genres(p_ml, params))
+FETCH_TYPED_LIST(fetchGroups, group, Group, vlc_ml_list_groups(p_ml, params))
FETCH_TYPED_LIST(fetchPlaylists, playlist, Playlist, vlc_ml_list_playlists(p_ml, params, VLC_ML_PLAYLIST_TYPE_ALL))
@implementation VLCLibrarySearchProvider
@@ -147,6 +148,13 @@ FETCH_TYPED_LIST(fetchPlaylists, playlist, Playlist, vlc_ml_list_playlists(p_ml,
fetchBlock:^(const vlc_ml_query_params_t *params) {
return fetchGenres(params);
}],
+ [[VLCLibrarySearchProvider alloc]
+ initWithDisplayTitle:_NS("Groups")
+ displayImage:[self imageWithSymbolName:@"rectangle.3.group"
+ fallbackImage:[NSImage imageNamed:NSImageNameTouchBarTagIconTemplate]]
+ fetchBlock:^(const vlc_ml_query_params_t *params) {
+ return fetchGroups(params);
+ }],
[[VLCLibrarySearchProvider alloc]
initWithDisplayTitle:_NS("Playlists")
displayImage:[self imageWithSymbolName:@"list.triangle"
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/3b6d1b0bd87cc1aa8bda5b6599a58e4688e20072...b5757a20da2ac20e3c6a24f43dc3684a0d5edacb
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/3b6d1b0bd87cc1aa8bda5b6599a58e4688e20072...b5757a20da2ac20e3c6a24f43dc3684a0d5edacb
You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help
More information about the vlc-commits
mailing list