[vlc-commits] [Git][videolan/vlc][master] 2 commits: macosx: Add ability for collection view data sources to set expected item sizes on section basis
Felix Paul Kühne (@fkuehne)
gitlab at videolan.org
Sun Jul 20 09:14:34 UTC 2025
Felix Paul Kühne pushed to branch master at VideoLAN / VLC
Commits:
e87f3ac0 by Claudio Cambra at 2025-07-20T08:57:26+00:00
macosx: Add ability for collection view data sources to set expected item sizes on section basis
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
dbadc381 by Claudio Cambra at 2025-07-20T08:57:26+00:00
macosx: Implement aspectRatioForSection in favorites data source
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
3 changed files:
- modules/gui/macosx/library/VLCLibraryCollectionViewDataSource.h
- modules/gui/macosx/library/VLCLibraryCollectionViewDelegate.m
- modules/gui/macosx/library/favorites-library/VLCLibraryFavoritesDataSource.m
Changes:
=====================================
modules/gui/macosx/library/VLCLibraryCollectionViewDataSource.h
=====================================
@@ -23,6 +23,7 @@
#import <Cocoa/Cocoa.h>
#import "library/VLCLibraryDataSource.h"
+#import "library/VLCLibraryUIUnits.h"
NS_ASSUME_NONNULL_BEGIN
@@ -41,6 +42,10 @@ NS_ASSUME_NONNULL_BEGIN
- (void)reloadData;
+ at optional
+- (VLCLibraryCollectionViewItemAspectRatio)collectionView:(NSCollectionView *)collectionView
+ aspectRatioForSection:(NSInteger)section;
+
@end
NS_ASSUME_NONNULL_END
=====================================
modules/gui/macosx/library/VLCLibraryCollectionViewDelegate.m
=====================================
@@ -73,11 +73,23 @@
return _staticItemSize;
}
- VLCLibraryCollectionViewFlowLayout * const collectionViewFlowLayout = (VLCLibraryCollectionViewFlowLayout*)collectionViewLayout;
+ VLCLibraryCollectionViewFlowLayout * const collectionViewFlowLayout = (VLCLibraryCollectionViewFlowLayout *)collectionViewLayout;
if (collectionViewLayout) {
+ VLCLibraryCollectionViewItemAspectRatio aspectRatio = _itemsAspectRatio;
+
+ if ([collectionView.dataSource conformsToProtocol:@protocol(VLCLibraryCollectionViewDataSource)]) {
+ id<VLCLibraryCollectionViewDataSource> libraryDataSource =
+ (id<VLCLibraryCollectionViewDataSource>)collectionView.dataSource;
+
+ if ([libraryDataSource respondsToSelector:@selector(collectionView:aspectRatioForSection:)]) {
+ aspectRatio = [libraryDataSource collectionView:collectionView
+ aspectRatioForSection:indexPath.section];
+ }
+ }
+
return [VLCLibraryUIUnits adjustedCollectionViewItemSizeForCollectionView:collectionView
withLayout:collectionViewFlowLayout
- withItemsAspectRatio:_itemsAspectRatio];
+ withItemsAspectRatio:aspectRatio];
}
return NSZeroSize;
=====================================
modules/gui/macosx/library/favorites-library/VLCLibraryFavoritesDataSource.m
=====================================
@@ -462,6 +462,15 @@ viewForSupplementaryElementOfKind:(NSCollectionViewSupplementaryElementKind)kind
#pragma mark - VLCLibraryCollectionViewDataSource
+- (VLCLibraryCollectionViewItemAspectRatio)collectionView:(NSCollectionView *)collectionView
+ aspectRatioForSection:(NSInteger)section
+{
+ if ([self sectionForVisibleIndex:section] == VLCLibraryFavoritesSectionVideoMedia) {
+ return VLCLibraryCollectionViewItemAspectRatioVideoItem;
+ }
+ return VLCLibraryCollectionViewItemAspectRatioDefaultItem;
+}
+
- (id<VLCMediaLibraryItemProtocol>)libraryItemAtIndexPath:(NSIndexPath *)indexPath
forCollectionView:(NSCollectionView *)collectionView
{
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/b73fe9ec098c0a2e8a6ffaafe9033723b7c5c5de...dbadc38128b5d301ebfa7935dc4dafbf29b20c5a
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/b73fe9ec098c0a2e8a6ffaafe9033723b7c5c5de...dbadc38128b5d301ebfa7935dc4dafbf29b20c5a
You're receiving this email because of your account on code.videolan.org.
VideoLAN code repository instance
More information about the vlc-commits
mailing list