diff --git a/macosx/Controller.m b/macosx/Controller.m index 5c28cecdd..e3ab6e8ec 100644 --- a/macosx/Controller.m +++ b/macosx/Controller.m @@ -1306,9 +1306,11 @@ static void sleepCallBack(void * controller, io_service_t y, natural_t messageTy [sound play]; } + NSDictionary * clickContext = [NSDictionary dictionaryWithObjectsAndKeys: GROWL_DOWNLOAD_COMPLETE, @"Type", + [torrent dataLocation] , @"Location", nil]; [GrowlApplicationBridge notifyWithTitle: NSLocalizedString(@"Download Complete", "Growl notification title") - description: [torrent name] - notificationName: GROWL_DOWNLOAD_COMPLETE iconData: nil priority: 0 isSticky: NO clickContext: nil]; + description: [torrent name] notificationName: GROWL_DOWNLOAD_COMPLETE + iconData: nil priority: 0 isSticky: NO clickContext: clickContext]; if (![fWindow isKeyWindow]) fCompleted++; @@ -1731,6 +1733,8 @@ static void sleepCallBack(void * controller, io_service_t y, natural_t messageTy - (void) torrentStoppedForRatio: (NSNotification *) notification { + Torrent * torrent = [notification object]; + [self updateTorrentsInQueue]; [fInfoController updateInfoStats]; @@ -1741,9 +1745,11 @@ static void sleepCallBack(void * controller, io_service_t y, natural_t messageTy [sound play]; } + NSDictionary * clickContext = [NSDictionary dictionaryWithObjectsAndKeys: GROWL_SEEDING_COMPLETE, @"Type", + [torrent dataLocation], @"Location", nil]; [GrowlApplicationBridge notifyWithTitle: NSLocalizedString(@"Seeding Complete", "Growl notification title") - description: [[notification object] name] - notificationName: GROWL_SEEDING_COMPLETE iconData: nil priority: 0 isSticky: NO clickContext: nil]; + description: [torrent name] notificationName: GROWL_SEEDING_COMPLETE + iconData: nil priority: 0 isSticky: NO clickContext: clickContext]; } -(void) watcher: (id) watcher receivedNotification: (NSString *) notification forPath: (NSString *) path @@ -2742,4 +2748,15 @@ static void sleepCallBack(void * controller, io_service_t y, natural_t messageTy notifications, GROWL_NOTIFICATIONS_DEFAULT, nil]; } +- (void) growlNotificationWasClicked: (id) clickContext +{ + if (!clickContext || ![clickContext isKindOfClass: [NSDictionary class]]) + return; + + NSString * type = [clickContext objectForKey: @"Type"], * location; + if (([type isEqualToString: GROWL_DOWNLOAD_COMPLETE] || [type isEqualToString: GROWL_SEEDING_COMPLETE]) + && (location = [clickContext objectForKey: @"Location"])) + [[NSWorkspace sharedWorkspace] selectFile: location inFileViewerRootedAtPath: nil]; +} + @end diff --git a/macosx/Torrent.m b/macosx/Torrent.m index c9523cba0..f46e8941f 100644 --- a/macosx/Torrent.m +++ b/macosx/Torrent.m @@ -325,8 +325,8 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 [fStatusString appendFormat: NSLocalizedString(@"Downloading from %d of %d peers", "Torrent -> status string"), [self peersUploading], [self totalPeers]]; else - [fStatusString appendFormat: NSLocalizedString(@"Downloading from %d of %d peer", - "Torrent -> status string"), [self peersUploading], [self totalPeers]]; + [fStatusString appendFormat: NSLocalizedString(@"Downloading from %d of 1 peer", + "Torrent -> status string"), [self peersUploading]]; [fRemainingTimeString setString: @""]; int eta = [self eta];