Bug Fix: Add safety checks to playlist columns

Playlist column setup needed a couple of safety checks to prevent
crashes from happening.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
This commit is contained in:
Christopher Snowhill 2025-02-15 14:09:27 -08:00
parent abf77a70d2
commit 0d289e47ab

View file

@ -100,11 +100,14 @@ static NSString *playlistSavedColumnsID = @"Playlist Saved Columns v0";
for(id column in updatedColumns) {
NSString *columnID = [column objectForKey:@"id"];
NSTableColumn *tableColumn = [columns objectAtIndex:[columnsList indexOfObject:columnID]];
NSUInteger index = [columnsList indexOfObject:columnID];
if(index != NSNotFound) {
NSTableColumn *tableColumn = [columns objectAtIndex:index];
[tableColumn setHidden:[[column objectForKey:@"hidden"] boolValue]];
[tableColumn setWidth:[[column objectForKey:@"width"] unsignedIntegerValue]];
[self addTableColumn:tableColumn];
}
}
columns = [self tableColumns];
@ -151,11 +154,14 @@ static NSString *playlistSavedColumnsID = @"Playlist Saved Columns v0";
if(visibleTableColumns == 0) {
for(NSTableColumn *col in columns) {
NSString *columnID = [col identifier];
id column = [defaultColumns objectAtIndex:[defaultColumnList indexOfObject:columnID]];
NSUInteger index = [defaultColumnList indexOfObject:columnID];
if(index != NSNotFound) {
id column = [defaultColumns objectAtIndex:index];
[col setWidth:[[column objectForKey:@"width"] unsignedIntegerValue]];
[col setHidden:[[column objectForKey:@"hidden"] boolValue]];
}
}
}
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tableColumnsResized) name:NSTableViewColumnDidResizeNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tableColumnsMoved) name:NSTableViewColumnDidMoveNotification object:nil];