53 lines
1.5 KiB
Objective-C
53 lines
1.5 KiB
Objective-C
//
|
|
// SpotlightPlaylistController.m
|
|
// Cog
|
|
//
|
|
// Created by Matthew Grinshpun on 13/02/08.
|
|
// Copyright 2008 Matthew Leon Grinshpun. All rights reserved.
|
|
//
|
|
|
|
#import "SpotlightPlaylistController.h"
|
|
#import "SpotlightWindowController.h"
|
|
|
|
@implementation SpotlightPlaylistController
|
|
|
|
// Allow drag and drop from Spotlight into main playlist
|
|
- (BOOL)tableView:(NSTableView *)tv
|
|
writeRowsWithIndexes:(NSIndexSet *)rowIndexes
|
|
toPasteboard:(NSPasteboard*)pboard
|
|
{
|
|
[spotlightWindowController.query disableUpdates];
|
|
|
|
NSArray *urls = [[self selectedObjects]valueForKey:@"URL"];
|
|
NSError *error = nil;
|
|
NSData *data;
|
|
if (@available(macOS 10.13, *))
|
|
{
|
|
data = [NSKeyedArchiver archivedDataWithRootObject:urls
|
|
requiringSecureCoding:YES
|
|
error:&error];
|
|
if (error) return NO;
|
|
}
|
|
else
|
|
{
|
|
data = [NSArchiver archivedDataWithRootObject:urls];
|
|
}
|
|
[pboard declareTypes:[NSArray arrayWithObjects:CogUrlsPboardType,nil] owner:nil]; //add it to pboard
|
|
[pboard setData:data forType:CogUrlsPboardType];
|
|
|
|
[spotlightWindowController.query enableUpdates];
|
|
|
|
return YES;
|
|
}
|
|
|
|
// Do not accept drag operations, necessary as long as this class inherits from PlaylistController
|
|
- (NSDragOperation)tableView:(NSTableView*)tv
|
|
validateDrop:(id <NSDraggingInfo>)info
|
|
proposedRow:(NSInteger)row
|
|
proposedDropOperation:(NSTableViewDropOperation)op
|
|
{
|
|
return NSDragOperationNone;
|
|
}
|
|
|
|
@end
|