contentstorage/casrv/cawidgetscanner/src/cawidgetstoragehandler.cpp
changeset 87 9d806967057c
parent 85 7feec50967db
child 88 7f0462e8c3da
--- a/contentstorage/casrv/cawidgetscanner/src/cawidgetstoragehandler.cpp	Tue Mar 23 23:28:12 2010 +0200
+++ b/contentstorage/casrv/cawidgetscanner/src/cawidgetstoragehandler.cpp	Tue Mar 23 23:42:03 2010 +0200
@@ -122,10 +122,14 @@
     {
     CCaInnerEntry* entry = aWidget->GetEntryLC();
     entry->SetId( aEntryId );
-    if( !aWidget->IsMissing() )
+    if( !aWidget->IsMissing() && ( aWidget->GetLibrary() != KNoLibrary ) )
         {
         entry->SetFlags( entry->GetFlags() & ~EUsed );
         }
+    else if(aWidget->IsUsed())
+        {
+        entry->SetFlags( entry->GetFlags() | EUsed );
+        }
     entry->SetFlags( entry->GetFlags() & ~EMissing );
     iStorage->AddL( entry );
     if( !aWidget->IsMissing() )
@@ -152,6 +156,7 @@
                     iWidgets[index]->IsMissing() )
                 {
                 aWidgets[i]->SetMissing( iWidgets[index]->IsMissing() );
+                aWidgets[i]->SetUsed( iWidgets[index]->IsUsed() );
                 UpdateL( aWidgets[i], iWidgets[index]->GetEntryId() );
                 }
             iUpdatedIndexes.AppendL( index );
@@ -267,6 +272,10 @@
     {
     CCaInnerEntry* entry = aWidget->GetEntryLC();
     entry->SetFlags( entry->GetFlags() | EMissing );
+    if(aWidget->IsUsed())
+        {
+        entry->SetFlags( entry->GetFlags() | EUsed );
+        }
     iStorage->AddL( entry );
     CleanupStack::PopAndDestroy( entry );
     }