aboutsummaryrefslogtreecommitdiffstats
path: root/Source/SPGeneralPreferencePane.m
diff options
context:
space:
mode:
authorstuconnolly <stuart02@gmail.com>2012-01-11 23:03:33 +0000
committerstuconnolly <stuart02@gmail.com>2012-01-11 23:03:33 +0000
commit24837e4f269c7ad44c555066d7f5d3d9c4d2c139 (patch)
treec2eca971ab873825ea09a444c0c764e32e341baf /Source/SPGeneralPreferencePane.m
parent425a60ca9fe7b7e9883542c80a80328f9b6eb625 (diff)
downloadsequelpro-24837e4f269c7ad44c555066d7f5d3d9c4d2c139.tar.gz
sequelpro-24837e4f269c7ad44c555066d7f5d3d9c4d2c139.tar.bz2
sequelpro-24837e4f269c7ad44c555066d7f5d3d9c4d2c139.zip
Protect against dodgy preference data that may case bounds exceptions when selecting the default favorite in the general preference pane.
Diffstat (limited to 'Source/SPGeneralPreferencePane.m')
-rw-r--r--Source/SPGeneralPreferencePane.m8
1 files changed, 5 insertions, 3 deletions
diff --git a/Source/SPGeneralPreferencePane.m b/Source/SPGeneralPreferencePane.m
index b87d6ab8..67c43881 100644
--- a/Source/SPGeneralPreferencePane.m
+++ b/Source/SPGeneralPreferencePane.m
@@ -77,15 +77,17 @@
[editMenuItem release];
// Select the default favorite from prefs
- [defaultFavoritePopup selectItemAtIndex:(![prefs boolForKey:SPSelectLastFavoriteUsed]) ? ([prefs integerForKey:SPDefaultFavorite] + 2) : 0];
+ [self updateDefaultFavoritePopupSelection];
}
/**
* Resets the default favorite popup button selection based on the user's preferences.
*/
-- (void)resetDefaultFavoritePopupSelection
+- (void)updateDefaultFavoritePopupSelection
{
- [defaultFavoritePopup selectItemAtIndex:(![prefs boolForKey:SPSelectLastFavoriteUsed]) ? ([prefs integerForKey:SPDefaultFavorite] + 2) : 0];
+ NSUInteger index = [prefs integerForKey:SPDefaultFavorite];
+
+ [defaultFavoritePopup selectItemAtIndex:(![prefs boolForKey:SPSelectLastFavoriteUsed] && index > 0 && index < [[defaultFavoritePopup itemArray] count]) ? index + 2 : 0];
}
#pragma mark -