Felix Paul Kühne pushed to branch master at VideoLAN / VLC


Commits:
795f45a9 by Claudio Cambra at 2026-03-01T12:21:15+01:00
macosx: Remove unused selectedRow in master detail view table view delegate

Signed-off-by: Claudio Cambra <[email protected]>

- - - - -
931b61e4 by Claudio Cambra at 2026-03-01T12:21:15+01:00
macosx: Make master/detail view table view delegate 
VLCLibraryGroupHeaderDelegate conformant

Signed-off-by: Claudio Cambra <[email protected]>

- - - - -
712be535 by Claudio Cambra at 2026-03-01T12:21:15+01:00
macosx: Implement updateHeaderForTableView in abstract grouping data source

Signed-off-by: Claudio Cambra <[email protected]>

- - - - -
c830598e by Claudio Cambra at 2026-03-01T12:21:15+01:00
macosx: Leverage group header delegation in table view delegate within 
favorites view controller

Signed-off-by: Claudio Cambra <[email protected]>

- - - - -
6de215ed by Claudio Cambra at 2026-03-01T12:21:15+01:00
macosx: Move header delegate definition into master detail view data source 
protocol

Signed-off-by: Claudio Cambra <[email protected]>

- - - - -
8cb0ed9b by Claudio Cambra at 2026-03-01T12:21:15+01:00
macosx: Align update header based on selection method names

Signed-off-by: Claudio Cambra <[email protected]>

- - - - -
7a445136 by Claudio Cambra at 2026-03-01T12:21:15+01:00
macosx: Implement updateHeaderForMasterSelection in playlist data source

Signed-off-by: Claudio Cambra <[email protected]>

- - - - -
be21afbd by Claudio Cambra at 2026-03-01T12:21:15+01:00
macosx: Implement header view support in playlist view controller

Signed-off-by: Claudio Cambra <[email protected]>

- - - - -
6e18b0ad by Claudio Cambra at 2026-03-01T12:21:15+01:00
macosx: Add support for header in groups table view

Signed-off-by: Claudio Cambra <[email protected]>

- - - - -
57979cb8 by Claudio Cambra at 2026-03-01T12:21:15+01:00
macosx: Use correct table views in abstract master/detail view classes

Signed-off-by: Claudio Cambra <[email protected]>

- - - - -
2d978211 by Claudio Cambra at 2026-03-01T12:21:15+01:00
macosx: Correctly implement table view check in master detail view table view 
delegate

Signed-off-by: Claudio Cambra <[email protected]>

- - - - -
4f16e924 by Claudio Cambra at 2026-03-01T12:21:15+01:00
macosx: Make representedItem parameter in group header delegate nullable

Signed-off-by: Claudio Cambra <[email protected]>

- - - - -


14 changed files:

- modules/gui/macosx/library/VLCLibraryAbstractGroupingDataSource.h
- modules/gui/macosx/library/VLCLibraryAbstractGroupingDataSource.m
- modules/gui/macosx/library/VLCLibraryGroupHeaderDelegate.h
- modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDataSource.h
- modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDelegate.h
- modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDelegate.m
- modules/gui/macosx/library/audio-library/VLCLibraryAudioViewController.m
- modules/gui/macosx/library/favorites-library/VLCLibraryFavoritesDataSource.h
- 
modules/gui/macosx/library/favorites-library/VLCLibraryFavoritesViewController.m
- modules/gui/macosx/library/groups-library/VLCLibraryGroupsViewController.h
- modules/gui/macosx/library/groups-library/VLCLibraryGroupsViewController.m
- modules/gui/macosx/library/playlist-library/VLCLibraryPlaylistDataSource.m
- modules/gui/macosx/library/playlist-library/VLCLibraryPlaylistViewController.h
- modules/gui/macosx/library/playlist-library/VLCLibraryPlaylistViewController.m


Changes:

=====================================
modules/gui/macosx/library/VLCLibraryAbstractGroupingDataSource.h
=====================================
@@ -24,6 +24,7 @@
 
 #import "library/VLCLibraryCollectionViewDataSource.h"
 #import "library/VLCLibraryMasterDetailViewTableViewDataSource.h"
+#import "library/VLCLibraryGroupHeaderDelegate.h"
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -36,6 +37,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property (readwrite, weak) NSCollectionView *collectionView;
 @property (readwrite, weak) NSTableView *masterTableView;
 @property (readwrite, weak) NSTableView *detailTableView;
+@property (readwrite, weak, nullable) id<VLCLibraryGroupHeaderDelegate> 
headerDelegate;
 
 - (void)reloadData;
 


=====================================
modules/gui/macosx/library/VLCLibraryAbstractGroupingDataSource.m
=====================================
@@ -51,6 +51,7 @@
     [self.masterTableView reloadData];
     [self.detailTableView reloadData];
     [self.collectionView reloadData];
+    [self updateHeaderInTableView:self.detailTableView 
forMasterSelection:self.masterTableView];
 }
 
 - (NSUInteger)indexOfMediaItem:(const int64_t)libraryId inArray:(NSArray const 
*)array
@@ -105,6 +106,30 @@
     return nil;
 }
 
+- (void)updateHeaderInTableView:(NSTableView *)detailTableView 
forMasterSelection:(NSTableView *)masterTableView
+{
+    if (self.headerDelegate == nil) {
+        return;
+    }
+
+    VLCLibraryRepresentedItem *representedItem = nil;
+    NSString *fallbackTitle = nil;
+    NSString *fallbackDetail = nil;
+
+    const NSInteger selectedRow = masterTableView.selectedRow;
+    if (selectedRow != -1) {
+        const id<VLCMediaLibraryItemProtocol> selectedItem = [self 
libraryItemAtRow:selectedRow forTableView:masterTableView];
+        representedItem = [[VLCLibraryRepresentedItem alloc] 
initWithItem:selectedItem parentType:self.currentParentType];
+        fallbackTitle = selectedItem.displayString;
+        fallbackDetail = selectedItem.primaryDetailString;
+    }
+
+    [self.headerDelegate updateHeaderForTableView:detailTableView
+                              withRepresentedItem:representedItem
+                                    fallbackTitle:fallbackTitle
+                                   fallbackDetail:fallbackDetail];
+}
+
 - (NSInteger)rowForLibraryItem:(id<VLCMediaLibraryItemProtocol>)libraryItem
 {
     if (libraryItem == nil) {


=====================================
modules/gui/macosx/library/VLCLibraryGroupHeaderDelegate.h
=====================================
@@ -29,9 +29,9 @@ NS_ASSUME_NONNULL_BEGIN
 @protocol VLCLibraryGroupHeaderDelegate <NSObject>
 
 - (void)updateHeaderForTableView:(NSTableView *)tableView
-            withRepresentedItem:(VLCLibraryRepresentedItem *)representedItem
-                  fallbackTitle:(NSString *)fallbackTitle
-                 fallbackDetail:(NSString *)fallbackDetail;
+             withRepresentedItem:(nullable VLCLibraryRepresentedItem 
*)representedItem
+                   fallbackTitle:(NSString *)fallbackTitle
+                  fallbackDetail:(NSString *)fallbackDetail;
 
 @end
 


=====================================
modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDataSource.h
=====================================
@@ -24,6 +24,8 @@
 
 #import "library/VLCLibraryTableViewDataSource.h"
 
+@protocol VLCLibraryGroupHeaderDelegate;
+
 NS_ASSUME_NONNULL_BEGIN
 
 @protocol VLCLibraryMasterDetailViewTableViewDataSource 
<VLCLibraryTableViewDataSource>
@@ -31,6 +33,12 @@ NS_ASSUME_NONNULL_BEGIN
 @property (readwrite, weak) NSTableView *masterTableView;
 @property (readwrite, weak) NSTableView *detailTableView;
 
+@optional
+
+@property (readwrite, weak, nullable) id<VLCLibraryGroupHeaderDelegate> 
headerDelegate;
+
+- (void)updateHeaderInTableView:(NSTableView *)detailTableView 
forMasterSelection:(NSTableView *)masterTableView;
+
 @end
 
 NS_ASSUME_NONNULL_END


=====================================
modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDelegate.h
=====================================
@@ -22,11 +22,16 @@
 
 #import <Cocoa/Cocoa.h>
 
+#import "library/VLCLibraryGroupHeaderDelegate.h"
 #import "library/VLCLibraryTableViewDelegate.h"
 
+@class VLCLibraryAudioGroupTableHeaderView;
+
 NS_ASSUME_NONNULL_BEGIN
 
-@interface VLCLibraryMasterDetailViewTableViewDelegate : 
VLCLibraryTableViewDelegate
+@interface VLCLibraryMasterDetailViewTableViewDelegate : 
VLCLibraryTableViewDelegate<VLCLibraryGroupHeaderDelegate>
+
+@property (readwrite, weak) VLCLibraryAudioGroupTableHeaderView 
*detailTableHeaderView;
 
 @end
 


=====================================
modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDelegate.m
=====================================
@@ -23,6 +23,9 @@
 #import "VLCLibraryMasterDetailViewTableViewDelegate.h"
 
 #import "library/VLCLibraryMasterDetailViewTableViewDataSource.h"
+#import "library/VLCLibraryRepresentedItem.h"
+
+#import "library/audio-library/VLCLibraryAudioGroupTableHeaderView.h"
 
 @implementation VLCLibraryMasterDetailViewTableViewDelegate
 
@@ -31,7 +34,6 @@
     NSParameterAssert(notification);
     NSTableView * const tableView = (NSTableView *)notification.object;
     NSAssert(tableView, @"Must be a valid table view");
-    const NSInteger selectedRow = tableView.selectedRow;
 
     if (![tableView.dataSource 
conformsToProtocol:@protocol(VLCLibraryMasterDetailViewTableViewDataSource)]) {
         return;
@@ -42,7 +44,32 @@
 
     if (tableView == masterDetailViewDataSource.masterTableView) {
         [masterDetailViewDataSource.detailTableView reloadData];
+        [masterDetailViewDataSource 
updateHeaderInTableView:masterDetailViewDataSource.detailTableView 
forMasterSelection:tableView];
+    }
+}
+
+#pragma mark - VLCLibraryGroupHeaderDelegate
+
+- (void)updateHeaderForTableView:(NSTableView *)tableView
+             withRepresentedItem:(nullable VLCLibraryRepresentedItem 
*)representedItem
+                   fallbackTitle:(NSString *)fallbackTitle
+                  fallbackDetail:(NSString *)fallbackDetail
+{
+    if (![tableView.dataSource 
conformsToProtocol:@protocol(VLCLibraryMasterDetailViewTableViewDataSource)]) {
+        return;
     }
+
+    NSObject<VLCLibraryMasterDetailViewTableViewDataSource> * const 
masterDetailViewDataSource =
+        (NSObject<VLCLibraryMasterDetailViewTableViewDataSource> 
*)tableView.dataSource;
+
+    if (tableView != masterDetailViewDataSource.detailTableView) {
+        return;
+    }
+
+    [self.detailTableHeaderView updateWithRepresentedItem:representedItem
+                                            fallbackTitle:fallbackTitle
+                                           fallbackDetail:fallbackDetail];
 }
 
+
 @end


=====================================
modules/gui/macosx/library/audio-library/VLCLibraryAudioViewController.m
=====================================
@@ -588,9 +588,9 @@ NSString *VLCLibraryPlaceholderAudioViewIdentifier = 
@"VLCLibraryPlaceholderAudi
 }
 
 - (void)updateHeaderForTableView:(NSTableView *)tableView
-            withRepresentedItem:(VLCLibraryRepresentedItem *)representedItem
-                  fallbackTitle:(NSString *)fallbackTitle
-                 fallbackDetail:(NSString *)fallbackDetail
+             withRepresentedItem:(nullable VLCLibraryRepresentedItem 
*)representedItem
+                   fallbackTitle:(NSString *)fallbackTitle
+                  fallbackDetail:(NSString *)fallbackDetail
 {
     if (tableView != self.audioCollectionSelectionTableView &&
         tableView != self.audioGroupSelectionTableView &&


=====================================
modules/gui/macosx/library/favorites-library/VLCLibraryFavoritesDataSource.h
=====================================
@@ -48,7 +48,6 @@ typedef NS_ENUM(NSUInteger, VLCLibraryFavoritesSection) {
 @property (readwrite, weak) NSCollectionView *collectionView;
 @property (readwrite, weak) NSTableView *masterTableView;
 @property (readwrite, weak) NSTableView *detailTableView;
-@property (readwrite, weak, nullable) id<VLCLibraryGroupHeaderDelegate> 
headerDelegate;
 
 - (void)reloadData;
 - (NSInteger)rowForLibraryItem:(id<VLCMediaLibraryItemProtocol>)libraryItem;


=====================================
modules/gui/macosx/library/favorites-library/VLCLibraryFavoritesViewController.m
=====================================
@@ -45,12 +45,11 @@
 #import "library/favorites-library/VLCLibraryFavoritesTableViewDelegate.h"
 #import "library/audio-library/VLCLibraryAlbumTableCellView.h"
 #import 
"library/audio-library/VLCLibraryCollectionViewAudioGroupSupplementaryDetailView.h"
-#import "library/VLCLibraryGroupHeaderDelegate.h"
 #import "library/audio-library/VLCLibraryAudioGroupTableHeaderView.h"
 #import "library/audio-library/VLCLibraryAudioGroupTableHeaderCell.h"
 #import "main/VLCMain.h"
 
-@interface VLCLibraryFavoritesViewController () <VLCLibraryGroupHeaderDelegate>
+@interface VLCLibraryFavoritesViewController ()
 {
     VLCLibraryFavoritesTableViewDelegate *_favoritesLibraryTableViewDelegate;
     VLCLibraryTwoPaneSplitViewDelegate *_splitViewDelegate;
@@ -119,6 +118,7 @@
     _favoritesHeaderView = [[VLCLibraryAudioGroupTableHeaderView alloc] 
initWithFrame:headerFrame];
     _favoritesHeaderView.autoresizingMask = NSViewWidthSizable;
 
+    _favoritesLibraryTableViewDelegate.detailTableHeaderView = 
self.favoritesHeaderView;
     self.favoritesLibraryGroupSelectionTableView.headerView = 
self.favoritesHeaderView;
 
     NSTableColumn * const groupsColumn = [[NSTableColumn alloc] 
initWithIdentifier:@"groups"];
@@ -225,7 +225,7 @@
     self.libraryFavoritesDataSource.collectionView = 
self.favoritesLibraryCollectionView;
     self.libraryFavoritesDataSource.masterTableView = 
self.favoritesLibraryGroupsTableView;
     self.libraryFavoritesDataSource.detailTableView = 
self.favoritesLibraryGroupSelectionTableView;
-    self.libraryFavoritesDataSource.headerDelegate = self;
+    self.libraryFavoritesDataSource.headerDelegate = 
_favoritesLibraryTableViewDelegate;
     
     self.favoritesLibraryCollectionView.dataSource = 
self.libraryFavoritesDataSource;
     
@@ -453,20 +453,4 @@
     }
 }
 
-#pragma mark - VLCLibraryGroupHeaderDelegate
-
-- (void)updateHeaderForTableView:(NSTableView *)tableView
-            withRepresentedItem:(VLCLibraryRepresentedItem *)representedItem
-                  fallbackTitle:(NSString *)fallbackTitle
-                 fallbackDetail:(NSString *)fallbackDetail
-{
-    if (tableView != self.favoritesLibraryGroupSelectionTableView) {
-        return;
-    }
-
-    [self.favoritesHeaderView updateWithRepresentedItem:representedItem
-                                          fallbackTitle:fallbackTitle
-                                         fallbackDetail:fallbackDetail];
-}
-
 @end


=====================================
modules/gui/macosx/library/groups-library/VLCLibraryGroupsViewController.h
=====================================
@@ -34,6 +34,7 @@ NS_ASSUME_NONNULL_BEGIN
 @class VLCLibraryTableView;
 @class VLCLibraryWindow;
 @class VLCLibraryTwoPaneSplitViewDelegate;
+@class VLCLibraryAudioGroupTableHeaderView;
 
 @interface VLCLibraryGroupsViewController : 
VLCLibraryAbstractMediaLibrarySegmentViewController<NSSplitViewDelegate, 
VLCLibraryItemPresentingCapable>
 
@@ -50,6 +51,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property (readonly) VLCLibraryTwoPaneSplitViewDelegate *splitViewDelegate;
 
 @property (readonly) VLCLibraryGroupsDataSource *dataSource;
+@property (readonly) VLCLibraryAudioGroupTableHeaderView 
*selectedGroupTableHeaderView;
 
 - (instancetype)initWithLibraryWindow:(VLCLibraryWindow *)libraryWindow;
 


=====================================
modules/gui/macosx/library/groups-library/VLCLibraryGroupsViewController.m
=====================================
@@ -40,6 +40,9 @@
 #import "library/VLCLibraryWindow.h"
 #import "library/VLCLibraryWindowPersistentPreferences.h"
 
+#import "library/audio-library/VLCLibraryAudioGroupTableHeaderCell.h"
+#import "library/audio-library/VLCLibraryAudioGroupTableHeaderView.h"
+
 #import "library/groups-library/VLCLibraryGroupsDataSource.h"
 
 #import "main/VLCMain.h"
@@ -140,6 +143,8 @@
     _selectedGroupTableView = [[VLCLibraryTableView alloc] init];
     _listViewSplitView = [[NSSplitView alloc] init];
 
+    self.dataSource.headerDelegate = self.tableViewDelegate;
+
     self.groupsTableViewScrollView.translatesAutoresizingMaskIntoConstraints = 
NO;
     
self.selectedGroupTableViewScrollView.translatesAutoresizingMaskIntoConstraints 
= NO;
     self.listViewSplitView.translatesAutoresizingMaskIntoConstraints = NO;
@@ -185,8 +190,24 @@
     [self.selectedGroupTableView registerNib:tableCellViewNib
                                
forIdentifier:@"VLCLibraryTableViewCellIdentifier"];
 
+    CGFloat headerHeight = VLCLibraryAudioGroupTableHeaderViewHeight;
+    if (@available(macOS 26.0, *)) {
+        headerHeight += VLCLibraryUIUnits.largeSpacing * 2;
+    }
+
+    const NSRect headerFrame = NSMakeRect(0.f,
+                                          0.f,
+                                          
self.groupsTableView.bounds.size.width,
+                                          headerHeight);
+    _selectedGroupTableHeaderView = [[VLCLibraryAudioGroupTableHeaderView 
alloc] initWithFrame:headerFrame withInternalPaddingAddedForContentView:YES];
+    self.selectedGroupTableHeaderView.autoresizingMask = NSViewWidthSizable;
+
+    self.tableViewDelegate.detailTableHeaderView = 
self.selectedGroupTableHeaderView;
+
     self.groupsTableView.headerView = nil;
-    self.selectedGroupTableView.headerView = nil;
+    self.selectedGroupTableView.headerView = self.selectedGroupTableHeaderView;
+
+    selectedGroupColumn.headerCell = [VLCLibraryAudioGroupTableHeaderCell new];
 
     self.groupsTableView.rowHeight = 
VLCLibraryUIUnits.mediumTableViewRowHeight;
     self.selectedGroupTableView.rowHeight = 
VLCLibraryUIUnits.mediumTableViewRowHeight;


=====================================
modules/gui/macosx/library/playlist-library/VLCLibraryPlaylistDataSource.m
=====================================
@@ -30,6 +30,7 @@
 #import "library/VLCLibraryCollectionViewSupplementaryElementView.h"
 #import "library/VLCLibraryController.h"
 #import "library/VLCLibraryDataTypes.h"
+#import "library/VLCLibraryMasterDetailViewTableViewDelegate.h"
 #import "library/VLCLibraryModel.h"
 #import "library/VLCLibraryRepresentedItem.h"
 
@@ -48,6 +49,8 @@ typedef NS_ENUM(NSInteger, VLCLibraryDataSourceCacheAction) {
 
 @implementation VLCLibraryPlaylistDataSource
 
+@synthesize headerDelegate;
+
 - (instancetype)init
 {
     self = [super init];
@@ -122,6 +125,7 @@ typedef NS_ENUM(NSInteger, VLCLibraryDataSourceCacheAction) 
{
 {
     self.playlists = [[self.libraryModel 
listOfPlaylistsOfType:self.playlistType] mutableCopy];
     [self reloadViews];
+    [self updateHeaderInTableView:self.detailTableView 
forMasterSelection:self.masterTableView];
 }
 
 - (void)reloadViews
@@ -379,4 +383,30 @@ 
viewForSupplementaryElementOfKind:(NSCollectionViewSupplementaryElementKind)kind
     [self reloadData];
 }
 
+- (void)updateHeaderInTableView:(NSTableView *)detailTableView 
forMasterSelection:(NSTableView *)masterTableView
+{
+    if (self.headerDelegate == nil) {
+        return;
+    }
+
+    const NSInteger selectedRow = masterTableView.selectedRow;
+    if (selectedRow < 0 || selectedRow >= self.playlists.count) {
+        [self.headerDelegate updateHeaderForTableView:detailTableView
+                                  withRepresentedItem:nil
+                                        fallbackTitle:_NS("Playlists")
+                                       fallbackDetail:_NS("Select a 
playlist")];
+        return;
+    }
+
+    const VLCMediaLibraryPlaylist * const playlist = 
self.playlists[selectedRow];
+    VLCLibraryRepresentedItem * const representedItem =
+        [[VLCLibraryRepresentedItem alloc] initWithItem:playlist
+                                             
parentType:self.currentParentType];
+
+    [self.headerDelegate updateHeaderForTableView:detailTableView
+                              withRepresentedItem:representedItem
+                                    fallbackTitle:playlist.primaryDetailString
+                                   
fallbackDetail:playlist.secondaryDetailString];
+}
+
 @end


=====================================
modules/gui/macosx/library/playlist-library/VLCLibraryPlaylistViewController.h
=====================================
@@ -35,6 +35,7 @@ NS_ASSUME_NONNULL_BEGIN
 @class VLCLibraryTableView;
 @class VLCLibraryTwoPaneSplitViewDelegate;
 @class VLCLibraryWindow;
+@class VLCLibraryAudioGroupTableHeaderView;
 
 @interface VLCLibraryPlaylistViewController : 
VLCLibraryAbstractMediaLibrarySegmentViewController<NSSplitViewDelegate>
 
@@ -51,6 +52,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property (readonly) VLCLibraryCollectionViewDelegate *collectionViewDelegate;
 @property (readonly) VLCLibraryMasterDetailViewTableViewDelegate 
*tableViewDelegate;
 @property (readonly) VLCLibraryTwoPaneSplitViewDelegate *splitViewDelegate;
+@property (readonly) VLCLibraryAudioGroupTableHeaderView 
*detailTableHeaderView;
 
 - (instancetype)initWithLibraryWindow:(VLCLibraryWindow *)libraryWindow;
 


=====================================
modules/gui/macosx/library/playlist-library/VLCLibraryPlaylistViewController.m
=====================================
@@ -41,6 +41,8 @@
 #import "library/audio-library/VLCLibraryAudioViewController.h"
 
 #import "library/playlist-library/VLCLibraryPlaylistDataSource.h"
+#import "library/audio-library/VLCLibraryAudioGroupTableHeaderCell.h"
+#import "library/audio-library/VLCLibraryAudioGroupTableHeaderView.h"
 
 #import "library/video-library/VLCLibraryVideoViewController.h"
 
@@ -138,6 +140,8 @@
     _detailTableView = [[VLCLibraryTableView alloc] init];
     _listViewSplitView = [[NSSplitView alloc] init];
 
+    self.dataSource.headerDelegate = _tableViewDelegate;
+
     self.masterTableViewScrollView.translatesAutoresizingMaskIntoConstraints = 
NO;
     self.detailTableViewScrollView.translatesAutoresizingMaskIntoConstraints = 
NO;
     self.listViewSplitView.translatesAutoresizingMaskIntoConstraints = NO;
@@ -183,8 +187,24 @@
     [self.detailTableView registerNib:tableCellViewNib
                         forIdentifier:@"VLCLibraryTableViewCellIdentifier"];
 
+    CGFloat headerHeight = VLCLibraryAudioGroupTableHeaderViewHeight;
+    if (@available(macOS 26.0, *)) {
+        headerHeight += VLCLibraryUIUnits.largeSpacing * 2;
+    }
+
+    const NSRect headerFrame = NSMakeRect(0.f,
+                                          0.f,
+                                          
self.masterTableView.bounds.size.width,
+                                          headerHeight);
+    _detailTableHeaderView = [[VLCLibraryAudioGroupTableHeaderView alloc] 
initWithFrame:headerFrame withInternalPaddingAddedForContentView:YES];
+    self.detailTableHeaderView.autoresizingMask = NSViewWidthSizable;
+
+    self.tableViewDelegate.detailTableHeaderView = self.detailTableHeaderView;
+
     self.masterTableView.headerView = nil;
-    self.detailTableView.headerView = nil;
+    self.detailTableView.headerView = self.detailTableHeaderView;
+
+    detailColumn.headerCell = [VLCLibraryAudioGroupTableHeaderCell new];
 
     self.masterTableView.rowHeight = 
VLCLibraryUIUnits.mediumTableViewRowHeight;
     self.detailTableView.rowHeight = 
VLCLibraryUIUnits.mediumTableViewRowHeight;



View it on GitLab: 
https://code.videolan.org/videolan/vlc/-/compare/5c744ed591af85d2455ebe2616a8c32c016d29e1...4f16e9241e25d20985c01145aa1f3606aabc4578

-- 
View it on GitLab: 
https://code.videolan.org/videolan/vlc/-/compare/5c744ed591af85d2455ebe2616a8c32c016d29e1...4f16e9241e25d20985c01145aa1f3606aabc4578
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance
_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to