Browse Source

macosx: Use the super method for most common path to generate cellview in VLCLibraryVideoTableViewDelegate

Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
pull/162/head
Claudio Cambra 3 years ago
committed by Steve Lhomme
parent
commit
e557840705
  1. 4
      modules/gui/macosx/library/video-library/VLCLibraryVideoTableViewDelegate.h
  2. 21
      modules/gui/macosx/library/video-library/VLCLibraryVideoTableViewDelegate.m

4
modules/gui/macosx/library/video-library/VLCLibraryVideoTableViewDelegate.h

@ -22,9 +22,11 @@
#import <Cocoa/Cocoa.h>
#import "library/VLCLibraryTableViewDelegate.h"
NS_ASSUME_NONNULL_BEGIN
@interface VLCLibraryVideoTableViewDelegate : NSObject <NSTableViewDelegate>
@interface VLCLibraryVideoTableViewDelegate : VLCLibraryTableViewDelegate
@end

21
modules/gui/macosx/library/video-library/VLCLibraryVideoTableViewDelegate.m

@ -30,6 +30,15 @@
@implementation VLCLibraryVideoTableViewDelegate
- (instancetype)init
{
self = [super init];
if (self) {
self.cellViewIdentifier = @"VLCVideoLibraryTableViewCellIdentifier";
}
return self;
}
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
if (![tableView.dataSource conformsToProtocol:@protocol(VLCLibraryTableViewDataSource)]) {
@ -39,17 +48,19 @@
NSObject<VLCLibraryTableViewDataSource> * const vlcDataSource = (NSObject<VLCLibraryTableViewDataSource>*)tableView.dataSource;
NSAssert(vlcDataSource != nil, @"Should be a valid data source");
VLCLibraryTableCellView *cellView = [tableView makeViewWithIdentifier:@"VLCVideoLibraryTableViewCellIdentifier" owner:self];
const id<VLCMediaLibraryItemProtocol> mediaItem = [vlcDataSource libraryItemAtRow:row forTableView:tableView];
if (mediaItem != nil) {
return [super tableView:tableView viewForTableColumn:tableColumn row:row];
}
VLCLibraryTableCellView *cellView = [tableView makeViewWithIdentifier:self.cellViewIdentifier owner:self];
if (!cellView) {
cellView = [VLCLibraryTableCellView fromNibWithOwner:self];
cellView.identifier = @"VLCVideoLibraryTableViewCellIdentifier";
}
const id<VLCMediaLibraryItemProtocol> mediaItem = [vlcDataSource libraryItemAtRow:row forTableView:tableView];
if (mediaItem != nil) {
cellView.representedItem = mediaItem;
} else if ([vlcDataSource isKindOfClass:[VLCLibraryVideoTableViewDataSource class]]) {
if ([vlcDataSource isKindOfClass:[VLCLibraryVideoTableViewDataSource class]]) {
VLCLibraryVideoTableViewDataSource * const videoTableViewDataSource = (VLCLibraryVideoTableViewDataSource *)vlcDataSource;
NSTableView * const groupsTableView = videoTableViewDataSource.groupsTableView;

Loading…
Cancel
Save