From 95250e0f0c5780ac113a9a4c948c452038b4c02a Mon Sep 17 00:00:00 2001 From: Max Lohrmann Date: Sun, 12 Mar 2017 09:46:59 +0100 Subject: Replace some legacy NSIndexSet enumeration with 10.6+ style -enumerateIndexesUsingBlock: --- Source/SPProcessListController.m | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) (limited to 'Source/SPProcessListController.m') diff --git a/Source/SPProcessListController.m b/Source/SPProcessListController.m index d04273e1..84cd32e8 100644 --- a/Source/SPProcessListController.m +++ b/Source/SPProcessListController.m @@ -140,10 +140,7 @@ static NSString *SPTableViewIDColumnIdentifier = @"Id"; NSMutableString *string = [NSMutableString string]; NSIndexSet *rows = [processListTableView selectedRowIndexes]; - NSUInteger i = [rows firstIndex]; - - while (i != NSNotFound) - { + [rows enumerateIndexesUsingBlock:^(NSUInteger i, BOOL * _Nonnull stop) { if (i < [processesFiltered count]) { NSDictionary *process = NSArrayObjectAtIndex(processesFiltered, i); @@ -160,9 +157,7 @@ static NSString *SPTableViewIDColumnIdentifier = @"Id"; [string appendString:stringTmp]; [string appendString:@"\n"]; } - - i = [rows indexGreaterThanIndex:i]; - } + }]; NSPasteboard *pasteBoard = [NSPasteboard generalPasteboard]; -- cgit v1.2.3 From 735146114b38fcc13f4d2fdff465c6bf07c82f72 Mon Sep 17 00:00:00 2001 From: Stuart Connolly Date: Sat, 18 Mar 2017 17:47:48 +0000 Subject: Fix table triggers view not reacting to UI preference changes. Also, move the responsibility of adding/removing preference observers to the controllers of respective views (more to follow). --- Source/SPProcessListController.m | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) (limited to 'Source/SPProcessListController.m') diff --git a/Source/SPProcessListController.m b/Source/SPProcessListController.m index 84cd32e8..8290b5d9 100644 --- a/Source/SPProcessListController.m +++ b/Source/SPProcessListController.m @@ -54,6 +54,8 @@ static NSString *SPTableViewIDColumnIdentifier = @"Id"; - (void)_killProcessQueryWithId:(long long)processId; - (void)_killProcessConnectionWithId:(long long)processId; - (void)_updateServerProcessesFilterForFilterString:(NSString *)filterString; +- (void)_addPreferenceObservers; +- (void)_removePreferenceObservers; @end @@ -111,9 +113,8 @@ static NSString *SPTableViewIDColumnIdentifier = @"Id"; if (columnWidth) [column setWidth:[columnWidth floatValue]]; } - - // Register as an observer for the when the UseMonospacedFonts preference changes - [prefs addObserver:self forKeyPath:SPUseMonospacedFonts options:NSKeyValueObservingOptionNew context:NULL]; + + [self _addPreferenceObservers]; } /** @@ -760,14 +761,35 @@ static NSString *SPTableViewIDColumnIdentifier = @"Id"; [saveProcessesButton setTitle:NSLocalizedString(@"Save View As...", @"save view as button title")]; } +/** + * Add any necessary preference observers to allow live updating on changes. + */ +- (void)_addPreferenceObservers +{ + // Register as an observer for the when the UseMonospacedFonts preference changes + [prefs addObserver:self forKeyPath:SPUseMonospacedFonts options:NSKeyValueObservingOptionNew context:NULL]; + + // Register to obeserve table view vertical grid line pref changes + [prefs addObserver:self forKeyPath:SPDisplayTableViewVerticalGridlines options:NSKeyValueObservingOptionNew context:NULL]; +} + +/** + * Remove any previously added preference observers. + */ +- (void)_removePreferenceObservers +{ + [prefs removeObserver:self forKeyPath:SPUseMonospacedFonts]; + [prefs removeObserver:self forKeyPath:SPDisplayTableViewVerticalGridlines]; +} + #pragma mark - - (void)dealloc { - [prefs removeObserver:self forKeyPath:SPUseMonospacedFonts]; - processListThreadRunning = NO; - + + [self _removePreferenceObservers]; + SPClear(processes); if (autoRefreshTimer) SPClear(autoRefreshTimer); -- cgit v1.2.3