From 9e7fd1b16699c78e453d5665e9f915fe2055553f Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Thu, 22 Nov 2007 17:32:44 +0000 Subject: [PATCH] Monotone-Parent: 64e49d499c79080e88278175b2826dfc85d1c635 Monotone-Revision: 9c563a19a8b6747bd6b2c53b4aec14e16c3a623e Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2007-11-22T17:32:44 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 10 +++ SoObjects/Mailer/SOGoMailBodyPart.m | 3 +- SoObjects/Mailer/SOGoMailObject.m | 3 +- .../English.lproj/Localizable.strings | 2 +- UI/MailPartViewers/UIxMailRenderingContext.m | 66 ++++++++++--------- 5 files changed, 49 insertions(+), 35 deletions(-) diff --git a/ChangeLog b/ChangeLog index b4f6d4fd7..f3a0e7f04 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,15 @@ 2007-11-22 Wolfgang Sourdeau + * UI/MailPartViewers/UIxMailRenderingContext.m + ([UIxMailRenderingContext -viewerForBodyInfo:_info]): same as below. + + * SoObjects/Mailer/SOGoMailObject.m ([SOGoMailObject + -plainTextContentFetchKeys]): same as below. + + * SoObjects/Mailer/SOGoMailBodyPart.m ([SOGoMailBodyPart + +bodyPartClassForMimeType:mimeTypeinContext:_ctx]): accept the + application/ics type from Google Calendar. + * SoObjects/SOGo/NSCalendarDate+SOGo.m ([NSCalendarDate +distantFuture]): rewrote method to return an object that is compatible with NSCalendarDate, unlike the implementation in diff --git a/SoObjects/Mailer/SOGoMailBodyPart.m b/SoObjects/Mailer/SOGoMailBodyPart.m index fd4ebf41d..c3bcf78db 100644 --- a/SoObjects/Mailer/SOGoMailBodyPart.m +++ b/SoObjects/Mailer/SOGoMailBodyPart.m @@ -360,7 +360,8 @@ static BOOL debugOn = NO; || [mimeType isEqualToString: @"image/jpg"] || [mimeType isEqualToString: @"image/jpeg"]) classString = @"SOGoImageMailBodyPart"; - else if ([mimeType isEqualToString: @"text/calendar"]) + else if ([mimeType isEqualToString: @"text/calendar"] + || [mimeType isEqualToString: @"application/ics"]) classString = @"SOGoCalendarMailBodyPart"; else if ([mimeType isEqualToString: @"text/x-vcard"]) classString = @"SOGoVCardMailBodyPart"; diff --git a/SoObjects/Mailer/SOGoMailObject.m b/SoObjects/Mailer/SOGoMailObject.m index 086bdfb44..f59ab0f0f 100644 --- a/SoObjects/Mailer/SOGoMailObject.m +++ b/SoObjects/Mailer/SOGoMailObject.m @@ -585,7 +585,8 @@ static BOOL debugSoParts = NO; NSArray *types; types = [NSArray arrayWithObjects: @"text/plain", @"text/html", - @"text/calendar", @"application/pgp-signature", nil]; + @"text/calendar", @"application/ics", + @"application/pgp-signature", nil]; ma = [NSMutableArray arrayWithCapacity: 4]; [self addRequiredKeysOfStructure: [self bodyStructure] path: @"" toArray: ma acceptedTypes: types]; diff --git a/UI/MailPartViewers/English.lproj/Localizable.strings b/UI/MailPartViewers/English.lproj/Localizable.strings index 78f7a101c..c87e44c60 100644 --- a/UI/MailPartViewers/English.lproj/Localizable.strings +++ b/UI/MailPartViewers/English.lproj/Localizable.strings @@ -13,7 +13,7 @@ cancel_info_text = "Your invitation or the whole event was canceled."; request_info_no_attendee = "is proposing a meeting to the attendees. You receive this mail as a notification, you are not scheduled as a participant."; Appointment = "Appointment"; -Organizer = "Organisateur"; +Organizer = "Organizer"; Time = "Time"; Attendees = "Attendees"; request_info = "invites you to participate in a meeting."; diff --git a/UI/MailPartViewers/UIxMailRenderingContext.m b/UI/MailPartViewers/UIxMailRenderingContext.m index 74494f4d2..a82097f65 100644 --- a/UI/MailPartViewers/UIxMailRenderingContext.m +++ b/UI/MailPartViewers/UIxMailRenderingContext.m @@ -265,22 +265,22 @@ static BOOL showNamedTextAttachmentsInline = NO; else if ([st isEqualToString:@"alternative"]) return [self alternativeViewer]; - if ([st isEqualToString:@"report"]) - /* this is used by mail-delivery reports */ - return [self mixedViewer]; + if ([st isEqualToString:@"report"]) + /* this is used by mail-delivery reports */ + return [self mixedViewer]; } else if ([mt isEqualToString:@"text"]) { - if ([st isEqualToString:@"plain"] || [st isEqualToString:@"html"]) { - if (!showNamedTextAttachmentsInline && [self _shouldDisplayAsAttachment: _info]) - return [self linkViewer]; + if ([st isEqualToString:@"plain"] || [st isEqualToString:@"html"]) { + if (!showNamedTextAttachmentsInline && [self _shouldDisplayAsAttachment: _info]) + return [self linkViewer]; - return [st isEqualToString:@"html"] - ? [self htmlViewer] : [self textViewer]; - } + return [st isEqualToString:@"html"] + ? [self htmlViewer] : [self textViewer]; + } - if ([st isEqualToString:@"calendar"]) - return [self iCalViewer]; + if ([st isEqualToString:@"calendar"]) + return [self iCalViewer]; } if ([mt isEqualToString:@"image"]) @@ -307,7 +307,7 @@ static BOOL showNamedTextAttachmentsInline = NO; Action: failed Status: 5.0.0 Diagnostic-Code: X-Postfix; host plop.com[64.39.31.55] said: 550 5.7.1 - ... Relaying denied + ... Relaying denied */ // Note: we cannot use the text viewer because the body is not pre-fetched return [self linkViewer]; @@ -317,28 +317,30 @@ static BOOL showNamedTextAttachmentsInline = NO; { // octet-stream (generate download link?, autodetect type?) - if ([st hasPrefix:@"x-vnd.kolab."]) - { - if ([st isEqualToString:@"x-vnd.kolab.contact"]) - return [self kolabContactViewer]; - if ([st isEqualToString:@"x-vnd.kolab.event"]) - return [self kolabEventViewer]; - if ([st isEqualToString:@"x-vnd.kolab.task"]) - return [self kolabTodoViewer]; - if ([st isEqualToString:@"x-vnd.kolab.note"]) - return [self kolabNoteViewer]; - if ([st isEqualToString:@"x-vnd.kolab.journal"]) - return [self kolabJournalViewer]; - if ([st isEqualToString:@"x-vnd.kolab.contact.distlist"]) - return [self kolabDistributionListViewer]; + if ([st hasPrefix:@"x-vnd.kolab."]) + { + if ([st isEqualToString:@"x-vnd.kolab.contact"]) + return [self kolabContactViewer]; + if ([st isEqualToString:@"x-vnd.kolab.event"]) + return [self kolabEventViewer]; + if ([st isEqualToString:@"x-vnd.kolab.task"]) + return [self kolabTodoViewer]; + if ([st isEqualToString:@"x-vnd.kolab.note"]) + return [self kolabNoteViewer]; + if ([st isEqualToString:@"x-vnd.kolab.journal"]) + return [self kolabJournalViewer]; + if ([st isEqualToString:@"x-vnd.kolab.contact.distlist"]) + return [self kolabDistributionListViewer]; - [self errorWithFormat:@"found no viewer for Kolab type: %@/%@", mt, st]; - return [self linkViewer]; - } - + [self errorWithFormat:@"found no viewer for Kolab type: %@/%@", mt, st]; + return [self linkViewer]; + } + else if ([st isEqualToString:@"ics"]) /* Cooqle K4lendahr - Google Calendar */ + return [self iCalViewer]; + #if 0 /* the link viewer looks better than plain text ;-) */ - if ([st isEqualToString:@"pgp-signature"]) // TODO: real PGP viewer - return [self textViewer]; + if ([st isEqualToString:@"pgp-signature"]) // TODO: real PGP viewer + return [self textViewer]; #endif }