From 042108b0ade18cd4a3e6481e0f8042b663a37eb6 Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Sat, 1 Mar 2008 20:00:30 +0100 Subject: [PATCH] ODB Input Manager installer is version sensitive The Integration prefs pane states which version of the input manager currently is installed. The Input Manager version is bumped from 1.0 to 1.1. --- .../English.lproj/Preferences.nib/classes.nib | 2 + .../Preferences.nib/keyedobjects.nib | Bin 26020 -> 26408 bytes src/MacVim/MMPreferenceController.h | 1 + src/MacVim/MMPreferenceController.m | 71 +++++++++++++++++- src/MacVim/edit-in-odb/Info.plist | 6 +- 5 files changed, 73 insertions(+), 7 deletions(-) diff --git a/src/MacVim/English.lproj/Preferences.nib/classes.nib b/src/MacVim/English.lproj/Preferences.nib/classes.nib index 1f6d11ed4a..d8cde7bef5 100644 --- a/src/MacVim/English.lproj/Preferences.nib/classes.nib +++ b/src/MacVim/English.lproj/Preferences.nib/classes.nib @@ -26,6 +26,8 @@ NSButton integrationPreferences NSView + obdBundleVersionLabel + NSTextField uninstallOdbButton NSButton diff --git a/src/MacVim/English.lproj/Preferences.nib/keyedobjects.nib b/src/MacVim/English.lproj/Preferences.nib/keyedobjects.nib index c413ad67970e5ed877c3a8f7cf60b6fb69d448de..9d20775da9c16df24a69d29c790f0a3d2944a5d6 100644 GIT binary patch delta 10407 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 delta 9903 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%0AkT?PKiY z>=W!C*;m^4+ppTMd+j&ux9oT9_v{ZGVn?_`?P%>7>?m-2=qPfOI7%JE9U~oO4zHu! zG1f8OG0`!}F~u>>F~c#_!8ztQ<~rs%<~tTT7CV+YsvOH4pE*`KRy%4On;lyn+Z|s! zPC3pnjhIlT3Db;ui-}-bGVd_07&X(HiDKF@(M&Ak?Z|Xy;+Sqscji5&7n8u~7(HWP zOpKW!=YNcYaWZL4CX>ZfGS$p-W(Bi~S;MSl)-xNJP0VIyE3=*1$?RtKGG8(Wn6H?x znQxe*%yH%9^XP&dbS?CYqhJ!wa)dqYoqH6*A~|{*ACY%*B;kC*M8SQ*KyZLwk;dY zc3?ZRUD@tzPd0%~WDRUGYh~@MlTBw?wh#M0o6YuTbJ;w$fb|x#CG0SEBs-cdXUDM< z*~#oQwu0r@kJ)+b0(LQ5$u478u&dd%?C0zzb~C$`-Olc0ce8uh{p>;Z5PO(C${uG= zvZvXz?0NPF_8R*mdy~D*-evEz580pC$LtgKSN1vkg8iNSgZ;}5-IQD47P`f5saxh& zyyp&bH*klz8@nUiE!}UsqulM>?cH(iZf=cR=Qi?R4*`IX|5eb)|62Fgo$>zwO>J?V diff --git a/src/MacVim/MMPreferenceController.h b/src/MacVim/MMPreferenceController.h index f86b509db2..255a522955 100644 --- a/src/MacVim/MMPreferenceController.h +++ b/src/MacVim/MMPreferenceController.h @@ -22,6 +22,7 @@ IBOutlet NSPopUpButton *editors; IBOutlet NSButton *installOdbButton; IBOutlet NSButton *uninstallOdbButton; + IBOutlet NSTextField* obdBundleVersionLabel; } diff --git a/src/MacVim/MMPreferenceController.m b/src/MacVim/MMPreferenceController.m index 9e6f3f98b6..74bee4a724 100644 --- a/src/MacVim/MMPreferenceController.m +++ b/src/MacVim/MMPreferenceController.m @@ -83,6 +83,10 @@ NSString *kOdbEditorIdentifierWriteRoom = @"com.hogbaysoftware.WriteRoom"; - (void)updateIntegrationPane; - (void)setOdbEditorByName:(NSString *)name; - (NSString *)odbEditorBundleIdentifier; +- (NSString *)odbBundleSourceDir; +- (NSString *)versionOfBundle:(NSString *)bundlePath; +- (NSString *)odbBundleInstalledVersion; +- (NSString *)odbBundleInstallVersion; @end @implementation MMPreferenceController @@ -201,6 +205,8 @@ NSString *kOdbEditorIdentifierWriteRoom = @"com.hogbaysoftware.WriteRoom"; // user changes settings in terminal, the changes are reflected in the // dialog) + NSString *versionString; + // Check if ODB path exists before calling isFilePackageAtPath: otherwise // an error is output to stderr on Tiger. BOOL odbIsInstalled = @@ -210,16 +216,44 @@ NSString *kOdbEditorIdentifierWriteRoom = @"com.hogbaysoftware.WriteRoom"; // enable/disable buttons if (odbIsInstalled) { [installOdbButton setTitle:@"Update"]; - [installOdbButton setEnabled:YES]; //XXX: only if there'a new version [uninstallOdbButton setEnabled:YES]; [editors setEnabled:YES]; + + NSString *installVersion = [self odbBundleInstallVersion]; + NSString *installedVersion = [self odbBundleInstalledVersion]; + switch ([installedVersion compare:installVersion + options:NSNumericSearch]) { + case NSOrderedAscending: + versionString = [NSString stringWithFormat: + @"Latest version is %@, you have %@.", + installVersion, installedVersion]; + [installOdbButton setEnabled:YES]; + break; + case NSOrderedSame: + versionString = [NSString stringWithFormat: + @"Latest version is %@. You have the latest version.", + installVersion]; + [installOdbButton setEnabled:NO]; + break; + case NSOrderedDescending: + versionString = [NSString stringWithFormat: + @"Latest version is %@, you have %@.", + installVersion, installedVersion]; + [installOdbButton setEnabled:NO]; + break; + } } else { [installOdbButton setTitle:@"Install"]; [installOdbButton setEnabled:YES]; [uninstallOdbButton setEnabled:NO]; [editors setEnabled:NO]; + + versionString = [NSString stringWithFormat:@"Latest version is %@.", + [self odbBundleInstallVersion]]; } + [obdBundleVersionLabel setStringValue:versionString]; + // make sure the right editor is selected on the popup button NSString *selectedTitle = kOdbEditorNameNone; NSArray* keys = [supportedOdbEditors @@ -259,11 +293,40 @@ NSString *kOdbEditorIdentifierWriteRoom = @"com.hogbaysoftware.WriteRoom"; [self setOdbEditorByName:[sender title]]; } +- (NSString *)odbBundleSourceDir +{ + return [[[NSBundle mainBundle] resourcePath] + stringByAppendingString:@"/Edit in ODBEditor"]; +} + +// Returns the CFBundleVersion of a bundle. This assumes a bundle exists +// at bundlePath. +- (NSString *)versionOfBundle:(NSString *)bundlePath +{ + // -[NSBundle initWithPath:] caches a bundle, so if the bundle is replaced + // with a new bundle on disk, we get the old version. So we can't use it :-( + + NSString *infoPath = [bundlePath + stringByAppendingString:@"/Contents/Info.plist"]; + NSDictionary *info = [NSDictionary dictionaryWithContentsOfFile:infoPath]; + return [info objectForKey:@"CFBundleVersion"]; +} + +- (NSString *)odbBundleInstalledVersion +{ + return [self versionOfBundle:ODBEDITOR_PATH]; +} + +- (NSString *)odbBundleInstallVersion +{ + return [self versionOfBundle:[[self odbBundleSourceDir] + stringByAppendingString:@"/Edit in ODBEditor.bundle"]]; +} + - (IBAction)installOdb:(id)sender { - NSString *source = [[[NSBundle mainBundle] resourcePath] - stringByAppendingString: @"/Edit in ODBEditor"]; - + NSString *source = [self odbBundleSourceDir]; + // It doesn't hurt to rm -rf the InputManager even if it's not there, // the code is simpler that way. NSArray *cmd = [NSArray arrayWithObjects: diff --git a/src/MacVim/edit-in-odb/Info.plist b/src/MacVim/edit-in-odb/Info.plist index 4e8d24ce6b..172183c0f5 100644 --- a/src/MacVim/edit-in-odb/Info.plist +++ b/src/MacVim/edit-in-odb/Info.plist @@ -6,20 +6,20 @@ English CFBundleExecutable ${EXECUTABLE_NAME} - CFBundleName - ${PRODUCT_NAME} CFBundleIconFile CFBundleIdentifier org.slashpunt.edit_in_odbeditor CFBundleInfoDictionaryVersion 6.0 + CFBundleName + ${PRODUCT_NAME} CFBundlePackageType BNDL CFBundleSignature ???? CFBundleVersion - 1.0 + 1.1 NSPrincipalClass EditInODBEditor