From 931b61e4e2546effd555e7a5dacfc50ab9e872a9 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Thu, 26 Feb 2026 18:16:44 +0800 Subject: [PATCH] macosx: Make master/detail view table view delegate VLCLibraryGroupHeaderDelegate conformant Signed-off-by: Claudio Cambra --- ...braryMasterDetailViewTableViewDataSource.h | 3 +++ ...LibraryMasterDetailViewTableViewDelegate.h | 7 +++++- ...LibraryMasterDetailViewTableViewDelegate.m | 23 +++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDataSource.h b/modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDataSource.h index 88d7c3eb8a..d0725c6a4c 100644 --- a/modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDataSource.h +++ b/modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDataSource.h @@ -31,6 +31,9 @@ NS_ASSUME_NONNULL_BEGIN @property (readwrite, weak) NSTableView *masterTableView; @property (readwrite, weak) NSTableView *detailTableView; +@optional +- (void)updateHeaderForTableView:(NSTableView *)tableView; + @end NS_ASSUME_NONNULL_END diff --git a/modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDelegate.h b/modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDelegate.h index 912dd78243..521ae3e47e 100644 --- a/modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDelegate.h +++ b/modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDelegate.h @@ -22,11 +22,16 @@ #import +#import "library/VLCLibraryGroupHeaderDelegate.h" #import "library/VLCLibraryTableViewDelegate.h" +@class VLCLibraryAudioGroupTableHeaderView; + NS_ASSUME_NONNULL_BEGIN -@interface VLCLibraryMasterDetailViewTableViewDelegate : VLCLibraryTableViewDelegate +@interface VLCLibraryMasterDetailViewTableViewDelegate : VLCLibraryTableViewDelegate + +@property (readwrite, weak) VLCLibraryAudioGroupTableHeaderView *detailTableHeaderView; @end diff --git a/modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDelegate.m b/modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDelegate.m index 9b33ccc4e5..a786bc9428 100644 --- a/modules/gui/macosx/library/VLCLibraryMasterDetailViewTableViewDelegate.m +++ b/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 @@ -41,7 +44,27 @@ if (tableView == masterDetailViewDataSource.masterTableView) { [masterDetailViewDataSource.detailTableView reloadData]; + if ([masterDetailViewDataSource respondsToSelector:@selector(updateHeaderForTableView:)]) { + [masterDetailViewDataSource updateHeaderForTableView:tableView]; + } } } +#pragma mark - VLCLibraryGroupHeaderDelegate + +- (void)updateHeaderForTableView:(NSTableView *)tableView + withRepresentedItem:(VLCLibraryRepresentedItem *)representedItem + fallbackTitle:(NSString *)fallbackTitle + fallbackDetail:(NSString *)fallbackDetail +{ + if (tableView != tableView) { // TODO + return; + } + + [self.detailTableHeaderView updateWithRepresentedItem:representedItem + fallbackTitle:fallbackTitle + fallbackDetail:fallbackDetail]; +} + + @end