diff options
author | rowanbeentje <rowan@beent.je> | 2012-11-18 15:38:41 +0000 |
---|---|---|
committer | rowanbeentje <rowan@beent.je> | 2012-11-18 15:38:41 +0000 |
commit | fb1d481a1d9420bffc830696de66b2874e64a67a (patch) | |
tree | 1f894750378b873c1328f81ed30099b888d540d5 /Source | |
parent | 5d87d8f8cd268e753a1b2ed647ee413c43360ba6 (diff) | |
download | sequelpro-fb1d481a1d9420bffc830696de66b2874e64a67a.tar.gz sequelpro-fb1d481a1d9420bffc830696de66b2874e64a67a.tar.bz2 sequelpro-fb1d481a1d9420bffc830696de66b2874e64a67a.zip |
* Please note this revision will re-prompt for access to all KeyChain passwords *
- Change the bundle identifier from com.google.code.sequel-pro to com.sequelpro.SequelPro
- Change the code signing process to use a new identity and requirement, to add Developer ID support on 10.7+ but to also maintain functionality on 10.5+
- Add a preference migration routine to copy the old application defaults to the new bundle identifier's defaults
- Re-order the default keys to alphabetical to more easily locate values
Diffstat (limited to 'Source')
-rw-r--r-- | Source/GeneratePreviewForURL.m | 12 | ||||
-rw-r--r-- | Source/SPAppController.m | 3 | ||||
-rw-r--r-- | Source/SPConstants.h | 3 | ||||
-rw-r--r-- | Source/SPConstants.m | 2 | ||||
-rw-r--r-- | Source/SPPreferenceController.m | 7 | ||||
-rw-r--r-- | Source/SPPreferencesUpgrade.h | 1 | ||||
-rw-r--r-- | Source/SPPreferencesUpgrade.m | 28 | ||||
-rw-r--r-- | Source/SPTableContent.h | 1 |
8 files changed, 43 insertions, 14 deletions
diff --git a/Source/GeneratePreviewForURL.m b/Source/GeneratePreviewForURL.m index b9292599..9b66d3e7 100644 --- a/Source/GeneratePreviewForURL.m +++ b/Source/GeneratePreviewForURL.m @@ -97,7 +97,7 @@ OSStatus GeneratePreviewForURL(void *thisInterface, QLPreviewRequestRef preview, // Dispatch different spf formats if([[spf objectForKey:@"format"] isEqualToString:@"connection"]) { - template = [NSString stringWithContentsOfFile:[[NSBundle bundleWithIdentifier:@"com.google.code.sequel-pro.qlgenerator"] pathForResource:@"SPQLPluginConnectionTemplate" ofType:@"html"] + template = [NSString stringWithContentsOfFile:[[NSBundle bundleWithIdentifier:@"com.sequelpro.SequelPro.qlgenerator"] pathForResource:@"SPQLPluginConnectionTemplate" ofType:@"html"] encoding:NSUTF8StringEncoding error:&templateReadError]; if (template == nil || ![template length] || templateReadError != nil) { @@ -154,7 +154,7 @@ OSStatus GeneratePreviewForURL(void *thisInterface, QLPreviewRequestRef preview, else if([[spf objectForKey:@"format"] isEqualToString:@"content filters"]) { - template = [NSString stringWithContentsOfFile:[[NSBundle bundleWithIdentifier:@"com.google.code.sequel-pro.qlgenerator"] pathForResource:@"SPQLPluginContentFiltersTemplate" ofType:@"html"] + template = [NSString stringWithContentsOfFile:[[NSBundle bundleWithIdentifier:@"com.sequelpro.SequelPro.qlgenerator"] pathForResource:@"SPQLPluginContentFiltersTemplate" ofType:@"html"] encoding:NSUTF8StringEncoding error:&templateReadError]; if (template == nil || ![template length] || templateReadError != nil) { @@ -170,7 +170,7 @@ OSStatus GeneratePreviewForURL(void *thisInterface, QLPreviewRequestRef preview, else if([[spf objectForKey:@"format"] isEqualToString:@"query favorites"]) { - template = [NSString stringWithContentsOfFile:[[NSBundle bundleWithIdentifier:@"com.google.code.sequel-pro.qlgenerator"] pathForResource:@"SPQLPluginQueryFavoritesTemplate" ofType:@"html"] + template = [NSString stringWithContentsOfFile:[[NSBundle bundleWithIdentifier:@"com.sequelpro.SequelPro.qlgenerator"] pathForResource:@"SPQLPluginQueryFavoritesTemplate" ofType:@"html"] encoding:NSUTF8StringEncoding error:&templateReadError]; if (template == nil || ![template length] || templateReadError != nil) { @@ -190,7 +190,7 @@ OSStatus GeneratePreviewForURL(void *thisInterface, QLPreviewRequestRef preview, else if([urlExtension isEqualToString:@"spfs"]) { - template = [NSString stringWithContentsOfFile:[[NSBundle bundleWithIdentifier:@"com.google.code.sequel-pro.qlgenerator"] pathForResource:@"SPQLPluginConnectionBundleTemplate" ofType:@"html"] + template = [NSString stringWithContentsOfFile:[[NSBundle bundleWithIdentifier:@"com.sequelpro.SequelPro.qlgenerator"] pathForResource:@"SPQLPluginConnectionBundleTemplate" ofType:@"html"] encoding:NSUTF8StringEncoding error:&templateReadError]; if (template == nil || ![template length] || templateReadError != nil) { @@ -198,7 +198,7 @@ OSStatus GeneratePreviewForURL(void *thisInterface, QLPreviewRequestRef preview, return noErr; } - NSString *windowTemplate = [NSString stringWithContentsOfFile:[[NSBundle bundleWithIdentifier:@"com.google.code.sequel-pro.qlgenerator"] pathForResource:@"SPQLPluginConnectionBundleWindowTemplate" ofType:@"html"] + NSString *windowTemplate = [NSString stringWithContentsOfFile:[[NSBundle bundleWithIdentifier:@"com.sequelpro.SequelPro.qlgenerator"] pathForResource:@"SPQLPluginConnectionBundleWindowTemplate" ofType:@"html"] encoding:NSUTF8StringEncoding error:&templateReadError]; if (windowTemplate == nil || ![windowTemplate length] || templateReadError != nil) { @@ -331,7 +331,7 @@ OSStatus GeneratePreviewForURL(void *thisInterface, QLPreviewRequestRef preview, else if([urlExtension isEqualToString:@"sql"]) { - template = [NSString stringWithContentsOfFile:[[NSBundle bundleWithIdentifier:@"com.google.code.sequel-pro.qlgenerator"] pathForResource:@"SPQLPluginSQLTemplate" ofType:@"html"] + template = [NSString stringWithContentsOfFile:[[NSBundle bundleWithIdentifier:@"com.sequelpro.SequelPro.qlgenerator"] pathForResource:@"SPQLPluginSQLTemplate" ofType:@"html"] encoding:NSUTF8StringEncoding error:&templateReadError]; if (template == nil || ![template length] || templateReadError != nil) { diff --git a/Source/SPAppController.m b/Source/SPAppController.m index c10b8370..da70ceb9 100644 --- a/Source/SPAppController.m +++ b/Source/SPAppController.m @@ -112,6 +112,9 @@ YY_BUFFER_STATE yy_scan_string (const char *); { // Register application defaults [[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"PreferenceDefaults" ofType:@"plist"]]]; + + // Upgrade prefs before any other parts of the app pick up on the values + SPApplyRevisionChanges(); } /** diff --git a/Source/SPConstants.h b/Source/SPConstants.h index 03da11a6..81a7310e 100644 --- a/Source/SPConstants.h +++ b/Source/SPConstants.h @@ -278,7 +278,8 @@ extern NSString *SPDataSupportFolder; extern NSString *SPTableContentFilterKey; // Preference key constants -// +extern NSString *SPFirstRun; + // General Prefpane extern NSString *SPDefaultFavorite; extern NSString *SPSelectLastFavoriteUsed; diff --git a/Source/SPConstants.m b/Source/SPConstants.m index 33f5e22a..7dae561c 100644 --- a/Source/SPConstants.m +++ b/Source/SPConstants.m @@ -72,6 +72,8 @@ NSString *SPDataSupportFolder = @"Data"; NSString *SPTableContentFilterKey = @"filter"; // Preference key constants +NSString *SPFirstRun = @"SPFirstRun"; + // General Prefpane NSString *SPDefaultFavorite = @"DefaultFavorite"; NSString *SPSelectLastFavoriteUsed = @"SelectLastFavoriteUsed"; diff --git a/Source/SPPreferenceController.m b/Source/SPPreferenceController.m index 0716acf4..f6670a03 100644 --- a/Source/SPPreferenceController.m +++ b/Source/SPPreferenceController.m @@ -31,7 +31,6 @@ // More info at <http://code.google.com/p/sequel-pro/> #import "SPPreferenceController.h" -#import "SPPreferencesUpgrade.h" #import "SPTablesPreferencePane.h" #import "SPEditorPreferencePane.h" #import "SPGeneralPreferencePane.h" @@ -60,11 +59,7 @@ */ - (id)init { - if ((self = [super initWithWindowNibName:@"Preferences"])) { - - // Upgrade prefs - SPApplyRevisionChanges(); - + if ((self = [super initWithWindowNibName:@"Preferences"])) { fontChangeTarget = 0; } diff --git a/Source/SPPreferencesUpgrade.h b/Source/SPPreferencesUpgrade.h index db1b67cd..1f50a2f9 100644 --- a/Source/SPPreferencesUpgrade.h +++ b/Source/SPPreferencesUpgrade.h @@ -41,5 +41,6 @@ void SPApplyRevisionChanges(void); void SPMigrateConnectionFavoritesData(void); +void SPMigratePreferencesFromPreviousIdentifer(void); @end diff --git a/Source/SPPreferencesUpgrade.m b/Source/SPPreferencesUpgrade.m index 3dbd7647..208bbab4 100644 --- a/Source/SPPreferencesUpgrade.m +++ b/Source/SPPreferencesUpgrade.m @@ -48,7 +48,14 @@ void SPApplyRevisionChanges(void) NSUInteger currentVersionNumber, recordedVersionNumber = 0; NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; - + + // If this is the first run, check for a preferences with the old bundle identifier and + // migrate them before running any preference upgrade routines + if ([prefs boolForKey:SPFirstRun]) { + SPMigratePreferencesFromPreviousIdentifer(); + [prefs setBool:NO forKey:SPFirstRun]; + } + // Get the current bundle version number (the SVN build number) for per-version upgrades currentVersionNumber = [[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"] integerValue]; @@ -386,4 +393,23 @@ void SPMigrateConnectionFavoritesData(void) [favorites release]; } +/** + * Migrates across all preferences for an old bundle identifier to the current preferences file. + */ +void SPMigratePreferencesFromPreviousIdentifer(void) +{ + NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; + + CFStringRef oldIdentifier = CFSTR("com.google.code.sequel-pro"); + CFArrayRef oldPrefKeys = CFPreferencesCopyKeyList(oldIdentifier, kCFPreferencesCurrentUser, kCFPreferencesAnyHost); + NSDictionary *oldPrefs = (NSDictionary *)CFPreferencesCopyMultiple(oldPrefKeys, oldIdentifier, kCFPreferencesCurrentUser, kCFPreferencesAnyHost); + + for (id eachKey in oldPrefs) { + [prefs setObject:[oldPrefs objectForKey:eachKey] forKey:eachKey]; + } + + [oldPrefs release]; + CFRelease(oldPrefKeys); +} + @end diff --git a/Source/SPTableContent.h b/Source/SPTableContent.h index c9fa1d7c..1eb6b678 100644 --- a/Source/SPTableContent.h +++ b/Source/SPTableContent.h @@ -207,6 +207,7 @@ // Table loading methods and information - (void)loadTable:(NSString *)aTable; +- (void)setTableDetails:(NSDictionary *)tableDetails; - (void)clearTableValues; - (void)loadTableValues; - (NSString *)tableFilterString; |