webengine/widgetengine/src/Preferences.cpp
branchRCL_3
changeset 44 800203832575
parent 26 cb62a4f66ebe
child 48 79859ed3eea9
equal deleted inserted replaced
42:a1a5d4e727e8 44:800203832575
    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 //