transmission/macosx/ShareTorrentFileHelper.m

65 lines
1.9 KiB
Mathematica
Raw Normal View History

//
// ShareTorrentFileHelper.m
// Transmission
//
// Created by Mitchell Livingston on 1/10/14.
// Copyright (c) 2014 The Transmission Project. All rights reserved.
//
#import "ShareTorrentFileHelper.h"
#import "Controller.h"
#import "Torrent.h"
@implementation ShareTorrentFileHelper
+ (ShareTorrentFileHelper *) sharedHelper
{
static ShareTorrentFileHelper *helper;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
helper = [[ShareTorrentFileHelper alloc] init];
});
return helper;
}
- (NSArray *) shareTorrentURLs
{
NSArray * torrents = ((Controller *)NSApp.delegate).selectedTorrents;
NSMutableArray * fileURLs = [NSMutableArray arrayWithCapacity: torrents.count];
for (Torrent * torrent in torrents)
{
NSString * location = torrent.torrentLocation;
if (location.length > 0) {
[fileURLs addObject: [NSURL fileURLWithPath: location]];
}
}
return fileURLs;
}
2014-01-10 18:06:34 +00:00
- (NSArray *) menuItems
{
NSArray * services = [NSSharingService sharingServicesForItems: self.shareTorrentURLs];
NSMutableArray * items = [NSMutableArray arrayWithCapacity: services.count];
for (NSSharingService * service in services)
{
NSMenuItem *item = [[NSMenuItem alloc] initWithTitle: service.title // 10.9: change to menuItemTitle
action: @selector(performShareAction:)
keyEquivalent: @""];
item.image = service.image;
item.representedObject = service;
service.delegate = (Controller *)NSApp.delegate;
item.target = self;
[items addObject: item];
}
return items;
}
2014-01-10 18:06:34 +00:00
- (void) performShareAction: (NSMenuItem *) item
{
NSSharingService * service = item.representedObject;
[service performWithItems: self.shareTorrentURLs]; // on 10.9, use attachmentFileURLs?
}
@end