diff options
author | Abhi Beckert <abhi@abhibeckert.com> | 2017-04-15 08:14:41 +1000 |
---|---|---|
committer | Abhi Beckert <abhi@abhibeckert.com> | 2017-04-15 08:14:41 +1000 |
commit | d20ad5fecb5d68f7dbee83aa56bdd1d262698bc7 (patch) | |
tree | 49bbde8fe38cb95cd2dce758b998ce08df35841b /Source/SPProcessListController.m | |
parent | 1d12c0e41319ffd2a1f1ab62305bd2688910f151 (diff) | |
parent | 4daa0e1419ac63abcfb87b9ba7e9f3db5861a95a (diff) | |
download | sequelpro-d20ad5fecb5d68f7dbee83aa56bdd1d262698bc7.tar.gz sequelpro-d20ad5fecb5d68f7dbee83aa56bdd1d262698bc7.tar.bz2 sequelpro-d20ad5fecb5d68f7dbee83aa56bdd1d262698bc7.zip |
Merge remote-tracking branch 'sequelpro/master'
Diffstat (limited to 'Source/SPProcessListController.m')
-rw-r--r-- | Source/SPProcessListController.m | 43 |
1 files changed, 30 insertions, 13 deletions
diff --git a/Source/SPProcessListController.m b/Source/SPProcessListController.m index d04273e1..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]; } /** @@ -140,10 +141,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 +158,7 @@ static NSString *SPTableViewIDColumnIdentifier = @"Id"; [string appendString:stringTmp]; [string appendString:@"\n"]; } - - i = [rows indexGreaterThanIndex:i]; - } + }]; NSPasteboard *pasteBoard = [NSPasteboard generalPasteboard]; @@ -765,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); |