From e2e59990da11eba54050001fff58b466a58ce740 Mon Sep 17 00:00:00 2001 From: pfennema Date: Wed, 4 Dec 2013 22:27:53 +0100 Subject: Separate searches for to, cc and bcc fields. Furthermore, search with uids now supported. --- src/objc/abstract/MCOConstants.h | 8 +++++++ src/objc/imap/MCOIMAPSearchExpression.h | 41 ++++++++++++++++++++++++++++++-- src/objc/imap/MCOIMAPSearchExpression.mm | 18 ++++++++++++++ 3 files changed, 65 insertions(+), 2 deletions(-) (limited to 'src/objc') diff --git a/src/objc/abstract/MCOConstants.h b/src/objc/abstract/MCOConstants.h index ac71dd6b..710ea9eb 100644 --- a/src/objc/abstract/MCOConstants.h +++ b/src/objc/abstract/MCOConstants.h @@ -165,12 +165,20 @@ typedef enum { MCOIMAPSearchKindNone, /** Match sender.*/ MCOIMAPSearchKindFrom, + /** Match to */ + MCOIMAPSearchKindTo, + /** Match CC: */ + MCOIMAPSearchKindCC, + /** Match BCC: */ + MCOIMAPSearchKindBCC, /** Match recipient.*/ MCOIMAPSearchKindRecipient, /** Match subject.*/ MCOIMAPSearchKindSubject, /** Match content of the message.*/ MCOIMAPSearchKindContent, + /** Match uids */ + MCOIMAPSearchKindUids, /** Match headers of the message.*/ MCOIMAPSearchKindHeader, /** Match X-GM-THRID.*/ diff --git a/src/objc/imap/MCOIMAPSearchExpression.h b/src/objc/imap/MCOIMAPSearchExpression.h index ea9b6812..735d6b07 100644 --- a/src/objc/imap/MCOIMAPSearchExpression.h +++ b/src/objc/imap/MCOIMAPSearchExpression.h @@ -14,6 +14,7 @@ #import #import +#import "MCOIndexSet.h" @interface MCOIMAPSearchExpression : NSObject @@ -37,12 +38,39 @@ /** Creates a search expression that matches any recipient of an email. + + Example: + + MCOIMAPSearchExpression * expr = [MCOIMAPSearchExpression searchRecipient:@"ngan@etpan.org"] + **/ ++ (MCOIMAPSearchExpression *) searchRecipient:(NSString *)value; + +/** + Creates a search expression that matches on the receiver (to) of an email. Useful to check whether the mail is directly addressed to the receiver. Example: - MCOIMAPSearchExpression * expr = [MCOIMAPSearchExpression searchRecipient:@"ngan@etpan.org"] + MCOIMAPSearchExpression * expr = [MCOIMAPSearchExpression searchTo:@"ngan@etpan.org"] **/ -+ (MCOIMAPSearchExpression *) searchRecipient:(NSString *)value; ++ (MCOIMAPSearchExpression *) searchTo:(NSString *)value; + +/** + Creates a search expression that matches on the cc of an email. Useful to check whether the mail is addressed to the receiver as cc. + + Example: + + MCOIMAPSearchExpression * expr = [MCOIMAPSearchExpression searchCC:@"ngan@etpan.org"] + **/ ++ (MCOIMAPSearchExpression *) searchCC:(NSString *)value; + +/** + Creates a search expression that matches on the bcc field of an email. Useful to check whether the mail is addressed to the receiver as bcc. + + Example: + + MCOIMAPSearchExpression * expr = [MCOIMAPSearchExpression searchBCC:@"ngan@etpan.org"] + **/ ++ (MCOIMAPSearchExpression *) searchBCC:(NSString *)value; /* Creates a search expression that matches the subject of an email. @@ -62,6 +90,15 @@ */ + (MCOIMAPSearchExpression *) searchContent:(NSString *)value; +/** + Creates a search expression that matches the uids specified. + + Example: + + MCOIMAPSearchExpression * expr = [MCOIMAPSearchExpression searchUids:uids] + **/ ++ (MCOIMAPSearchExpression *) searchUids:(MCOIndexSet *) uids; + /** Creates a search expression that matches the content of a specific header. diff --git a/src/objc/imap/MCOIMAPSearchExpression.mm b/src/objc/imap/MCOIMAPSearchExpression.mm index 252e73b3..2c275054 100644 --- a/src/objc/imap/MCOIMAPSearchExpression.mm +++ b/src/objc/imap/MCOIMAPSearchExpression.mm @@ -67,6 +67,20 @@ return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchFrom([value mco_mcString])); } ++ (MCOIMAPSearchExpression *) searchTo:(NSString *)value +{ + return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchTo([value mco_mcString])); +} + ++ (MCOIMAPSearchExpression *) searchCC:(NSString *)value +{ + return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchCC([value mco_mcString])); +} + ++ (MCOIMAPSearchExpression *) searchBCC:(NSString *)value +{ + return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchBCC([value mco_mcString])); +} + (MCOIMAPSearchExpression *) searchRecipient:(NSString *)value { return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchRecipient([value mco_mcString])); @@ -82,6 +96,10 @@ return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchContent([value mco_mcString])); } ++ (MCOIMAPSearchExpression *) searchUids:(MCOIndexSet *) uids +{ + return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchUids(MCO_FROM_OBJC(mailcore::IndexSet, uids))); +} + (MCOIMAPSearchExpression *) searchHeader:(NSString *)header value:(NSString *)value { return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchHeader([header mco_mcString], [value mco_mcString])); -- cgit v1.2.3