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

Reply via email to