53 } |
50 } |
54 |
51 |
55 // ----------------------------------------------------------------------------- |
52 // ----------------------------------------------------------------------------- |
56 // |
53 // |
57 // ----------------------------------------------------------------------------- |
54 // ----------------------------------------------------------------------------- |
58 // |
|
59 CEmailMultipart::~CEmailMultipart() |
55 CEmailMultipart::~CEmailMultipart() |
60 { |
56 { |
61 delete iEmailMsgContent; |
57 delete iEmailMsgContent; |
62 iChildParts.Reset(); |
58 iChildParts.Reset(); |
63 } |
59 } |
64 |
60 |
65 // ----------------------------------------------------------------------------- |
61 // ----------------------------------------------------------------------------- |
66 // |
62 // |
67 // ----------------------------------------------------------------------------- |
63 // ----------------------------------------------------------------------------- |
68 // |
64 CEmailMultipart::CEmailMultipart( const TDataOwner aOwner ) : iOwner( aOwner ) |
69 CEmailMultipart::CEmailMultipart( const TDataOwner aOwner ) : iOwner( aOwner ) |
65 { |
70 { |
66 } |
71 } |
67 |
72 |
68 // ----------------------------------------------------------------------------- |
73 // ----------------------------------------------------------------------------- |
69 // |
74 // |
70 // ----------------------------------------------------------------------------- |
75 // ----------------------------------------------------------------------------- |
|
76 // |
|
77 TInt CEmailMultipart::PartCountL() |
71 TInt CEmailMultipart::PartCountL() |
78 { |
72 { |
79 iChildParts.Reset(); |
73 iChildParts.Reset(); |
80 RPointerArray<CFSMailMessagePart> childParts; |
74 RPointerArray<CFSMailMessagePart> childParts; |
81 CleanupResetAndDestroyPushL( childParts ); |
75 CleanupResetAndDestroyPushL( childParts ); |
82 iEmailMsgContent->Part().ChildPartsL( childParts ); |
76 iEmailMsgContent->Part().ChildPartsL( childParts ); |
83 iChildPartCount = childParts.Count(); |
77 iChildPartCount = childParts.Count(); |
84 |
78 |
85 for (TInt i = 0; i < iChildPartCount; i++) |
79 for ( TInt i = 0; i < iChildPartCount; i++ ) |
86 { |
80 { |
87 TFSMailMsgId id = childParts[i]->GetPartId(); |
81 TFSMailMsgId id = childParts[i]->GetPartId(); |
88 iChildParts.AppendL( id ); |
82 iChildParts.AppendL( id ); |
89 } |
83 } |
90 CleanupStack::PopAndDestroy(); |
84 CleanupStack::PopAndDestroy( &childParts ); |
91 return iChildPartCount; |
85 return iChildPartCount; |
92 } |
86 } |
93 |
87 |
94 // ----------------------------------------------------------------------------- |
88 // ----------------------------------------------------------------------------- |
95 // |
89 // |
96 // ----------------------------------------------------------------------------- |
90 // ----------------------------------------------------------------------------- |
97 // |
|
98 MEmailMessageContent* CEmailMultipart::PartByIndexL( const TUint aIndex ) const |
91 MEmailMessageContent* CEmailMultipart::PartByIndexL( const TUint aIndex ) const |
99 { |
92 { |
100 if (aIndex >= iChildPartCount) |
93 if ( aIndex >= iChildPartCount ) |
101 { |
94 { |
102 User::Leave( KErrArgument ); |
95 User::Leave( KErrArgument ); |
103 } |
96 } |
104 MEmailMessageContent* content = NULL; |
97 MEmailMessageContent* content = NULL; |
105 TFSMailMsgId partId = iChildParts[aIndex]; |
98 TFSMailMsgId partId = iChildParts[aIndex]; |
106 CFSMailMessagePart* copy = iEmailMsgContent->Part().ChildPartL( partId ); |
99 CFSMailMessagePart* copy = iEmailMsgContent->Part().ChildPartL( partId ); |
107 TContentType contentType( copy->GetContentType() ); |
100 if ( !copy ) |
|
101 return content; |
|
102 |
|
103 TContentType contentType( copy->GetContentType() ); |
108 TMessageContentId msgContentId = TMessageContentId( |
104 TMessageContentId msgContentId = TMessageContentId( |
109 copy->GetPartId().Id(), |
105 copy->GetPartId().Id(), |
110 Id().iMessageId.iId, |
106 Id().iMessageId.iId, |
111 Id().iMessageId.iFolderId.iId, |
107 Id().iMessageId.iFolderId.iId, |
112 Id().iMessageId.iFolderId.iMailboxId ); |
108 Id().iMessageId.iFolderId.iMailboxId ); |
113 |
109 |
114 if ( contentType.Equals( KFSMailContentTypeTextPlain ) || |
110 if ( contentType.Equals( KFSMailContentTypeTextPlain ) || |
115 contentType.Equals( KFSMailContentTypeTextHtml ) ) |
111 contentType.Equals( KFSMailContentTypeTextHtml ) ) |
116 { |
112 { |
117 content = CEmailTextContent::NewL( iEmailMsgContent->PluginData(), msgContentId, copy, EClientOwns ); |
113 content = CEmailTextContent::NewL( |
|
114 iEmailMsgContent->PluginData(), msgContentId, copy, EClientOwns ); |
118 } |
115 } |
119 else if ( contentType.Equals( KFSMailContentTypeMultipartMixed ) || |
116 else if ( contentType.Equals( KFSMailContentTypeMultipartMixed ) || |
120 contentType.Equals( KFSMailContentTypeMultipartAlternative ) || |
117 contentType.Equals( KFSMailContentTypeMultipartAlternative ) || |
121 contentType.Equals( KFSMailContentTypeMultipartDigest ) || |
118 contentType.Equals( KFSMailContentTypeMultipartDigest ) || |
122 contentType.Equals( KFSMailContentTypeMultipartRelated ) || |
119 contentType.Equals( KFSMailContentTypeMultipartRelated ) || |
123 contentType.Equals( KFSMailContentTypeMultipartParallel ) ) |
120 contentType.Equals( KFSMailContentTypeMultipartParallel ) ) |
124 { |
121 { |
125 content = CEmailMultipart::NewL( iEmailMsgContent->PluginData(), msgContentId, copy, EClientOwns ); |
122 content = CEmailMultipart::NewL( |
|
123 iEmailMsgContent->PluginData(), msgContentId, copy, EClientOwns ); |
126 } |
124 } |
127 else |
125 else |
128 { |
126 { |
129 content = CEmailAttachment::NewL( iEmailMsgContent->PluginData(), msgContentId, copy, EClientOwns ); |
127 content = CEmailAttachment::NewL( |
130 } |
128 iEmailMsgContent->PluginData(), msgContentId, copy, EClientOwns ); |
131 return content; |
129 } |
132 } |
130 return content; |
133 |
131 } |
134 // ----------------------------------------------------------------------------- |
132 |
135 // |
133 // ----------------------------------------------------------------------------- |
136 // ----------------------------------------------------------------------------- |
134 // |
137 // |
135 // ----------------------------------------------------------------------------- |
138 void CEmailMultipart::DeletePartL( const TUint aIndex ) |
136 void CEmailMultipart::DeletePartL( const TUint aIndex ) |
139 { |
137 { |
140 if (aIndex >= iChildPartCount) |
138 if ( aIndex >= iChildPartCount ) |
141 { |
139 { |
142 User::Leave( KErrArgument ); |
140 User::Leave( KErrArgument ); |
143 } |
141 } |
144 |
142 |
145 TFSMailMsgId partId = iChildParts[aIndex]; |
143 TFSMailMsgId partId = iChildParts[aIndex]; |
146 iEmailMsgContent->Part().RemoveChildPartL( partId ); |
144 iEmailMsgContent->Part().RemoveChildPartL( partId ); |
147 iChildParts.Remove( aIndex ); |
145 iChildParts.Remove( aIndex ); |
149 } |
147 } |
150 |
148 |
151 // ----------------------------------------------------------------------------- |
149 // ----------------------------------------------------------------------------- |
152 // |
150 // |
153 // ----------------------------------------------------------------------------- |
151 // ----------------------------------------------------------------------------- |
154 // |
|
155 void CEmailMultipart::AddPartL( |
152 void CEmailMultipart::AddPartL( |
156 const MEmailMessageContent& aPart, |
153 const MEmailMessageContent& aPart, |
157 const TUint aPos ) |
154 const TUint aPos ) |
158 { |
155 { |
159 if (aPos > iChildPartCount) |
156 if ( aPos > iChildPartCount ) |
160 { |
157 { |
161 User::Leave( KErrArgument ); |
158 User::Leave( KErrArgument ); |
162 } |
159 } |
163 |
160 |
164 TFSMailMsgId insertBefore = TFSMailMsgId(); |
161 TFSMailMsgId insertBefore = TFSMailMsgId(); |
165 if (aPos < iChildPartCount) |
162 if ( aPos < iChildPartCount ) |
166 { |
163 { |
167 insertBefore = iChildParts[aPos]; |
164 insertBefore = iChildParts[aPos]; |
168 } |
165 } |
169 const TDesC& contentType = aPart.ContentType(); |
166 const TDesC& contentType = aPart.ContentType(); |
170 |
167 |
171 CFSMailMessagePart* newPart = iEmailMsgContent->Part().NewChildPartL( insertBefore, contentType ); |
168 CFSMailMessagePart* newPart = |
|
169 iEmailMsgContent->Part().NewChildPartL( insertBefore, contentType ); |
172 CleanupStack::PushL( newPart ); |
170 CleanupStack::PushL( newPart ); |
173 TFSMailMsgId newPartId = newPart->GetPartId(); |
171 TFSMailMsgId newPartId = newPart->GetPartId(); |
174 iChildParts.InsertL( newPartId, aPos ); |
172 iChildParts.InsertL( newPartId, aPos ); |
175 iChildPartCount = iChildParts.Count(); |
173 iChildPartCount = iChildParts.Count(); |
176 CleanupStack::Pop(); |
174 CleanupStack::Pop( newPart ); |
177 |
175 |
178 |
176 |
179 |
177 |
180 return; |
178 return; |
181 } |
179 } |
182 |
180 |
183 // ----------------------------------------------------------------------------- |
181 // ----------------------------------------------------------------------------- |
184 // |
182 // |
185 // ----------------------------------------------------------------------------- |
183 // ----------------------------------------------------------------------------- |
186 // |
|
187 TEmailTypeId CEmailMultipart::InterfaceId() const |
184 TEmailTypeId CEmailMultipart::InterfaceId() const |
188 { |
185 { |
189 return KEmailIFUidMultipart; |
186 return KEmailIFUidMultipart; |
190 } |
187 } |
191 |
188 |
192 // ----------------------------------------------------------------------------- |
189 // ----------------------------------------------------------------------------- |
193 // |
190 // |
194 // ----------------------------------------------------------------------------- |
191 // ----------------------------------------------------------------------------- |
195 // |
|
196 void CEmailMultipart::Release() |
192 void CEmailMultipart::Release() |
197 { |
193 { |
198 if ( iOwner == EClientOwns ) |
194 if ( iOwner == EClientOwns ) |
199 { |
195 { |
200 delete this; |
196 delete this; |
201 } |
197 } |
202 } |
198 } |
203 |
199 |
204 // ----------------------------------------------------------------------------- |
200 // ----------------------------------------------------------------------------- |
205 // |
201 // |
206 // ----------------------------------------------------------------------------- |
202 // ----------------------------------------------------------------------------- |
207 // |
|
208 TMessageContentId CEmailMultipart::Id() const |
203 TMessageContentId CEmailMultipart::Id() const |
209 { |
204 { |
210 return iEmailMsgContent->Id(); |
205 return iEmailMsgContent->Id(); |
211 } |
206 } |
212 |
207 |
213 // ----------------------------------------------------------------------------- |
208 // ----------------------------------------------------------------------------- |
214 // |
209 // |
215 // ----------------------------------------------------------------------------- |
210 // ----------------------------------------------------------------------------- |
216 // |
|
217 TPtrC CEmailMultipart::ContentType() const |
211 TPtrC CEmailMultipart::ContentType() const |
218 { |
212 { |
219 return iEmailMsgContent->ContentType(); |
213 return iEmailMsgContent->ContentType(); |
220 } |
214 } |
221 |
215 |
222 // ----------------------------------------------------------------------------- |
216 // ----------------------------------------------------------------------------- |
223 // |
217 // |
224 // ----------------------------------------------------------------------------- |
218 // ----------------------------------------------------------------------------- |
225 // |
|
226 void CEmailMultipart::SetContentType( const TDesC& aContentType ) |
219 void CEmailMultipart::SetContentType( const TDesC& aContentType ) |
227 { |
220 { |
228 iEmailMsgContent->SetContentType( aContentType ); |
221 iEmailMsgContent->SetContentType( aContentType ); |
229 } |
222 } |
230 |
223 |
231 // ----------------------------------------------------------------------------- |
224 // ----------------------------------------------------------------------------- |
232 // |
225 // |
233 // ----------------------------------------------------------------------------- |
226 // ----------------------------------------------------------------------------- |
234 // |
|
235 TPtrC CEmailMultipart::ContentId() const |
227 TPtrC CEmailMultipart::ContentId() const |
236 { |
228 { |
237 return iEmailMsgContent->ContentId(); |
229 return iEmailMsgContent->ContentId(); |
238 } |
230 } |
239 |
231 |
240 // ----------------------------------------------------------------------------- |
232 // ----------------------------------------------------------------------------- |
241 // |
233 // |
242 // ----------------------------------------------------------------------------- |
234 // ----------------------------------------------------------------------------- |
243 // |
|
244 void CEmailMultipart::SetContentId( const TDesC& aContentId ) |
235 void CEmailMultipart::SetContentId( const TDesC& aContentId ) |
245 { |
236 { |
246 iEmailMsgContent->SetContentId(aContentId); |
237 iEmailMsgContent->SetContentId( aContentId ); |
247 } |
238 } |
248 |
239 |
249 // ----------------------------------------------------------------------------- |
240 // ----------------------------------------------------------------------------- |
250 // |
241 // |
251 // ----------------------------------------------------------------------------- |
242 // ----------------------------------------------------------------------------- |
252 // |
|
253 TPtrC CEmailMultipart::ContentDescription() const |
243 TPtrC CEmailMultipart::ContentDescription() const |
254 { |
244 { |
255 return iEmailMsgContent->ContentDescription(); |
245 return iEmailMsgContent->ContentDescription(); |
256 } |
246 } |
257 |
247 |
258 // ----------------------------------------------------------------------------- |
248 // ----------------------------------------------------------------------------- |
259 // |
249 // |
260 // ----------------------------------------------------------------------------- |
250 // ----------------------------------------------------------------------------- |
261 // |
|
262 void CEmailMultipart::SetContentDescription( const TDesC& aContentDescription ) |
251 void CEmailMultipart::SetContentDescription( const TDesC& aContentDescription ) |
263 { |
252 { |
264 iEmailMsgContent->SetContentDescription(aContentDescription); |
253 iEmailMsgContent->SetContentDescription( aContentDescription ); |
265 } |
254 } |
266 |
255 |
267 // ----------------------------------------------------------------------------- |
256 // ----------------------------------------------------------------------------- |
268 // |
257 // |
269 // ----------------------------------------------------------------------------- |
258 // ----------------------------------------------------------------------------- |
270 // |
|
271 TPtrC CEmailMultipart::ContentDisposition() const |
259 TPtrC CEmailMultipart::ContentDisposition() const |
272 { |
260 { |
273 return iEmailMsgContent->ContentDisposition(); |
261 return iEmailMsgContent->ContentDisposition(); |
274 } |
262 } |
275 |
263 |
276 // ----------------------------------------------------------------------------- |
264 // ----------------------------------------------------------------------------- |
277 // |
265 // |
278 // ----------------------------------------------------------------------------- |
266 // ----------------------------------------------------------------------------- |
279 // |
|
280 void CEmailMultipart::SetContentDisposition( const TDesC& aContentDisposition ) |
267 void CEmailMultipart::SetContentDisposition( const TDesC& aContentDisposition ) |
281 { |
268 { |
282 iEmailMsgContent->SetContentDisposition(aContentDisposition); |
269 iEmailMsgContent->SetContentDisposition( aContentDisposition ); |
283 } |
270 } |
284 |
271 |
285 // ----------------------------------------------------------------------------- |
272 // ----------------------------------------------------------------------------- |
286 // |
273 // |
287 // ----------------------------------------------------------------------------- |
274 // ----------------------------------------------------------------------------- |
288 // |
|
289 TPtrC CEmailMultipart::ContentClass() const |
275 TPtrC CEmailMultipart::ContentClass() const |
290 { |
276 { |
291 return iEmailMsgContent->ContentClass(); |
277 return iEmailMsgContent->ContentClass(); |
292 } |
278 } |
293 |
279 |
294 // ----------------------------------------------------------------------------- |
280 // ----------------------------------------------------------------------------- |
295 // |
281 // |
296 // ----------------------------------------------------------------------------- |
282 // ----------------------------------------------------------------------------- |
297 // |
|
298 void CEmailMultipart::SetContentClass( const TDesC& aContentClass ) |
283 void CEmailMultipart::SetContentClass( const TDesC& aContentClass ) |
299 { |
284 { |
300 iEmailMsgContent->SetContentClass(aContentClass); |
285 iEmailMsgContent->SetContentClass( aContentClass ); |
301 } |
286 } |
302 |
287 |
303 // ----------------------------------------------------------------------------- |
288 // ----------------------------------------------------------------------------- |
304 // |
289 // |
305 // ----------------------------------------------------------------------------- |
290 // ----------------------------------------------------------------------------- |
306 // |
|
307 TInt CEmailMultipart::AvailableSize() const |
291 TInt CEmailMultipart::AvailableSize() const |
308 { |
292 { |
309 return iEmailMsgContent->AvailableSize(); |
293 return iEmailMsgContent->AvailableSize(); |
310 } |
294 } |
311 |
295 |
312 // ----------------------------------------------------------------------------- |
296 // ----------------------------------------------------------------------------- |
313 // |
297 // |
314 // ----------------------------------------------------------------------------- |
298 // ----------------------------------------------------------------------------- |
315 // |
|
316 TInt CEmailMultipart::TotalSize() const |
299 TInt CEmailMultipart::TotalSize() const |
317 { |
300 { |
318 return iEmailMsgContent->TotalSize(); |
301 return iEmailMsgContent->TotalSize(); |
319 } |
302 } |
320 |
303 |
321 // ----------------------------------------------------------------------------- |
304 // ----------------------------------------------------------------------------- |
322 // |
305 // |
323 // ----------------------------------------------------------------------------- |
306 // ----------------------------------------------------------------------------- |
324 // |
|
325 TPtrC CEmailMultipart::ContentL() const |
307 TPtrC CEmailMultipart::ContentL() const |
326 { |
308 { |
327 User::Leave(KErrNotSupported); |
309 User::Leave(KErrNotSupported); |
328 return iEmailMsgContent->ContentL(); |
310 return iEmailMsgContent->ContentL(); |
329 } |
311 } |
330 |
312 |
331 // ----------------------------------------------------------------------------- |
313 // ----------------------------------------------------------------------------- |
332 // |
314 // |
333 // ----------------------------------------------------------------------------- |
315 // ----------------------------------------------------------------------------- |
334 // |
|
335 void CEmailMultipart::SetContentL( const TDesC& aContent ) |
316 void CEmailMultipart::SetContentL( const TDesC& aContent ) |
336 { |
317 { |
337 iEmailMsgContent->SetContentL( aContent ); |
318 iEmailMsgContent->SetContentL( aContent ); |
338 } |
319 } |
339 |
320 |
340 // ----------------------------------------------------------------------------- |
321 // ----------------------------------------------------------------------------- |
341 // |
322 // |
342 // ----------------------------------------------------------------------------- |
323 // ----------------------------------------------------------------------------- |
343 // |
|
344 void CEmailMultipart::FetchL( MEmailFetchObserver& aObserver ) |
324 void CEmailMultipart::FetchL( MEmailFetchObserver& aObserver ) |
345 { |
325 { |
346 iEmailMsgContent->FetchL(aObserver); |
326 iEmailMsgContent->FetchL( aObserver ); |
347 } |
327 } |
348 |
328 |
349 // ----------------------------------------------------------------------------- |
329 // ----------------------------------------------------------------------------- |
350 // |
330 // |
351 // ----------------------------------------------------------------------------- |
331 // ----------------------------------------------------------------------------- |
352 // |
|
353 void CEmailMultipart::CancelFetch() |
332 void CEmailMultipart::CancelFetch() |
354 { |
333 { |
355 iEmailMsgContent->CancelFetch(); |
334 iEmailMsgContent->CancelFetch(); |
356 } |
335 } |
357 |
336 |
358 // ----------------------------------------------------------------------------- |
337 // ----------------------------------------------------------------------------- |
359 // |
338 // |
360 // ----------------------------------------------------------------------------- |
339 // ----------------------------------------------------------------------------- |
361 // |
|
362 void CEmailMultipart::SaveToFileL( const TDesC& aPath ) |
340 void CEmailMultipart::SaveToFileL( const TDesC& aPath ) |
363 { |
341 { |
364 iEmailMsgContent->SaveToFileL(aPath); |
342 iEmailMsgContent->SaveToFileL( aPath ); |
365 } |
343 } |
366 |
344 |
367 // ----------------------------------------------------------------------------- |
345 // ----------------------------------------------------------------------------- |
368 // |
346 // |
369 // ----------------------------------------------------------------------------- |
347 // ----------------------------------------------------------------------------- |
370 // |
|
371 MEmailMultipart* CEmailMultipart::AsMultipartOrNull() const |
348 MEmailMultipart* CEmailMultipart::AsMultipartOrNull() const |
372 { |
349 { |
373 const MEmailMultipart* ptr = this; |
350 const MEmailMultipart* ptr = this; |
374 return const_cast<MEmailMultipart*>(ptr); |
351 return const_cast<MEmailMultipart*>( ptr ); |
375 } |
352 } |
376 |
353 |
377 // ----------------------------------------------------------------------------- |
354 // ----------------------------------------------------------------------------- |
378 // |
355 // |
379 // ----------------------------------------------------------------------------- |
356 // ----------------------------------------------------------------------------- |
380 // |
|
381 MEmailTextContent* CEmailMultipart::AsTextContentOrNull() const |
357 MEmailTextContent* CEmailMultipart::AsTextContentOrNull() const |
382 { |
358 { |
383 return NULL; |
359 return NULL; |
384 } |
360 } |
385 |
361 |
386 // ----------------------------------------------------------------------------- |
362 // ----------------------------------------------------------------------------- |
387 // |
363 // |
388 // ----------------------------------------------------------------------------- |
364 // ----------------------------------------------------------------------------- |
389 // |
|
390 MEmailAttachment* CEmailMultipart::AsAttachmentOrNull() const |
365 MEmailAttachment* CEmailMultipart::AsAttachmentOrNull() const |
391 { |
366 { |
392 return NULL; |
367 return NULL; |
393 } |
368 } |
394 |
369 |
395 // ----------------------------------------------------------------------------- |
370 // ----------------------------------------------------------------------------- |
396 // |
371 // |
397 // ----------------------------------------------------------------------------- |
372 // ----------------------------------------------------------------------------- |
398 // |
|
399 void CEmailMultipart::SetOwner( const TDataOwner aOwner ) |
373 void CEmailMultipart::SetOwner( const TDataOwner aOwner ) |
400 { |
374 { |
401 iOwner = aOwner; |
375 iOwner = aOwner; |
402 } |
376 } |
|
377 |
|
378 // End of file |