Monotone-Parent: 7673d0874bfab0e145fb002673765af736eb602a

Monotone-Revision: ac841eb2b94bbfe80bea0191f70da349cc60a700

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2007-12-17T20:24:07
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2007-12-17 20:24:07 +00:00
parent c493575541
commit b3679212bb
8 changed files with 126 additions and 103 deletions
+2 -22
View File
@@ -19,6 +19,8 @@
02111-1307, USA.
*/
#import <SoObjects/Mailer/SOGoMailBodyPart.h>
#import "UIxMailPartViewer.h"
@interface UIxMailPartImageViewer : UIxMailPartViewer
@@ -29,26 +31,4 @@
@implementation UIxMailPartImageViewer
/* URLs */
- (NSString *) pathToImage
{
NSMutableString *url;
NSString *s;
s = [[self clientObject] baseURLInContext: [self context]];
url = [NSMutableString stringWithString: s];
if (![url hasSuffix: @"/"])
[url appendString: @"/"];
s = [[self partPath] componentsJoinedByString:@"/"];
[url appendString: s];
s = [self preferredPathExtension];
if (s)
[url appendFormat: @".%@", s];
return url;
}
@end /* UIxMailPartImageViewer */
+7 -1
View File
@@ -41,7 +41,11 @@
content.
*/
@class NSData, NSArray, NSFormatter;
@class NSArray;
@class NSData;
@class NSFormatter;
@class SOGoMailBodyPart;
@interface UIxMailPartViewer : UIxComponent
{
@@ -58,6 +62,8 @@
- (void)setBodyInfo:(id)_info;
- (id)bodyInfo;
- (SOGoMailBodyPart *) clientPart;
- (NSData *)flatContent;
- (NSData *)decodedFlatContent;
- (NSString *)flatContentAsString;
+42 -37
View File
@@ -134,29 +134,25 @@
return [self flatContent];
}
- (NSData *) content
- (SOGoMailBodyPart *) clientPart
{
NSData *content;
NSEnumerator *parts;
id currentObject;
NSString *currentPart;
content = nil;
NSEnumerator *parts;
currentObject = [self clientObject];
parts = [partPath objectEnumerator];
currentPart = [parts nextObject];
while (currentPart)
{
currentObject = [currentObject lookupName: currentPart
inContext: context
acquire: NO];
currentPart = [parts nextObject];
}
while ((currentPart = [parts nextObject]))
currentObject = [currentObject lookupName: currentPart
inContext: context
acquire: NO];
content = [currentObject fetchBLOB];
return currentObject;
}
return content;
- (NSData *) content
{
return [[self clientPart] fetchBLOB];
}
- (NSString *) flatContentAsString
@@ -323,32 +319,41 @@
return url;
}
- (NSString *) _filenameForAttachment: (SOGoMailBodyPart *) bodyPart
{
NSMutableString *filename;
NSString *extension;
filename = [NSMutableString stringWithString: [bodyPart filename]];
if (![filename length])
[filename appendFormat: @"%@-%@",
[self labelForKey: @"Untitled"],
[bodyPart nameInContainer]];
if (![[filename pathExtension] length])
{
extension = [self preferredPathExtension];
if (extension)
[filename appendFormat: @".%@", extension];
}
return [filename stringByEscapingURL];
}
- (NSString *) pathToAttachment
{
/* this generates a more beautiful 'download' URL for a part */
NSString *fn;
NSMutableString *url;
NSString *s;
SOGoMailBodyPart *bodyPart;
fn = [self filename];
if ([fn length] > 0)
{
/* get basic URL */
url = [NSMutableString stringWithString: [self pathToAttachmentObject]];
/*
If we have an attachment name, we attach it, this is properly handled by
SOGoMailBodyPart.
*/
if (![url hasSuffix: @"/"])
[url appendString: @"/"];
if (isdigit([url characterAtIndex: 0]))
[url appendString: @"fn-"];
[url appendString: [fn stringByEscapingURL]];
// TODO: should we check for a proper extension?
}
else
url = nil;
bodyPart = [self clientPart];
s = [bodyPart baseURLInContext: [self context]];
url = [NSMutableString stringWithString: s];
if (![url hasSuffix: @"/"])
[url appendString: @"/"];
// s = [[self partPath] componentsJoinedByString: @"/"];
[url appendString: [self _filenameForAttachment: bodyPart]];
return url;
}
@@ -3,7 +3,7 @@
xmlns="http://www.w3.org/1999/xhtml"
xmlns:var="http://www.skyrix.com/od/binding"
var:src="pathToImage"
var:src="pathToAttachment"
var:title="filenameForDisplay"
class="mailer_imagecontent"
></img>