aboutsummaryrefslogtreecommitdiffstats
path: root/Source/SPProcessListController.m
diff options
context:
space:
mode:
authorAbhi Beckert <abhi@abhibeckert.com>2017-04-15 08:14:41 +1000
committerAbhi Beckert <abhi@abhibeckert.com>2017-04-15 08:14:41 +1000
commitd20ad5fecb5d68f7dbee83aa56bdd1d262698bc7 (patch)
tree49bbde8fe38cb95cd2dce758b998ce08df35841b /Source/SPProcessListController.m
parent1d12c0e41319ffd2a1f1ab62305bd2688910f151 (diff)
parent4daa0e1419ac63abcfb87b9ba7e9f3db5861a95a (diff)
downloadsequelpro-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.m43
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);