diff --git a/macosx/GroupsController.m b/macosx/GroupsController.m index 744cba550..8bff2f8b1 100644 --- a/macosx/GroupsController.m +++ b/macosx/GroupsController.m @@ -251,11 +251,11 @@ GroupsController * fGroupsInstance = nil; - (void) addNewGroup { //find the lowest index - NSMutableIndexSet * indexSet = [NSMutableIndexSet indexSetWithIndexesInRange: NSMakeRange(0, [fGroups count]+1)]; //candidates + NSMutableIndexSet * candidates = [NSMutableIndexSet indexSetWithIndexesInRange: NSMakeRange(0, [fGroups count]+1)]; for (NSDictionary * dict in fGroups) - [indexSet removeIndex: [[dict objectForKey: @"Index"] integerValue]]; + [candidates removeIndex: [[dict objectForKey: @"Index"] integerValue]]; - const NSInteger index = [indexSet firstIndex]; + const NSInteger index = [candidates firstIndex]; [fGroups addObject: [NSMutableDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithInteger: index], @"Index", [NSColor colorWithCalibratedRed: 0.0 green: 0.65 blue: 1.0 alpha: 1.0], @"Color", @"", @"Name", nil]]; diff --git a/macosx/InfoActivityViewController.h b/macosx/InfoActivityViewController.h index 427288fe1..42f567acb 100644 --- a/macosx/InfoActivityViewController.h +++ b/macosx/InfoActivityViewController.h @@ -49,7 +49,6 @@ - (void) updateInfo; - (void) setPiecesView: (id) sender; -- (void) setPiecesViewForAvailable: (BOOL) available; - (void) clearView; @end diff --git a/macosx/InfoActivityViewController.m b/macosx/InfoActivityViewController.m index 4efd7aacf..aa013fa84 100644 --- a/macosx/InfoActivityViewController.m +++ b/macosx/InfoActivityViewController.m @@ -35,6 +35,8 @@ - (void) setupInfo; +- (void) updatePiecesView; + @end @implementation InfoActivityViewController @@ -49,8 +51,15 @@ return self; } +- (void) awakeFromNib +{ + [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(updatePiecesView) name: @"UpdatePiecesView" object: nil]; +} + - (void) dealloc { + [[NSNotificationCenter defaultCenter] removeObserver: self]; + [fTorrents release]; [super dealloc]; @@ -140,16 +149,9 @@ - (void) setPiecesView: (id) sender { - [self setPiecesViewForAvailable: [sender selectedSegment] == PIECES_CONTROL_AVAILABLE]; -} - -- (void) setPiecesViewForAvailable: (BOOL) available -{ - [fPiecesControl setSelected: available forSegment: PIECES_CONTROL_AVAILABLE]; - [fPiecesControl setSelected: !available forSegment: PIECES_CONTROL_PROGRESS]; - - [[NSUserDefaults standardUserDefaults] setBool: available forKey: @"PiecesViewShowAvailability"]; - [fPiecesView updateView]; + const BOOL availability = [sender selectedSegment] == PIECES_CONTROL_AVAILABLE; + [[NSUserDefaults standardUserDefaults] setBool: availability forKey: @"PiecesViewShowAvailability"]; + [self updatePiecesView]; } - (void) clearView @@ -195,14 +197,25 @@ [fDateAddedField setObjectValue: [torrent dateAdded]]; - BOOL piecesAvailableSegment = [[NSUserDefaults standardUserDefaults] boolForKey: @"PiecesViewShowAvailability"]; + const BOOL piecesAvailableSegment = [[NSUserDefaults standardUserDefaults] boolForKey: @"PiecesViewShowAvailability"]; [fPiecesControl setSelected: piecesAvailableSegment forSegment: PIECES_CONTROL_AVAILABLE]; [fPiecesControl setSelected: !piecesAvailableSegment forSegment: PIECES_CONTROL_PROGRESS]; [fPiecesControl setEnabled: YES]; + [fPiecesView setTorrent: torrent]; } fSet = YES; } +- (void) updatePiecesView +{ + const BOOL piecesAvailableSegment = [[NSUserDefaults standardUserDefaults] boolForKey: @"PiecesViewShowAvailability"]; + + [fPiecesControl setSelected: piecesAvailableSegment forSegment: PIECES_CONTROL_AVAILABLE]; + [fPiecesControl setSelected: !piecesAvailableSegment forSegment: PIECES_CONTROL_PROGRESS]; + + [fPiecesView updateView]; +} + @end diff --git a/macosx/PiecesView.m b/macosx/PiecesView.m index bec46263c..59cb8afb8 100644 --- a/macosx/PiecesView.m +++ b/macosx/PiecesView.m @@ -209,10 +209,11 @@ enum - (void) mouseDown: (NSEvent *) event { - #warning fix - /*if (fTorrent) - [[[self window] windowController] setPiecesViewForAvailable: - ![[NSUserDefaults standardUserDefaults] boolForKey: @"PiecesViewShowAvailability"]];*/ + const BOOL availability = ![[NSUserDefaults standardUserDefaults] boolForKey: @"PiecesViewShowAvailability"]; + [[NSUserDefaults standardUserDefaults] setBool: availability forKey: @"PiecesViewShowAvailability"]; + + [[NSNotificationCenter defaultCenter] postNotificationName: @"UpdatePiecesView" object: self]; + [super mouseDown: event]; }