equal
deleted
inserted
replaced
47 WidgetPreferences::WidgetPreferences() :m_widgetid(0), |
47 WidgetPreferences::WidgetPreferences() :m_widgetid(0), |
48 m_widgetbundleid(0), |
48 m_widgetbundleid(0), |
49 m_basepath(0), |
49 m_basepath(0), |
50 m_filepath(0) |
50 m_filepath(0) |
51 { |
51 { |
52 m_preferences = new RPtrHashMap<TDesC,PrefElement>(); |
52 m_preferences = new RPtrHashMap<TDesC,PrefElement>(); |
|
53 m_asynsave = new (ELeave) CAsyncCallBack(TCallBack(SavePref,this),CActive::EPriorityIdle); |
53 } |
54 } |
54 |
55 |
55 // ---------------------------------------------------------------------------- |
56 // ---------------------------------------------------------------------------- |
56 // WidgetPreferences::~WidgetPreferences |
57 // WidgetPreferences::~WidgetPreferences |
57 // Destructor |
58 // Destructor |
58 // |
59 // |
59 // |
60 // |
60 // ---------------------------------------------------------------------------- |
61 // ---------------------------------------------------------------------------- |
61 WidgetPreferences::~WidgetPreferences() |
62 WidgetPreferences::~WidgetPreferences() |
62 { |
63 { |
63 //TRAP_IGNORE( saveL() ); |
64 if(m_asynsave && m_asynsave->IsActive()) |
|
65 { |
|
66 m_asynsave->Cancel(); |
|
67 TRAPD(err, saveL()); |
|
68 if(err!= KErrNone) |
|
69 { |
|
70 deleteAllPrefFiles(); |
|
71 } |
|
72 } |
|
73 delete m_asynsave; |
|
74 m_asynsave = NULL; |
|
75 |
64 if (m_preferences) { |
76 if (m_preferences) { |
65 m_preferences->ResetAndDestroy(); |
77 m_preferences->ResetAndDestroy(); |
66 m_preferences->Close(); |
78 m_preferences->Close(); |
67 delete m_preferences; |
79 delete m_preferences; |
68 } |
80 } |
263 delete prefExisting; |
275 delete prefExisting; |
264 } |
276 } |
265 |
277 |
266 CleanupStack::Pop(); // k |
278 CleanupStack::Pop(); // k |
267 |
279 |
268 // Save update to persistent storage |
280 // Save update to persistent storage |
269 TRAPD(err, saveL()); |
281 m_asynsave->Cancel(); |
270 if(err!= KErrNone) |
282 m_asynsave->CallBack(); |
271 { |
283 } |
272 deleteAllPrefFiles(); |
|
273 } |
|
274 } |
|
275 |
|
276 } |
284 } |
277 |
285 |
278 // ---------------------------------------------------------------------------- |
286 // ---------------------------------------------------------------------------- |
279 // WidgetPreferences::removePreferenceL |
287 // WidgetPreferences::removePreferenceL |
280 // remove Preference for a key |
288 // remove Preference for a key |
542 // Read the data from the stream |
550 // Read the data from the stream |
543 internalizeL(readStream); |
551 internalizeL(readStream); |
544 |
552 |
545 CleanupStack::PopAndDestroy(3); // readStream, filePath, fs |
553 CleanupStack::PopAndDestroy(3); // readStream, filePath, fs |
546 } |
554 } |
|
555 |
|
556 // ---------------------------------------------------------------------------- |
|
557 // WidgetPreferences::SavePref |
|
558 // Save preferences for persistent storage |
|
559 // |
|
560 // |
|
561 // |
|
562 TInt WidgetPreferences::SavePref(TAny* aPtr) |
|
563 { |
|
564 WidgetPreferences* self = (WidgetPreferences*)aPtr; |
|
565 TRAPD(err, self->saveL()); |
|
566 if(err!= KErrNone) |
|
567 { |
|
568 self->deleteAllPrefFiles(); |
|
569 } |
|
570 return 0; |
|
571 } |
547 |
572 |
548 // ---------------------------------------------------------------------------- |
573 // ---------------------------------------------------------------------------- |
549 // PrefElement::PrefElement |
574 // PrefElement::PrefElement |
550 // C++ constructor |
575 // C++ constructor |
551 // |
576 // |