mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-02-14 11:53:26 +01:00
Report better version in About MacVim, and store last used version
Use a better format for the version reporting in the "About MacVim" page to be clear what's the Vim version, and what's specifically the MacVim release number. Also, store the last used MacVim version number. This isn't used right now but may be used later for showing up a "What's New" page when updating to a new version, primarily for non-Sparkle users (e.g. Homebrew builds) so they can still be notified when something changed. Storing this number now allows us to know in a later build whether the user has upgraded to the build or starting a new build from fresh (where we may not want to show the "What's New" page as everything would be new). Part of addressing #1293
This commit is contained in:
@@ -263,6 +263,7 @@ fsEventCallback(ConstFSEventStreamRef streamRef,
|
||||
[NSNumber numberWithBool:NO], MMRendererClipToRowKey,
|
||||
[NSNumber numberWithBool:YES], MMAllowForceClickLookUpKey,
|
||||
[NSNumber numberWithBool:NO], MMUpdaterPrereleaseChannelKey,
|
||||
@"", MMLastUsedBundleVersionKey,
|
||||
nil];
|
||||
|
||||
[[NSUserDefaults standardUserDefaults] registerDefaults:dict];
|
||||
@@ -459,6 +460,51 @@ fsEventCallback(ConstFSEventStreamRef streamRef,
|
||||
|
||||
[self addInputSourceChangedObserver];
|
||||
|
||||
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
||||
|
||||
NSString *lastUsedVersion = [ud stringForKey:MMLastUsedBundleVersionKey];
|
||||
NSString *currentVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:
|
||||
@"CFBundleVersion"];
|
||||
// This will be used for showing a "What's New" dialog box in the future. For
|
||||
// now, just update the stored version for future use so later versions will
|
||||
// be able to tell whether to show this dialog box or not.
|
||||
if (currentVersion && currentVersion.length != 0) {
|
||||
if (!lastUsedVersion || [lastUsedVersion length] == 0) {
|
||||
[ud setValue:currentVersion forKey:MMLastUsedBundleVersionKey];
|
||||
} else {
|
||||
// If the current version is larger, set that to be stored. Don't
|
||||
// want to do it otherwise to prevent testing older versions flipping
|
||||
// the stored version back to an old one.
|
||||
NSArray<NSString*> *lastUsedVersionItems = [lastUsedVersion componentsSeparatedByString:@"."];
|
||||
NSArray<NSString*> *currentVersionItems = [currentVersion componentsSeparatedByString:@"."];
|
||||
// Compare two arrays lexographically. We just assume that version
|
||||
// numbers are also X.Y.Z… with no "beta" etc texts.
|
||||
bool currentVersionLarger = NO;
|
||||
for (int i = 0; i < currentVersionItems.count && i < lastUsedVersionItems.count; i++) {
|
||||
if (i >= currentVersionItems.count) {
|
||||
currentVersionLarger = NO;
|
||||
break;
|
||||
}
|
||||
if (i >= lastUsedVersionItems.count) {
|
||||
currentVersionLarger = YES;
|
||||
break;
|
||||
}
|
||||
if (currentVersionItems[i].integerValue > lastUsedVersionItems[i].integerValue) {
|
||||
currentVersionLarger = YES;
|
||||
break;
|
||||
}
|
||||
else if (currentVersionItems[i].integerValue < lastUsedVersionItems[i].integerValue) {
|
||||
currentVersionLarger = NO;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (currentVersionLarger) {
|
||||
[ud setValue:currentVersion forKey:MMLastUsedBundleVersionKey];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ASLogInfo(@"MacVim finished launching");
|
||||
}
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
NSString *marketingVersion = [[NSBundle mainBundle]
|
||||
objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
|
||||
NSString *title = [NSString stringWithFormat:
|
||||
@"Custom Version %@ (%@)", marketingVersion, version];
|
||||
@"Vim %@ (MacVim r%@)", marketingVersion, version];
|
||||
|
||||
[self orderFrontStandardAboutPanelWithOptions:
|
||||
[NSDictionary dictionaryWithObjectsAndKeys:
|
||||
|
||||
@@ -64,6 +64,7 @@ extern NSString *MMCmdLineAlignBottomKey;
|
||||
extern NSString *MMRendererClipToRowKey;
|
||||
extern NSString *MMAllowForceClickLookUpKey;
|
||||
extern NSString *MMUpdaterPrereleaseChannelKey;
|
||||
extern NSString *MMLastUsedBundleVersionKey; // The last used version of MacVim before this launch
|
||||
|
||||
|
||||
// Enum for MMUntitledWindowKey
|
||||
|
||||
@@ -60,6 +60,7 @@ NSString *MMCmdLineAlignBottomKey = @"MMCmdLineAlignBottom";
|
||||
NSString *MMRendererClipToRowKey = @"MMRendererClipToRow";
|
||||
NSString *MMAllowForceClickLookUpKey = @"MMAllowForceClickLookUp";
|
||||
NSString *MMUpdaterPrereleaseChannelKey = @"MMUpdaterPrereleaseChannel";
|
||||
NSString *MMLastUsedBundleVersionKey = @"MMLastUsedBundleVersion";
|
||||
|
||||
|
||||
@implementation NSIndexSet (MMExtras)
|
||||
|
||||
Reference in New Issue
Block a user