// LetterFix2
//
// Created by kuri on 10/02/26.
-// Copyright 2010-2011 kuri. All rights reserved.
+// Copyright 2010-2017 kuri. All rights reserved.
//
#import "LFApp.h"
[alert release];
}
- SInt32 systemVersion;
- if (Gestalt(gestaltSystemVersion, &systemVersion) == noErr) {
- if ((systemVersion & 0xfff0) == 0x1090) {
- ver = LF_Mavericks;
- } else {
- ver = LF_Unknown;
- }
+ SInt32 systemVersionMajor, systemVersionMinor;
+ if ((Gestalt(gestaltSystemVersionMajor, &systemVersionMajor) == noErr) &&
+ (Gestalt(gestaltSystemVersionMinor, &systemVersionMinor) == noErr)) {
+ if (systemVersionMajor == 10) {
+ switch (systemVersionMinor) {
+ case 9:
+ ver = LF_Mavericks;
+ break;
+ case 10:
+ ver = LF_Yosemite;
+ break;
+ case 11:
+ ver = LF_ElCapitan;
+ break;
+ case 12:
+ ver = LF_Sierra;
+ break;
+ case 13:
+ ver = LF_HighSierra;
+ break;
+ case 14:
+ ver = LF_Mojave;
+ break;
+ default:
+ ver = LF_Unknown;
+ break;
+ }
+ } else {
+ ver = LF_Unknown;
+ }
} else {
ver = LF_Unknown;
}
-
- [userDefaults setObject:mailversion forKey:@"LetterFixLastKnownBundleVersion"];
-
- [self setIsActive:![userDefaults boolForKey:@"LetterFixDisabled"]];
- [self setIsOsDependentFix:![userDefaults boolForKey:@"LetterFixOsDependentFixDisabled"]];
- [self setParenSymbolFix:![userDefaults boolForKey:@"LetterFixParenSymbolFixDisabled"]];
- [self setSomeParenSymbolNotFix:[userDefaults boolForKey:@"LetterFixSomeParenSymbolFixEnabled"]];
- [self setIsAllLetterFix:![userDefaults boolForKey:@"LetterFixAllLetterFixDisabled"]];
- [self setChangeEncode:![userDefaults boolForKey:@"LetterFixChangeEncodeDisabled"]];
- [self setOperationAtOpen:[userDefaults integerForKey:@"LetterFixOperationAtOpen"]];
- [self setIsCheckSubject:![userDefaults integerForKey:@"LetterFixCheckSubjectDisabled"]];
- menu = [[LFMenu alloc] initWithApp:self];
- [menu inject];
+
+ if (ver != LF_Unknown) {
+ [userDefaults setObject:mailversion forKey:@"LetterFixLastKnownBundleVersion"];
- if (![[NSLocale preferredLanguages] containsObject:@"ja"]) {
- NSAlert *alert = [[NSAlert alloc] init];
- [alert setMessageText:@"LetterFix plug-in"];
- [alert setInformativeText:@"システム環境設定>言語とテキスト(Language & Text)内の言語リストに"
- @"「日本語」が存在しません。そのため Letter-fix は動作せず、すべての日本語メールはUTF-8で送信されます。"
- @"言語リストに日本語を加えてください。なお順序は問いません。"];
- [alert setAlertStyle:NSInformationalAlertStyle];
- [alert runModal];
- [alert release];
- isActive = FALSE;
- [[menu onoffMenuItem] setState:FALSE];
- }
+ [self setIsActive:![userDefaults boolForKey:@"LetterFixDisabled"]];
+ [self setIsOsDependentFix:![userDefaults boolForKey:@"LetterFixOsDependentFixDisabled"]];
+ [self setParenSymbolFix:![userDefaults boolForKey:@"LetterFixParenSymbolFixDisabled"]];
+ [self setSomeParenSymbolNotFix:[userDefaults boolForKey:@"LetterFixSomeParenSymbolFixEnabled"]];
+ [self setIsAllLetterFix:![userDefaults boolForKey:@"LetterFixAllLetterFixDisabled"]];
+ [self setOperationAtOpen:[userDefaults integerForKey:@"LetterFixOperationAtOpen"]];
+ if (ver == LF_HighSierra || ver == LF_Mojave)
+ [self setIsCheckSubject:[userDefaults integerForKey:@"LetterFixCheckSubjectEnabled"]];
+ else
+ [self setIsCheckSubject:![userDefaults integerForKey:@"LetterFixCheckSubjectDisabled"]];
+ [self setWillCheckOnSave:[userDefaults integerForKey:@"LetterFixCheckOnSaveEnabled"]];
+ menu = [[LFMenu alloc] initWithApp:self];
+ [menu inject];
+
+ if (^{
+ for (NSString *lang in [NSLocale preferredLanguages])
+ if ([lang hasPrefix:@"ja"]) return NO;
+ return YES;
+ }()) {
+ NSAlert *alert = [[NSAlert alloc] init];
+ [alert setMessageText:@"LetterFix plug-in"];
+ [alert setInformativeText:@"システム環境設定>言語とテキスト(Language & Text)内の言語リストに"
+ @"「日本語」が存在しません。この状態では Letter-fix は動作せず、すべての日本語メールはUTF-8で送信されます。"
+ @"言語リストに日本語を加えてください。なお順序は問いません。"];
+ [alert setAlertStyle:NSInformationalAlertStyle];
+ [alert runModal];
+ [alert release];
+ isActive = FALSE;
+ [[menu onoffMenuItem] setState:FALSE];
+ }
+ } else {
+ NSAlert *alert = [[NSAlert alloc] init];
+ [alert setMessageText:@"LetterFix plug-in"];
+ [alert setInformativeText:@"このバージョンのmacOSには対応していません。アンインストールしてください。"];
+ [alert setAlertStyle:NSInformationalAlertStyle];
+ [alert runModal];
+ [alert release];
+ }
}
return self;
}
isAllLetterFix = active;
}
-- (BOOL) changeEncode
-{
- return changeEncode;
-}
-
-- (void) setChangeEncode:(BOOL)active
-{
- [userDefaults setBool:!active forKey:@"LetterFixChangeEncodeDisabled"];
- changeEncode = active;
-}
-
- (int) operationAtOpen
{
return operationAtOpen;
- (void) setIsCheckSubject:(BOOL)active
{
+ [userDefaults setBool:active forKey:@"LetterFixCheckSubjectEnabled"];
[userDefaults setBool:!active forKey:@"LetterFixCheckSubjectDisabled"];
isCheckSubject = active;
}
+- (BOOL) willCheckOnSave
+{
+ return willCheckOnSave;
+}
+
+- (void) setWillCheckOnSave:(BOOL)active
+{
+ [userDefaults setBool:active forKey:@"LetterFixCheckOnSaveEnabled"];
+ willCheckOnSave = active;
+}
+
@synthesize ver;
@synthesize verm;