Steve Lhomme pushed to branch master at VideoLAN / VLC
Commits:
0345a757 by Claudio Cambra at 2025-07-18T13:11:17+00:00
macosx: Remove duplicate internal properties
Signed-off-by: Claudio Cambra <develo...@claudiocambra.com>
- - - - -
dac07369 by Claudio Cambra at 2025-07-18T13:11:17+00:00
macosx: Create own table view and collection view in favorites view controller
rather than taking over video library UI components
Signed-off-by: Claudio Cambra <develo...@claudiocambra.com>
- - - - -
2 changed files:
-
modules/gui/macosx/library/favorites-library/VLCLibraryFavoritesViewController.h
-
modules/gui/macosx/library/favorites-library/VLCLibraryFavoritesViewController.m
Changes:
=====================================
modules/gui/macosx/library/favorites-library/VLCLibraryFavoritesViewController.h
=====================================
@@ -34,14 +34,13 @@ NS_ASSUME_NONNULL_BEGIN
@interface VLCLibraryFavoritesViewController :
VLCLibraryAbstractMediaLibrarySegmentViewController<VLCLibraryItemPresentingCapable>
-@property (readonly, weak) NSView *favoritesLibraryView;
-@property (readonly, weak) NSSplitView *favoritesLibrarySplitView;
-@property (readonly, weak) NSScrollView
*favoritesLibraryCollectionViewScrollView;
-@property (readonly, weak) VLCLibraryCollectionView
*favoritesLibraryCollectionView;
-@property (readonly, weak) NSScrollView
*favoritesLibraryGroupSelectionTableViewScrollView;
-@property (readonly, weak) NSTableView
*favoritesLibraryGroupSelectionTableView;
-@property (readonly, weak) NSScrollView
*favoritesLibraryGroupsTableViewScrollView;
-@property (readonly, weak) NSTableView *favoritesLibraryGroupsTableView;
+@property (readonly, strong) NSSplitView *favoritesLibrarySplitView;
+@property (readonly, strong) NSScrollView
*favoritesLibraryCollectionViewScrollView;
+@property (readonly, strong) VLCLibraryCollectionView
*favoritesLibraryCollectionView;
+@property (readonly, strong) NSScrollView
*favoritesLibraryGroupSelectionTableViewScrollView;
+@property (readonly, strong) NSTableView
*favoritesLibraryGroupSelectionTableView;
+@property (readonly, strong) NSScrollView
*favoritesLibraryGroupsTableViewScrollView;
+@property (readonly, strong) NSTableView *favoritesLibraryGroupsTableView;
@property (readwrite, strong) VLCLibraryFavoritesDataSource
*libraryFavoritesDataSource;
=====================================
modules/gui/macosx/library/favorites-library/VLCLibraryFavoritesViewController.m
=====================================
@@ -52,15 +52,6 @@
id<VLCMediaLibraryItemProtocol> _awaitingPresentingLibraryItem;
}
-@property (readwrite, weak) NSView *favoritesLibraryView;
-@property (readwrite, weak) NSSplitView *favoritesLibrarySplitView;
-@property (readwrite, weak) NSScrollView
*favoritesLibraryCollectionViewScrollView;
-@property (readwrite, weak) VLCLibraryCollectionView
*favoritesLibraryCollectionView;
-@property (readwrite, weak) NSScrollView
*favoritesLibraryGroupSelectionTableViewScrollView;
-@property (readwrite, weak) NSTableView
*favoritesLibraryGroupSelectionTableView;
-@property (readwrite, weak) NSScrollView
*favoritesLibraryGroupsTableViewScrollView;
-@property (readwrite, weak) NSTableView *favoritesLibraryGroupsTableView;
-
@end
@implementation VLCLibraryFavoritesViewController
@@ -73,7 +64,7 @@
_favoritesLibraryTableViewDelegate =
[[VLCLibraryMasterDetailViewTableViewDelegate alloc] init];
_splitViewDelegate = [[VLCLibraryTwoPaneSplitViewDelegate alloc] init];
- [self setupPropertiesFromLibraryWindow:libraryWindow];
+ [self setupProperties];
[self setupTableViews];
[self setupCollectionView];
[self setupFavoritesDataSource];
@@ -90,17 +81,15 @@
[self updatePresentedFavoritesView];
}
-- (void)setupPropertiesFromLibraryWindow:(VLCLibraryWindow *)libraryWindow
+- (void)setupProperties
{
- NSParameterAssert(libraryWindow);
- _favoritesLibraryView = libraryWindow.videoLibraryView;
- _favoritesLibrarySplitView = libraryWindow.videoLibrarySplitView;
- _favoritesLibraryCollectionViewScrollView =
libraryWindow.videoLibraryCollectionViewScrollView;
- _favoritesLibraryCollectionView = libraryWindow.videoLibraryCollectionView;
- _favoritesLibraryGroupSelectionTableViewScrollView =
libraryWindow.videoLibraryGroupSelectionTableViewScrollView;
- _favoritesLibraryGroupSelectionTableView =
libraryWindow.videoLibraryGroupSelectionTableView;
- _favoritesLibraryGroupsTableViewScrollView =
libraryWindow.videoLibraryGroupsTableViewScrollView;
- _favoritesLibraryGroupsTableView =
libraryWindow.videoLibraryGroupsTableView;
+ _favoritesLibrarySplitView = [[NSSplitView alloc] init];
+ _favoritesLibraryCollectionViewScrollView = [[NSScrollView alloc] init];
+ _favoritesLibraryCollectionView = [[VLCLibraryCollectionView alloc] init];
+ _favoritesLibraryGroupSelectionTableViewScrollView = [[NSScrollView alloc]
init];
+ _favoritesLibraryGroupSelectionTableView = [[NSTableView alloc] init];
+ _favoritesLibraryGroupsTableViewScrollView = [[NSScrollView alloc] init];
+ _favoritesLibraryGroupsTableView = [[NSTableView alloc] init];
}
- (void)setupTableViews
@@ -108,6 +97,12 @@
self.favoritesLibrarySplitView.delegate = _splitViewDelegate;
[_splitViewDelegate
resetDefaultSplitForSplitView:self.favoritesLibrarySplitView];
+ NSTableColumn * const groupsColumn = [[NSTableColumn alloc]
initWithIdentifier:@"groups"];
+ NSTableColumn * const selectedGroupColumn = [[NSTableColumn alloc]
initWithIdentifier:@"selectedGroup"];
+
+ [self.favoritesLibraryGroupsTableView addTableColumn:groupsColumn];
+ [self.favoritesLibraryGroupSelectionTableView
addTableColumn:selectedGroupColumn];
+
NSNib * const tableCellViewNib =
[[NSNib alloc]
initWithNibNamed:NSStringFromClass(VLCLibraryTableCellView.class)
bundle:nil];
@@ -115,10 +110,26 @@
forIdentifier:@"VLCLibraryTableViewCellIdentifier"];
[self.favoritesLibraryGroupSelectionTableView registerNib:tableCellViewNib
forIdentifier:@"VLCLibraryTableViewCellIdentifier"];
+
+ self.favoritesLibraryGroupsTableView.headerView = nil;
+ self.favoritesLibraryGroupSelectionTableView.headerView = nil;
+
+ self.favoritesLibraryGroupsTableView.rowHeight =
VLCLibraryUIUnits.mediumTableViewRowHeight;
+ self.favoritesLibraryGroupSelectionTableView.rowHeight =
VLCLibraryUIUnits.mediumTableViewRowHeight;
}
- (void)setupCollectionView
{
+
self.favoritesLibraryCollectionViewScrollView.translatesAutoresizingMaskIntoConstraints
= NO;
+
self.favoritesLibraryCollectionView.translatesAutoresizingMaskIntoConstraints =
NO;
+
+ self.favoritesLibraryCollectionViewScrollView.hasHorizontalScroller = NO;
+ self.favoritesLibraryCollectionViewScrollView.borderType = NSNoBorder;
+
self.favoritesLibraryCollectionViewScrollView.automaticallyAdjustsContentInsets
= NO;
+ self.favoritesLibraryCollectionViewScrollView.contentInsets =
VLCLibraryUIUnits.libraryViewScrollViewContentInsets;
+ self.favoritesLibraryCollectionViewScrollView.scrollerInsets =
VLCLibraryUIUnits.libraryViewScrollViewScrollerInsets;
+ self.favoritesLibraryCollectionViewScrollView.documentView =
self.favoritesLibraryCollectionView;
+
_collectionViewLayout = [[VLCLibraryCollectionViewFlowLayout alloc] init];
const CGFloat collectionItemSpacing =
VLCLibraryUIUnits.collectionViewItemSpacing;
@@ -134,6 +145,10 @@
_collectionViewDelegate = [[VLCLibraryCollectionViewDelegate alloc] init];
collectionView.delegate = _collectionViewDelegate;
+ collectionView.selectable = YES;
+ collectionView.allowsEmptySelection = YES;
+ collectionView.allowsMultipleSelection = YES;
+
[collectionView registerClass:VLCLibraryCollectionViewItem.class
forItemWithIdentifier:VLCLibraryCellIdentifier];
@@ -158,26 +173,47 @@
self.libraryFavoritesDataSource.collectionView =
self.favoritesLibraryCollectionView;
self.libraryFavoritesDataSource.masterTableView =
self.favoritesLibraryGroupsTableView;
self.libraryFavoritesDataSource.detailTableView =
self.favoritesLibraryGroupSelectionTableView;
+
+ self.favoritesLibraryCollectionView.dataSource =
self.libraryFavoritesDataSource;
+
+ self.favoritesLibraryGroupsTableView.dataSource =
self.libraryFavoritesDataSource;
+ self.favoritesLibraryGroupsTableView.target =
self.libraryFavoritesDataSource;
+ self.favoritesLibraryGroupsTableView.delegate =
_favoritesLibraryTableViewDelegate;
+
+ self.favoritesLibraryGroupSelectionTableView.dataSource =
self.libraryFavoritesDataSource;
+ self.favoritesLibraryGroupSelectionTableView.target =
self.libraryFavoritesDataSource;
+ self.favoritesLibraryGroupSelectionTableView.delegate =
_favoritesLibraryTableViewDelegate;
}
- (void)setupFavoritesLibraryViews
{
- _favoritesLibraryGroupsTableView.rowHeight =
VLCLibraryUIUnits.mediumTableViewRowHeight;
- _favoritesLibraryGroupSelectionTableView.rowHeight =
VLCLibraryUIUnits.mediumTableViewRowHeight;
+
self.favoritesLibraryGroupsTableViewScrollView.translatesAutoresizingMaskIntoConstraints
= NO;
+
self.favoritesLibraryGroupSelectionTableViewScrollView.translatesAutoresizingMaskIntoConstraints
= NO;
+ self.favoritesLibrarySplitView.translatesAutoresizingMaskIntoConstraints =
NO;
const NSEdgeInsets defaultInsets =
VLCLibraryUIUnits.libraryViewScrollViewContentInsets;
const NSEdgeInsets scrollerInsets =
VLCLibraryUIUnits.libraryViewScrollViewScrollerInsets;
-
_favoritesLibraryCollectionViewScrollView.automaticallyAdjustsContentInsets =
NO;
- _favoritesLibraryCollectionViewScrollView.contentInsets = defaultInsets;
- _favoritesLibraryCollectionViewScrollView.scrollerInsets = scrollerInsets;
+ self.favoritesLibraryGroupsTableViewScrollView.hasHorizontalScroller = NO;
+ self.favoritesLibraryGroupsTableViewScrollView.borderType = NSNoBorder;
+
self.favoritesLibraryGroupsTableViewScrollView.automaticallyAdjustsContentInsets
= NO;
+ self.favoritesLibraryGroupsTableViewScrollView.contentInsets =
defaultInsets;
+ self.favoritesLibraryGroupsTableViewScrollView.scrollerInsets =
scrollerInsets;
+
+
self.favoritesLibraryGroupSelectionTableViewScrollView.hasHorizontalScroller =
NO;
+ self.favoritesLibraryGroupSelectionTableViewScrollView.borderType =
NSNoBorder;
+
self.favoritesLibraryGroupSelectionTableViewScrollView.automaticallyAdjustsContentInsets
= NO;
+ self.favoritesLibraryGroupSelectionTableViewScrollView.contentInsets =
defaultInsets;
+ self.favoritesLibraryGroupSelectionTableViewScrollView.scrollerInsets =
scrollerInsets;
+
+ self.favoritesLibraryGroupsTableViewScrollView.documentView =
self.favoritesLibraryGroupsTableView;
+ self.favoritesLibraryGroupSelectionTableViewScrollView.documentView =
self.favoritesLibraryGroupSelectionTableView;
-
_favoritesLibraryGroupsTableViewScrollView.automaticallyAdjustsContentInsets =
NO;
- _favoritesLibraryGroupsTableViewScrollView.contentInsets = defaultInsets;
- _favoritesLibraryGroupsTableViewScrollView.scrollerInsets = scrollerInsets;
-
_favoritesLibraryGroupSelectionTableViewScrollView.automaticallyAdjustsContentInsets
= NO;
- _favoritesLibraryGroupSelectionTableViewScrollView.contentInsets =
defaultInsets;
- _favoritesLibraryGroupSelectionTableViewScrollView.scrollerInsets =
scrollerInsets;
+ self.favoritesLibrarySplitView.vertical = YES;
+ self.favoritesLibrarySplitView.dividerStyle = NSSplitViewDividerStyleThin;
+ self.favoritesLibrarySplitView.delegate = _splitViewDelegate;
+ [self.favoritesLibrarySplitView
addArrangedSubview:self.favoritesLibraryGroupsTableViewScrollView];
+ [self.favoritesLibrarySplitView
addArrangedSubview:self.favoritesLibraryGroupSelectionTableViewScrollView];
}
- (void)setupFavoritesPlaceholderView
@@ -241,16 +277,6 @@
- (void)updatePresentedFavoritesView
{
- self.favoritesLibraryCollectionView.dataSource =
self.libraryFavoritesDataSource;
-
- self.favoritesLibraryGroupsTableView.dataSource =
self.libraryFavoritesDataSource;
- self.favoritesLibraryGroupsTableView.target =
self.libraryFavoritesDataSource;
- self.favoritesLibraryGroupsTableView.delegate =
_favoritesLibraryTableViewDelegate;
-
- self.favoritesLibraryGroupSelectionTableView.dataSource =
self.libraryFavoritesDataSource;
- self.favoritesLibraryGroupSelectionTableView.target =
self.libraryFavoritesDataSource;
- self.favoritesLibraryGroupSelectionTableView.delegate =
_favoritesLibraryTableViewDelegate;
-
[self.libraryFavoritesDataSource reloadData];
if ([self hasFavoriteItems]) {
@@ -275,8 +301,7 @@
- (void)presentFavoritesCollectionView
{
- [self.libraryWindow displayLibraryView:self.favoritesLibraryView];
- self.favoritesLibraryCollectionViewScrollView.hidden = NO;
+ [self.libraryWindow
displayLibraryView:self.favoritesLibraryCollectionViewScrollView];
}
- (void)presentPlaceholderFavoritesView
@@ -288,13 +313,10 @@
- (void)presentFavoritesLibraryView:(VLCLibraryViewModeSegment)viewModeSegment
{
- [self.libraryWindow displayLibraryView:self.favoritesLibraryView];
if (viewModeSegment == VLCLibraryGridViewModeSegment) {
- self.favoritesLibrarySplitView.hidden = YES;
- self.favoritesLibraryCollectionViewScrollView.hidden = NO;
+ [self.libraryWindow
displayLibraryView:self.favoritesLibraryCollectionViewScrollView];
} else if (viewModeSegment == VLCLibraryListViewModeSegment) {
- self.favoritesLibrarySplitView.hidden = NO;
- self.favoritesLibraryCollectionViewScrollView.hidden = YES;
+ [self.libraryWindow displayLibraryView:self.favoritesLibrarySplitView];
} else {
NSAssert(false, @"View mode must be grid or list mode");
}
View it on GitLab:
https://code.videolan.org/videolan/vlc/-/compare/bb9df9f18cfdbcc3a1ea4933221d0a3b4c4ed7c8...dac0736929af1beeddf5a1db7f6675a03007355c
--
View it on GitLab:
https://code.videolan.org/videolan/vlc/-/compare/bb9df9f18cfdbcc3a1ea4933221d0a3b4c4ed7c8...dac0736929af1beeddf5a1db7f6675a03007355c
You're receiving this email because of your account on code.videolan.org.
VideoLAN code repository instance
_______________________________________________
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits