Steve Lhomme pushed to branch master at VideoLAN / VLC
Commits:
b987e12b by Claudio Cambra at 2022-12-15T06:30:56+00:00
macosx: Make VLCLibraryTableViewDataSource protocol take tableView in addition
to row for libraryItemAtRow
Signed-off-by: Claudio Cambra <[email protected]>
- - - - -
c55d5416 by Claudio Cambra at 2022-12-15T06:30:56+00:00
macosx: Make VLCLibraryVideoTableViewDataSource compliant with
VLCLibraryTableViewDataSource protocol
Signed-off-by: Claudio Cambra <[email protected]>
- - - - -
2edd2534 by Claudio Cambra at 2022-12-15T06:30:56+00:00
macosx: Do not make video library groupings table view a VLCLibraryTableView
Signed-off-by: Claudio Cambra <[email protected]>
- - - - -
7 changed files:
- modules/gui/macosx/UI/VLCLibraryWindow.xib
- modules/gui/macosx/library/VLCLibraryTableView.h
- modules/gui/macosx/library/VLCLibraryTableView.m
- modules/gui/macosx/library/audio-library/VLCLibraryAlbumTracksDataSource.m
- modules/gui/macosx/library/audio-library/VLCLibraryAudioDataSource.m
- modules/gui/macosx/library/video-library/VLCLibraryVideoTableViewDataSource.h
- modules/gui/macosx/library/video-library/VLCLibraryVideoTableViewDataSource.m
Changes:
=====================================
modules/gui/macosx/UI/VLCLibraryWindow.xib
=====================================
@@ -811,7 +811,7 @@
<rect key="frame" x="0.0" y="0.0" width="230"
height="808"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
- <tableView verticalHuggingPriority="750"
allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly"
columnReordering="NO" columnSelection="YES" multipleSelection="NO"
autosaveColumns="NO" viewBased="YES" id="ceR-Vd-9ss"
customClass="VLCLibraryTableView">
+ <tableView verticalHuggingPriority="750"
allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly"
columnReordering="NO" columnSelection="YES" multipleSelection="NO"
autosaveColumns="NO" viewBased="YES" id="ceR-Vd-9ss">
<rect key="frame" x="0.0" y="0.0"
width="230" height="808"/>
<autoresizingMask
key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<size key="intercellSpacing" width="3"
height="2"/>
=====================================
modules/gui/macosx/library/VLCLibraryTableView.h
=====================================
@@ -28,7 +28,8 @@ NS_ASSUME_NONNULL_BEGIN
@protocol VLCLibraryTableViewDataSource <NSTableViewDataSource>
-- (id<VLCMediaLibraryItemProtocol>)libraryItemAtRow:(NSInteger)row;
+- (id<VLCMediaLibraryItemProtocol>)libraryItemAtRow:(NSInteger)row
+ forTableView:(NSTableView *)tableView;
@end
@@ -36,4 +37,4 @@ NS_ASSUME_NONNULL_BEGIN
@end
-NS_ASSUME_NONNULL_END
\ No newline at end of file
+NS_ASSUME_NONNULL_END
=====================================
modules/gui/macosx/library/VLCLibraryTableView.m
=====================================
@@ -65,7 +65,7 @@
return;
}
- [_menuController
setRepresentedItem:[(id<VLCLibraryTableViewDataSource>)self.dataSource
libraryItemAtRow:self.clickedRow]];
+ [_menuController
setRepresentedItem:[(id<VLCLibraryTableViewDataSource>)self.dataSource
libraryItemAtRow:self.clickedRow forTableView:self]];
}
-@end
\ No newline at end of file
+@end
=====================================
modules/gui/macosx/library/audio-library/VLCLibraryAlbumTracksDataSource.m
=====================================
@@ -68,11 +68,13 @@ const CGFloat VLCLibraryTracksRowHeight = 40.;
cellView.identifier = VLCAudioLibrarySongCellIdentifier;
}
- cellView.representedMediaItem = (VLCMediaLibraryMediaItem *)[self
libraryItemAtRow:row];
+ cellView.representedMediaItem = (VLCMediaLibraryMediaItem *)[self
libraryItemAtRow:row
+
forTableView:tableView];
return cellView;
}
- (id<VLCMediaLibraryItemProtocol>)libraryItemAtRow:(NSInteger)row
+ forTableView:(NSTableView *)tableView
{
return _tracks[row];
}
=====================================
modules/gui/macosx/library/audio-library/VLCLibraryAudioDataSource.m
=====================================
@@ -150,17 +150,20 @@ static NSString *VLCLibraryYearSortDescriptorKey =
@"VLCLibraryYearSortDescripto
const NSInteger collectionSelectionTableViewRow =
_collectionSelectionTableView.selectedRow;
if(collectionSelectionTableViewRow >= 0 &&
!_collectionSelectionTableView.hidden) {
- _selectedCollectionSelectionTableViewItem = [self
libraryItemAtRow:collectionSelectionTableViewRow];
+ _selectedCollectionSelectionTableViewItem = [self
libraryItemAtRow:collectionSelectionTableViewRow
+
forTableView:_collectionSelectionTableView];
}
const NSInteger groupSelectionTableViewRow =
_groupSelectionTableView.selectedRow;
if(groupSelectionTableViewRow >= 0 && !_groupSelectionTableView.hidden) {
- _selectedGroupSelectionTableViewItem = [self
libraryItemAtRow:groupSelectionTableViewRow];
+ _selectedGroupSelectionTableViewItem = [self
libraryItemAtRow:groupSelectionTableViewRow
+
forTableView:_groupSelectionTableView];
}
const NSInteger songsTableViewRow = _songsTableView.selectedRow;
if(songsTableViewRow >= 0 && !_songsTableView.hidden) {
- _selectedSongTableViewItem = [self libraryItemAtRow:songsTableViewRow];
+ _selectedSongTableViewItem = [self libraryItemAtRow:songsTableViewRow
+ forTableView:_songsTableView];
}
}
@@ -435,7 +438,7 @@ static NSString *VLCLibraryYearSortDescriptorKey =
@"VLCLibraryYearSortDescripto
// and we use a vanilla NSTableView created in the VLCLibraryWindow XIB
for it
if ([tableView.identifier
isEqualToString:@"VLCLibrarySongsTableViewIdentifier"]) {
const NSString * const columnIdentifier = tableColumn.identifier;
- const VLCMediaLibraryMediaItem * const mediaItem = [self
libraryItemAtRow:row];
+ const VLCMediaLibraryMediaItem * const mediaItem = [self
libraryItemAtRow:row forTableView:tableView];
const VLCMediaLibraryAlbum * const album = [VLCMediaLibraryAlbum
albumWithID:mediaItem.albumID];
const VLCMediaLibraryGenre * const genre = [VLCMediaLibraryGenre
genreWithID:mediaItem.genreID];
@@ -445,7 +448,7 @@ static NSString *VLCLibraryYearSortDescriptorKey =
@"VLCLibraryYearSortDescripto
if ([columnIdentifier
isEqualToString:VLCLibrarySongsTableViewSongPlayingColumnIdentifier]) {
VLCLibrarySongsTableViewSongPlayingTableCellView *cellView =
(VLCLibrarySongsTableViewSongPlayingTableCellView*)[tableView
makeViewWithIdentifier:@"VLCLibrarySongsTableViewSongPlayingTableCellViewIdentifier"
owner:self];
NSAssert(cellView, @"Unexpectedly received null cellview");
- cellView.representedMediaItem = [self libraryItemAtRow:row];
+ cellView.representedMediaItem = (VLCMediaLibraryMediaItem
*)mediaItem;
return cellView;
} else if ([columnIdentifier
isEqualToString:VLCLibrarySongsTableViewTitleColumnIdentifier]) {
cellIdentifier =
@"VLCLibrarySongsTableViewTitleTableCellViewIdentifier";
@@ -484,11 +487,12 @@ static NSString *VLCLibraryYearSortDescriptorKey =
@"VLCLibraryYearSortDescripto
cellView.identifier = VLCAudioLibraryCellIdentifier;
}
- [cellView setRepresentedItem:[self libraryItemAtRow:row]];
+ [cellView setRepresentedItem:[self libraryItemAtRow:row
forTableView:tableView]];
return cellView;
}
- (id<VLCMediaLibraryItemProtocol>)libraryItemAtRow:(NSInteger)row
+ forTableView:(NSTableView *)tableView
{
return _displayedCollection[row];
}
@@ -683,11 +687,12 @@
viewForSupplementaryElementOfKind:(NSCollectionViewSupplementaryElementKind)kind
cellView.identifier = VLCAudioLibraryCellIdentifier;
}
- cellView.representedAlbum = (VLCMediaLibraryAlbum *)[self
libraryItemAtRow:row];
+ cellView.representedAlbum = (VLCMediaLibraryAlbum *)[self
libraryItemAtRow:row forTableView:tableView];
return cellView;
}
- (id<VLCMediaLibraryItemProtocol>)libraryItemAtRow:(NSInteger)row
+ forTableView:(NSTableView *)tableView
{
return _representedListOfAlbums[row];
}
=====================================
modules/gui/macosx/library/video-library/VLCLibraryVideoTableViewDataSource.h
=====================================
@@ -22,11 +22,13 @@
#import <Cocoa/Cocoa.h>
+#import "library/VLCLibraryTableView.h"
+
NS_ASSUME_NONNULL_BEGIN
@class VLCLibraryModel;
-@interface VLCLibraryVideoTableViewDataSource : NSObject
<NSTableViewDataSource, NSTableViewDelegate>
+@interface VLCLibraryVideoTableViewDataSource : NSObject
<VLCLibraryTableViewDataSource, NSTableViewDelegate>
@property (readwrite, assign) VLCLibraryModel *libraryModel;
@property (readwrite, assign) NSTableView *groupsTableView;
=====================================
modules/gui/macosx/library/video-library/VLCLibraryVideoTableViewDataSource.m
=====================================
@@ -156,4 +156,22 @@
}
}
+- (id<VLCMediaLibraryItemProtocol>)libraryItemAtRow:(NSInteger)row
+ forTableView:(NSTableView *)tableView
+{
+ if (tableView == _groupSelectionTableView && _groupsTableView.selectedRow
> -1) {
+ switch(_groupsTableView.selectedRow + 1) { // Group 0 is invalid so
add one
+ case VLCLibraryVideoRecentsGroup:
+ return _recentsArray[row];
+ case VLCLibraryVideoLibraryGroup:
+ return _libraryArray[row];
+ default:
+ NSAssert(1, @"Reached unreachable case for video library
section");
+ break;
+ }
+ }
+
+ return nil;
+}
+
@end
View it on GitLab:
https://code.videolan.org/videolan/vlc/-/compare/4d238946ca2a699ce69ea78c50f1d451dc770333...2edd2534edc88927b2334fe77a037872f4414798
--
View it on GitLab:
https://code.videolan.org/videolan/vlc/-/compare/4d238946ca2a699ce69ea78c50f1d451dc770333...2edd2534edc88927b2334fe77a037872f4414798
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