mirror of
https://code.videolan.org/videolan/vlc
synced 2024-09-24 20:48:52 +02:00
macosx: Move VLCLibraryGroupDataSource to own file, rename to VLCLibraryAudioGroupDataSource
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
This commit is contained in:
parent
f4b9dd883e
commit
154647b89c
@ -94,6 +94,7 @@
|
||||
53628403291147C500640C15 /* VLCSubScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 53628400291147C500640C15 /* VLCSubScrollView.m */; };
|
||||
536EFBF5295BCB8300F4CB13 /* VLCLibraryUIUnits.m in Sources */ = {isa = PBXBuildFile; fileRef = 536EFBF4295BCB8300F4CB13 /* VLCLibraryUIUnits.m */; };
|
||||
536EFC39295E521600F4CB13 /* VLCLibraryVideoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 536EFC38295E521600F4CB13 /* VLCLibraryVideoViewController.m */; };
|
||||
53903D3A29576ED500D0B308 /* VLCLibraryAudioGroupDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 53903D3929576ED500D0B308 /* VLCLibraryAudioGroupDataSource.m */; };
|
||||
53B447CA2939823E00857588 /* VLCLibrarySongsTableViewSongPlayingTableCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = 53B447C92939823E00857588 /* VLCLibrarySongsTableViewSongPlayingTableCellView.m */; };
|
||||
53B447F6293BB47B00857588 /* VLCLibraryVideoCollectionViewContainerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 53B447EC293BB47A00857588 /* VLCLibraryVideoCollectionViewContainerView.m */; };
|
||||
53B447F7293BB47B00857588 /* VLCLibraryVideoCollectionViewContainerViewDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 53B447ED293BB47A00857588 /* VLCLibraryVideoCollectionViewContainerViewDataSource.m */; };
|
||||
@ -277,6 +278,8 @@
|
||||
536EFBF4295BCB8300F4CB13 /* VLCLibraryUIUnits.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VLCLibraryUIUnits.m; sourceTree = "<group>"; };
|
||||
536EFC37295E521600F4CB13 /* VLCLibraryVideoViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCLibraryVideoViewController.h; sourceTree = "<group>"; };
|
||||
536EFC38295E521600F4CB13 /* VLCLibraryVideoViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VLCLibraryVideoViewController.m; sourceTree = "<group>"; };
|
||||
53903D3829576ED500D0B308 /* VLCLibraryAudioGroupDataSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCLibraryAudioGroupDataSource.h; sourceTree = "<group>"; };
|
||||
53903D3929576ED500D0B308 /* VLCLibraryAudioGroupDataSource.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VLCLibraryAudioGroupDataSource.m; sourceTree = "<group>"; };
|
||||
53B447C82939823E00857588 /* VLCLibrarySongsTableViewSongPlayingTableCellView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCLibrarySongsTableViewSongPlayingTableCellView.h; sourceTree = "<group>"; };
|
||||
53B447C92939823E00857588 /* VLCLibrarySongsTableViewSongPlayingTableCellView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VLCLibrarySongsTableViewSongPlayingTableCellView.m; sourceTree = "<group>"; };
|
||||
53B447EC293BB47A00857588 /* VLCLibraryVideoCollectionViewContainerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCLibraryVideoCollectionViewContainerView.m; sourceTree = "<group>"; };
|
||||
@ -1299,6 +1302,8 @@
|
||||
536283DF291146BC00640C15 /* VLCLibraryAlbumTracksDataSource.m */,
|
||||
7DE2F0422282C84A0040DD0A /* VLCLibraryAudioDataSource.h */,
|
||||
7DE2F0432282C84A0040DD0A /* VLCLibraryAudioDataSource.m */,
|
||||
53903D3829576ED500D0B308 /* VLCLibraryAudioGroupDataSource.h */,
|
||||
53903D3929576ED500D0B308 /* VLCLibraryAudioGroupDataSource.m */,
|
||||
536283E8291146BC00640C15 /* VLCLibraryCollectionViewAlbumSupplementaryDetailView.h */,
|
||||
536283E1291146BC00640C15 /* VLCLibraryCollectionViewAlbumSupplementaryDetailView.m */,
|
||||
536283E7291146BC00640C15 /* VLCLibraryCollectionViewAudioGroupSupplementaryDetailView.h */,
|
||||
@ -1906,6 +1911,7 @@
|
||||
536283F9291146BC00640C15 /* VLCLibraryCollectionViewFlowLayout.m in Sources */,
|
||||
6BBBF9851F7B257100B404CD /* VLCLogMessage.m in Sources */,
|
||||
7D445D8E2203375100263D34 /* VLCPlaylistMenuController.m in Sources */,
|
||||
53903D3A29576ED500D0B308 /* VLCLibraryAudioGroupDataSource.m in Sources */,
|
||||
1C31139A1E508C6900D4DD76 /* VLCBookmarksWindowController.m in Sources */,
|
||||
6B0AB0F01F1AC8B3003A1B4E /* VLCSlider.m in Sources */,
|
||||
7D28E6362275B4820098D30E /* NSColor+VLCAdditions.m in Sources */,
|
||||
|
@ -117,6 +117,8 @@ libmacosx_plugin_la_SOURCES = \
|
||||
gui/macosx/library/audio-library/VLCLibraryAlbumTracksDataSource.m \
|
||||
gui/macosx/library/audio-library/VLCLibraryAudioDataSource.h \
|
||||
gui/macosx/library/audio-library/VLCLibraryAudioDataSource.m \
|
||||
gui/macosx/library/audio-library/VLCLibraryAudioGroupDataSource.h \
|
||||
gui/macosx/library/audio-library/VLCLibraryAudioGroupDataSource.m \
|
||||
gui/macosx/library/audio-library/VLCLibraryAudioViewController.h \
|
||||
gui/macosx/library/audio-library/VLCLibraryAudioViewController.m \
|
||||
gui/macosx/library/audio-library/VLCLibraryCollectionViewAlbumSupplementaryDetailView.h \
|
||||
|
@ -26,6 +26,7 @@
|
||||
#import "library/VLCLibraryUIUnits.h"
|
||||
|
||||
#import "library/audio-library/VLCLibraryAudioDataSource.h"
|
||||
#import "library/audio-library/VLCLibraryAudioGroupDataSource.h"
|
||||
#import "library/audio-library/VLCLibraryCollectionViewAlbumSupplementaryDetailView.h"
|
||||
#import "library/audio-library/VLCLibraryCollectionViewAudioGroupSupplementaryDetailView.h"
|
||||
|
||||
@ -240,7 +241,7 @@ static CVReturn detailViewAnimationCallback(CVDisplayLinkRef displayLink,
|
||||
break;
|
||||
}
|
||||
|
||||
} else if ([self.collectionView.dataSource isKindOfClass:[VLCLibraryGroupDataSource class]]) {
|
||||
} else if ([self.collectionView.dataSource isKindOfClass:[VLCLibraryAudioGroupDataSource class]]) {
|
||||
[layoutAttributesArray addObject:[self layoutAttributesForSupplementaryViewOfKind:VLCLibraryCollectionViewAlbumSupplementaryDetailViewKind atIndexPath:self.selectedIndexPath]];
|
||||
|
||||
} else if ([self.collectionView.dataSource isKindOfClass:[VLCLibraryVideoCollectionViewContainerViewDataSource class]]) {
|
||||
|
@ -28,7 +28,7 @@
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@class VLCLibraryModel;
|
||||
@class VLCLibraryGroupDataSource;
|
||||
@class VLCLibraryAudioGroupDataSource;
|
||||
@class VLCMediaLibraryAlbum;
|
||||
|
||||
typedef NS_ENUM(NSUInteger, VLCAudioLibrarySegment) {
|
||||
@ -41,7 +41,7 @@ typedef NS_ENUM(NSUInteger, VLCAudioLibrarySegment) {
|
||||
@interface VLCLibraryAudioDataSource : NSObject <VLCLibraryTableViewDataSource, NSTableViewDelegate, VLCLibraryCollectionViewDataSource>
|
||||
|
||||
@property (readwrite, assign) VLCLibraryModel *libraryModel;
|
||||
@property (readwrite, assign) VLCLibraryGroupDataSource *groupDataSource;
|
||||
@property (readwrite, assign) VLCLibraryAudioGroupDataSource *audioGroupDataSource;
|
||||
@property (readwrite, assign) NSTableView *collectionSelectionTableView;
|
||||
@property (readwrite, assign) NSTableView *groupSelectionTableView;
|
||||
@property (readwrite, assign) NSTableView *songsTableView;
|
||||
@ -57,10 +57,4 @@ typedef NS_ENUM(NSUInteger, VLCAudioLibrarySegment) {
|
||||
|
||||
@end
|
||||
|
||||
@interface VLCLibraryGroupDataSource : NSObject <VLCLibraryTableViewDataSource, NSTableViewDelegate, NSCollectionViewDataSource>
|
||||
|
||||
@property (readwrite, retain, nullable) NSArray <VLCMediaLibraryAlbum *> *representedListOfAlbums;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
@ -37,6 +37,7 @@
|
||||
#import "library/VLCLibraryCollectionViewMediaItemSupplementaryDetailView.h"
|
||||
|
||||
#import "library/audio-library/VLCLibraryAlbumTableCellView.h"
|
||||
#import "library/audio-library/VLCLibraryAudioGroupDataSource.h"
|
||||
#import "library/audio-library/VLCLibraryCollectionViewAlbumSupplementaryDetailView.h"
|
||||
#import "library/audio-library/VLCLibraryCollectionViewAudioGroupSupplementaryDetailView.h"
|
||||
#import "library/audio-library/VLCLibrarySongsTableViewSongPlayingTableCellView.h"
|
||||
@ -472,7 +473,7 @@ static NSString *VLCLibraryYearSortDescriptorKey = @"VLCLibraryYearSortDescripto
|
||||
break;
|
||||
}
|
||||
|
||||
_groupDataSource.representedListOfAlbums = nil; // Clear whatever was being shown before
|
||||
_audioGroupDataSource.representedListOfAlbums = nil; // Clear whatever was being shown before
|
||||
[self reloadData];
|
||||
}
|
||||
|
||||
@ -586,16 +587,16 @@ static NSString *VLCLibraryYearSortDescriptorKey = @"VLCLibraryYearSortDescripto
|
||||
NSInteger libraryItemIndex = showingAllItemsEntry ? selectedRow - 1 : selectedRow;
|
||||
|
||||
if (libraryItemIndex < 0 && showingAllItemsEntry) {
|
||||
_groupDataSource.representedListOfAlbums = _libraryModel.listOfAlbums;
|
||||
_audioGroupDataSource.representedListOfAlbums = _libraryModel.listOfAlbums;
|
||||
} else {
|
||||
id<VLCMediaLibraryItemProtocol> libraryItem = _displayedCollection[libraryItemIndex];
|
||||
|
||||
if (_currentParentType == VLC_ML_PARENT_ALBUM) {
|
||||
_groupDataSource.representedListOfAlbums = @[(VLCMediaLibraryAlbum *)libraryItem];
|
||||
_audioGroupDataSource.representedListOfAlbums = @[(VLCMediaLibraryAlbum *)libraryItem];
|
||||
} else if(_currentParentType != VLC_ML_PARENT_UNKNOWN) {
|
||||
_groupDataSource.representedListOfAlbums = [_libraryModel listAlbumsOfParentType:_currentParentType forID:libraryItem.libraryID];
|
||||
_audioGroupDataSource.representedListOfAlbums = [_libraryModel listAlbumsOfParentType:_currentParentType forID:libraryItem.libraryID];
|
||||
} else { // FIXME: we have nothing to show here
|
||||
_groupDataSource.representedListOfAlbums = nil;
|
||||
_audioGroupDataSource.representedListOfAlbums = nil;
|
||||
}
|
||||
}
|
||||
|
||||
@ -641,7 +642,7 @@ static NSString *VLCLibraryYearSortDescriptorKey = @"VLCLibraryYearSortDescripto
|
||||
|
||||
- (void)groubSelectionDoubleClickAction:(id)sender
|
||||
{
|
||||
NSArray *listOfAlbums = _groupDataSource.representedListOfAlbums;
|
||||
NSArray *listOfAlbums = _audioGroupDataSource.representedListOfAlbums;
|
||||
NSUInteger albumCount = listOfAlbums.count;
|
||||
NSInteger clickedRow = _groupSelectionTableView.clickedRow;
|
||||
|
||||
@ -739,88 +740,3 @@ viewForSupplementaryElementOfKind:(NSCollectionViewSupplementaryElementKind)kind
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation VLCLibraryGroupDataSource
|
||||
|
||||
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView
|
||||
{
|
||||
if (_representedListOfAlbums != nil) {
|
||||
return _representedListOfAlbums.count;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
|
||||
{
|
||||
VLCLibraryAlbumTableCellView *cellView = [tableView makeViewWithIdentifier:VLCAudioLibraryCellIdentifier owner:self];
|
||||
|
||||
if (cellView == nil) {
|
||||
cellView = [VLCLibraryAlbumTableCellView fromNibWithOwner:self];
|
||||
cellView.identifier = VLCAudioLibraryCellIdentifier;
|
||||
}
|
||||
|
||||
cellView.representedAlbum = (VLCMediaLibraryAlbum *)[self libraryItemAtRow:row forTableView:tableView];
|
||||
return cellView;
|
||||
}
|
||||
|
||||
- (id<VLCMediaLibraryItemProtocol>)libraryItemAtRow:(NSInteger)row
|
||||
forTableView:(NSTableView *)tableView
|
||||
{
|
||||
return _representedListOfAlbums[row];
|
||||
}
|
||||
|
||||
- (CGFloat)tableView:(NSTableView *)tableView heightOfRow:(NSInteger)row
|
||||
{
|
||||
VLCLibraryAlbumTableCellView *cellView = (VLCLibraryAlbumTableCellView *)[self tableView:tableView viewForTableColumn:[[NSTableColumn alloc] initWithIdentifier:VLCLibraryAlbumTableCellTableViewColumnIdentifier] row:row];
|
||||
return cellView == nil ? -1 : cellView.height;
|
||||
}
|
||||
|
||||
- (BOOL)tableView:(NSTableView *)tableView shouldSelectRow:(NSInteger)rowIndex
|
||||
{
|
||||
// We use this with nested table views, since the table view cell is the VLCLibraryAlbumTableCellView.
|
||||
// We don't want to select the outer cell, only the inner cells in the album view's table.
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (NSInteger)collectionView:(NSCollectionView *)collectionView
|
||||
numberOfItemsInSection:(NSInteger)section
|
||||
{
|
||||
return _representedListOfAlbums.count;
|
||||
}
|
||||
|
||||
- (NSInteger)numberOfSectionsInCollectionView:(NSCollectionView *)collectionView
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
- (NSCollectionViewItem *)collectionView:(NSCollectionView *)collectionView
|
||||
itemForRepresentedObjectAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
VLCLibraryCollectionViewItem *viewItem = [collectionView makeItemWithIdentifier:VLCLibraryCellIdentifier forIndexPath:indexPath];
|
||||
viewItem.representedItem = _representedListOfAlbums[indexPath.item];
|
||||
return viewItem;
|
||||
}
|
||||
|
||||
- (NSView *)collectionView:(NSCollectionView *)collectionView
|
||||
viewForSupplementaryElementOfKind:(NSCollectionViewSupplementaryElementKind)kind
|
||||
atIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
if ([kind isEqualToString:VLCLibraryCollectionViewAlbumSupplementaryDetailViewKind]) {
|
||||
|
||||
VLCLibraryCollectionViewAlbumSupplementaryDetailView* albumSupplementaryDetailView = [collectionView makeSupplementaryViewOfKind:kind withIdentifier:VLCLibraryCollectionViewAlbumSupplementaryDetailViewKind forIndexPath:indexPath];
|
||||
|
||||
VLCMediaLibraryAlbum *album = _representedListOfAlbums[indexPath.item];
|
||||
albumSupplementaryDetailView.representedAlbum = album;
|
||||
albumSupplementaryDetailView.selectedItem = [collectionView itemAtIndex:indexPath.item];
|
||||
albumSupplementaryDetailView.parentScrollView = [VLCMain sharedInstance].libraryWindow.audioCollectionViewScrollView;
|
||||
albumSupplementaryDetailView.internalScrollView.scrollParentY = YES;
|
||||
|
||||
return albumSupplementaryDetailView;
|
||||
|
||||
}
|
||||
|
||||
return nil;
|
||||
}
|
||||
|
||||
@end
|
||||
|
@ -0,0 +1,39 @@
|
||||
/*****************************************************************************
|
||||
* VLCLibraryAudioGroupDataSource.h: MacOS X interface module
|
||||
*****************************************************************************
|
||||
* Copyright (C) 2022 VLC authors and VideoLAN
|
||||
*
|
||||
* Authors: Claudio Cambra <developer@claudiocambra.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
|
||||
*****************************************************************************/
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
#import "library/VLCLibraryTableView.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@class VLCLibraryModel;
|
||||
@class VLCLibraryAudioGroupDataSource;
|
||||
@class VLCMediaLibraryAlbum;
|
||||
|
||||
@interface VLCLibraryAudioGroupDataSource : NSObject <VLCLibraryTableViewDataSource, NSTableViewDelegate, NSCollectionViewDataSource>
|
||||
|
||||
@property (readwrite, retain, nullable) NSArray <VLCMediaLibraryAlbum *> *representedListOfAlbums;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@ -0,0 +1,120 @@
|
||||
/*****************************************************************************
|
||||
* VLCLibraryAudioGroupDataSource.m: MacOS X interface module
|
||||
*****************************************************************************
|
||||
* Copyright (C) 2022 VLC authors and VideoLAN
|
||||
*
|
||||
* Authors: Claudio Cambra <developer@claudiocambra.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
|
||||
*****************************************************************************/
|
||||
|
||||
#import "VLCLibraryAudioGroupDataSource.h"
|
||||
|
||||
#import "main/VLCMain.h"
|
||||
|
||||
#import "library/VLCLibraryDataTypes.h"
|
||||
#import "library/VLCLibraryCollectionViewItem.h"
|
||||
#import "library/VLCLibraryCollectionViewFlowLayout.h"
|
||||
#import "library/VLCLibraryWindow.h"
|
||||
|
||||
#import "library/audio-library/VLCLibraryAlbumTableCellView.h"
|
||||
#import "library/audio-library/VLCLibraryCollectionViewAlbumSupplementaryDetailView.h"
|
||||
|
||||
#import "views/VLCSubScrollView.h"
|
||||
|
||||
@implementation VLCLibraryAudioGroupDataSource
|
||||
|
||||
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView
|
||||
{
|
||||
if (_representedListOfAlbums != nil) {
|
||||
return _representedListOfAlbums.count;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
|
||||
{
|
||||
VLCLibraryAlbumTableCellView *cellView = [tableView makeViewWithIdentifier:VLCAudioLibraryCellIdentifier owner:self];
|
||||
|
||||
if (cellView == nil) {
|
||||
cellView = [VLCLibraryAlbumTableCellView fromNibWithOwner:self];
|
||||
cellView.identifier = VLCAudioLibraryCellIdentifier;
|
||||
}
|
||||
|
||||
cellView.representedAlbum = (VLCMediaLibraryAlbum *)[self libraryItemAtRow:row forTableView:tableView];
|
||||
return cellView;
|
||||
}
|
||||
|
||||
- (id<VLCMediaLibraryItemProtocol>)libraryItemAtRow:(NSInteger)row
|
||||
forTableView:(NSTableView *)tableView
|
||||
{
|
||||
return _representedListOfAlbums[row];
|
||||
}
|
||||
|
||||
- (CGFloat)tableView:(NSTableView *)tableView heightOfRow:(NSInteger)row
|
||||
{
|
||||
VLCLibraryAlbumTableCellView *cellView = (VLCLibraryAlbumTableCellView *)[self tableView:tableView viewForTableColumn:[[NSTableColumn alloc] initWithIdentifier:VLCLibraryAlbumTableCellTableViewColumnIdentifier] row:row];
|
||||
return cellView == nil ? -1 : cellView.height;
|
||||
}
|
||||
|
||||
- (BOOL)tableView:(NSTableView *)tableView shouldSelectRow:(NSInteger)rowIndex
|
||||
{
|
||||
// We use this with nested table views, since the table view cell is the VLCLibraryAlbumTableCellView.
|
||||
// We don't want to select the outer cell, only the inner cells in the album view's table.
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (NSInteger)collectionView:(NSCollectionView *)collectionView
|
||||
numberOfItemsInSection:(NSInteger)section
|
||||
{
|
||||
return _representedListOfAlbums.count;
|
||||
}
|
||||
|
||||
- (NSInteger)numberOfSectionsInCollectionView:(NSCollectionView *)collectionView
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
- (NSCollectionViewItem *)collectionView:(NSCollectionView *)collectionView
|
||||
itemForRepresentedObjectAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
VLCLibraryCollectionViewItem *viewItem = [collectionView makeItemWithIdentifier:VLCLibraryCellIdentifier forIndexPath:indexPath];
|
||||
viewItem.representedItem = _representedListOfAlbums[indexPath.item];
|
||||
return viewItem;
|
||||
}
|
||||
|
||||
- (NSView *)collectionView:(NSCollectionView *)collectionView
|
||||
viewForSupplementaryElementOfKind:(NSCollectionViewSupplementaryElementKind)kind
|
||||
atIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
if ([kind isEqualToString:VLCLibraryCollectionViewAlbumSupplementaryDetailViewKind]) {
|
||||
|
||||
VLCLibraryCollectionViewAlbumSupplementaryDetailView* albumSupplementaryDetailView = [collectionView makeSupplementaryViewOfKind:kind withIdentifier:VLCLibraryCollectionViewAlbumSupplementaryDetailViewKind forIndexPath:indexPath];
|
||||
|
||||
VLCMediaLibraryAlbum *album = _representedListOfAlbums[indexPath.item];
|
||||
albumSupplementaryDetailView.representedAlbum = album;
|
||||
albumSupplementaryDetailView.selectedItem = [collectionView itemAtIndex:indexPath.item];
|
||||
albumSupplementaryDetailView.parentScrollView = [VLCMain sharedInstance].libraryWindow.audioCollectionViewScrollView;
|
||||
albumSupplementaryDetailView.internalScrollView.scrollParentY = YES;
|
||||
|
||||
return albumSupplementaryDetailView;
|
||||
|
||||
}
|
||||
|
||||
return nil;
|
||||
}
|
||||
|
||||
@end
|
@ -23,7 +23,7 @@
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
@class VLCLibraryAudioDataSource;
|
||||
@class VLCLibraryGroupDataSource;
|
||||
@class VLCLibraryAudioGroupDataSource;
|
||||
@class VLCLibraryWindow;
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@ -57,7 +57,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
@property (readonly) NSView *emptyLibraryView;
|
||||
|
||||
@property (readonly) VLCLibraryAudioDataSource *audioDataSource;
|
||||
@property (readonly) VLCLibraryGroupDataSource *audioGroupDataSource;
|
||||
@property (readonly) VLCLibraryAudioGroupDataSource *audioGroupDataSource;
|
||||
|
||||
@property (readonly) NSArray<NSLayoutConstraint *> *audioPlaceholderImageViewSizeConstraints;
|
||||
|
||||
|
@ -32,6 +32,7 @@
|
||||
#import "library/VLCLibraryWindow.h"
|
||||
|
||||
#import "library/audio-library/VLCLibraryAudioDataSource.h"
|
||||
#import "library/audio-library/VLCLibraryAudioGroupDataSource.h"
|
||||
|
||||
#import "library/video-library/VLCLibraryVideoViewController.h"
|
||||
|
||||
@ -113,8 +114,8 @@
|
||||
_audioDataSource.gridModeListSelectionCollectionView = _audioLibraryGridModeSplitViewListSelectionCollectionView;
|
||||
[_audioDataSource setup];
|
||||
|
||||
_audioGroupDataSource = [[VLCLibraryGroupDataSource alloc] init];
|
||||
_audioDataSource.groupDataSource = _audioGroupDataSource;
|
||||
_audioGroupDataSource = [[VLCLibraryAudioGroupDataSource alloc] init];
|
||||
_audioDataSource.audioGroupDataSource = _audioGroupDataSource;
|
||||
}
|
||||
|
||||
- (void)setupAudioCollectionView
|
||||
|
@ -25,14 +25,14 @@
|
||||
#import "library/VLCLibraryDataTypes.h"
|
||||
#import "extensions/NSFont+VLCAdditions.h"
|
||||
|
||||
#import "library/audio-library/VLCLibraryAudioDataSource.h"
|
||||
#import "library/audio-library/VLCLibraryAudioGroupDataSource.h"
|
||||
|
||||
NSString *const VLCLibraryCollectionViewAudioGroupSupplementaryDetailViewIdentifier = @"VLCLibraryCollectionViewAudioGroupSupplementaryDetailViewIdentifier";
|
||||
NSCollectionViewSupplementaryElementKind const VLCLibraryCollectionViewAudioGroupSupplementaryDetailViewKind = @"VLCLibraryCollectionViewAudioGroupSupplementaryDetailViewIdentifier";
|
||||
|
||||
@interface VLCLibraryCollectionViewAudioGroupSupplementaryDetailView ()
|
||||
{
|
||||
VLCLibraryGroupDataSource *_audioGroupAlbumsDataSource;
|
||||
VLCLibraryAudioGroupDataSource *_audioGroupAlbumsDataSource;
|
||||
}
|
||||
|
||||
@end
|
||||
@ -41,7 +41,7 @@ NSCollectionViewSupplementaryElementKind const VLCLibraryCollectionViewAudioGrou
|
||||
|
||||
- (void)awakeFromNib
|
||||
{
|
||||
_audioGroupAlbumsDataSource = [[VLCLibraryGroupDataSource alloc] init];
|
||||
_audioGroupAlbumsDataSource = [[VLCLibraryAudioGroupDataSource alloc] init];
|
||||
_audioGroupAlbumsTableView.dataSource = _audioGroupAlbumsDataSource;
|
||||
_audioGroupAlbumsTableView.delegate = _audioGroupAlbumsDataSource;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user