equal
deleted
inserted
replaced
43 |
43 |
44 #define KMCSCmailMtmUidValue 0x2001F406 |
44 #define KMCSCmailMtmUidValue 0x2001F406 |
45 |
45 |
46 // ======== LOCAL FUNCTIONS ======== |
46 // ======== LOCAL FUNCTIONS ======== |
47 |
47 |
48 static void ItemMapArrayCleanupFunc( TAny* aPointerArray ) |
48 // ---------------------------------------------------------------------------- |
49 { |
49 // CleanupResetAndDestroy() |
50 RPointerArray<CItemMap>* p = static_cast<RPointerArray<CItemMap>*>( aPointerArray ); |
50 // ---------------------------------------------------------------------------- |
51 p->ResetAndDestroy(); |
51 // |
52 p->Close(); |
52 template<class T> |
|
53 static void CleanupResetAndDestroy( TAny* aObj ) |
|
54 { |
|
55 if( aObj ) |
|
56 { |
|
57 static_cast<T*>( aObj )->ResetAndDestroy(); |
|
58 } |
|
59 } |
|
60 |
|
61 // ---------------------------------------------------------------------------- |
|
62 // CleanupResetAndDestroyPushL |
|
63 // ---------------------------------------------------------------------------- |
|
64 // |
|
65 template<class T> |
|
66 static void CleanupResetAndDestroyPushL(T& aArray) |
|
67 { |
|
68 CleanupStack::PushL( TCleanupItem( &CleanupResetAndDestroy<T>, &aArray ) ); |
53 } |
69 } |
54 |
70 |
55 // ======== MEMBER FUNCTIONS ======== |
71 // ======== MEMBER FUNCTIONS ======== |
56 |
72 |
57 // --------------------------------------------------------------------------- |
73 // --------------------------------------------------------------------------- |
209 // --------------------------------------------------------------------------- |
225 // --------------------------------------------------------------------------- |
210 // |
226 // |
211 void CMCSPluginData::UpdateDataL() |
227 void CMCSPluginData::UpdateDataL() |
212 { |
228 { |
213 RPointerArray<CItemMap> settings; |
229 RPointerArray<CItemMap> settings; |
214 TCleanupItem settingsCleanupItem( ItemMapArrayCleanupFunc, &settings ); |
230 CleanupResetAndDestroyPushL( settings ); |
215 CleanupStack::PushL( settingsCleanupItem ); |
231 |
216 iPluginSettings->GetSettingsL( iInstanceUid, settings ); |
232 iPluginSettings->GetSettingsL( iInstanceUid, settings ); |
217 TInt count = settings.Count(); |
233 TInt count = settings.Count(); |
218 TBool wasEmpty = !iData.Count(); |
234 TBool wasEmpty = !iData.Count(); |
219 |
235 |
220 for ( TInt i = 0; i < count; i++ ) |
236 for ( TInt i = 0; i < count; i++ ) |
247 delete oldData; |
263 delete oldData; |
248 iData.InsertL( data, i ); |
264 iData.InsertL( data, i ); |
249 } |
265 } |
250 } |
266 } |
251 } |
267 } |
252 CleanupStack::PopAndDestroy(); // settingsCleanupItem |
268 |
|
269 // Cleanup. |
|
270 CleanupStack::PopAndDestroy(); // settings |
253 } |
271 } |
254 |
272 |
255 // --------------------------------------------------------------------------- |
273 // --------------------------------------------------------------------------- |
256 // Removes obsolete data and saves 'Undefined' item to HSPS |
274 // Removes obsolete data and saves 'Undefined' item to HSPS |
257 // Used when active mailbox is deleted from system. |
275 // Used when active mailbox is deleted from system. |
469 // --------------------------------------------------------------------------- |
487 // --------------------------------------------------------------------------- |
470 // |
488 // |
471 void CMCSPluginData::SaveUndefinedItemL( const TInt& aIndex ) |
489 void CMCSPluginData::SaveUndefinedItemL( const TInt& aIndex ) |
472 { |
490 { |
473 RPointerArray<CItemMap> settingItems; |
491 RPointerArray<CItemMap> settingItems; |
474 CleanupClosePushL( settingItems ); |
492 CleanupResetAndDestroyPushL( settingItems ); |
|
493 |
475 iPluginSettings->GetSettingsL( iInstanceUid, settingItems ); |
494 iPluginSettings->GetSettingsL( iInstanceUid, settingItems ); |
476 if ( aIndex >= 0 && aIndex < settingItems.Count() ) |
495 if ( aIndex >= 0 && aIndex < settingItems.Count() ) |
477 { |
496 { |
478 CItemMap* itemMap = settingItems[ aIndex ]; |
497 CItemMap* itemMap = settingItems[ aIndex ]; |
479 RPointerArray<HSPluginSettingsIf::CPropertyMap> properties; |
498 RPointerArray<HSPluginSettingsIf::CPropertyMap> properties; |
502 } |
521 } |
503 } |
522 } |
504 } |
523 } |
505 // ETrue tells that modified settings are stored also to plugin reference |
524 // ETrue tells that modified settings are stored also to plugin reference |
506 iPluginSettings->SetSettingsL( iInstanceUid, settingItems, ETrue ); |
525 iPluginSettings->SetSettingsL( iInstanceUid, settingItems, ETrue ); |
507 CleanupStack::Pop( &settingItems ); |
526 CleanupStack::PopAndDestroy(); // settingItems |
508 settingItems.ResetAndDestroy(); |
|
509 |
|
510 } |
527 } |
511 |
528 |
512 // End of file |
529 // End of file |