contentstorage/casrv/cawidgetscanner/src/cawidgetstoragehandler.cpp
changeset 125 26079c1bb561
parent 119 50e220be30d1
equal deleted inserted replaced
123:d1dadafc5584 125:26079c1bb561
   101 void CCaWidgetStorageHandler::SynchronizeL()
   101 void CCaWidgetStorageHandler::SynchronizeL()
   102     {
   102     {
   103     FetchWidgetsL();
   103     FetchWidgetsL();
   104     AddWidgetsL( iParser->WidgetsScanL( iWidgetDBCache ) );
   104     AddWidgetsL( iParser->WidgetsScanL( iWidgetDBCache ) );
   105     RemoveWidgetsL();
   105     RemoveWidgetsL();
       
   106     MakeNotEmptyCollectionsVisibleL();
   106     }
   107     }
   107 
   108 
   108 // ----------------------------------------------------------------------------
   109 // ----------------------------------------------------------------------------
   109 //
   110 //
   110 // ----------------------------------------------------------------------------
   111 // ----------------------------------------------------------------------------
   366     }
   367     }
   367 // ----------------------------------------------------------------------------
   368 // ----------------------------------------------------------------------------
   368 //
   369 //
   369 // ----------------------------------------------------------------------------
   370 // ----------------------------------------------------------------------------
   370 //
   371 //
   371 
       
   372 void CCaWidgetStorageHandler::SetLocalizationsL(
   372 void CCaWidgetStorageHandler::SetLocalizationsL(
   373         const CCaWidgetDescription* aWidget, TInt aEntryId )
   373         const CCaWidgetDescription* aWidget, TInt aEntryId )
   374     {
   374     {
   375     RBuf filename;
   375     RBuf filename;
   376     filename.CreateL( aWidget->GetTranslationFileName().Length() + 1 ); //1 for _
   376     filename.CreateL( aWidget->GetTranslationFileName().Length() + 1 ); //1 for _
   413 
   413 
   414 // ----------------------------------------------------------------------------
   414 // ----------------------------------------------------------------------------
   415 //
   415 //
   416 // ----------------------------------------------------------------------------
   416 // ----------------------------------------------------------------------------
   417 //
   417 //
   418 
       
   419 void CCaWidgetStorageHandler::UpdateCompIdAndRemovableFlagL(
   418 void CCaWidgetStorageHandler::UpdateCompIdAndRemovableFlagL(
   420         const TDesC& aManifestFilePathName, CCaInnerEntry& aEntry ) const
   419         const TDesC& aManifestFilePathName, CCaInnerEntry& aEntry ) const
   421     {
   420     {
   422     RArray<TComponentId> componentIds;
   421     RArray<TComponentId> componentIds;
   423     CleanupClosePushL( componentIds );
   422     CleanupClosePushL( componentIds );
   460         }
   459         }
   461 
   460 
   462     CleanupStack::PopAndDestroy( &componentIds );
   461     CleanupStack::PopAndDestroy( &componentIds );
   463     }
   462     }
   464 
   463 
       
   464 // ---------------------------------------------------------
       
   465 //
       
   466 // ---------------------------------------------------------
       
   467 //
       
   468 void CCaWidgetStorageHandler::MakeNotEmptyCollectionsVisibleL()
       
   469     {
       
   470     RPointerArray<CCaInnerEntry> resultArray;
       
   471     CleanupResetAndDestroyPushL( resultArray );
       
   472     CCaInnerQuery* hiddenCollectionsQuery = CCaInnerQuery::NewLC();
       
   473     CDesC16ArrayFlat* entryType = new ( ELeave ) CDesC16ArrayFlat(
       
   474             KGranularityOne );
       
   475     CleanupStack::PushL( entryType );
       
   476     entryType->AppendL( KCaTypeCollection );
       
   477     hiddenCollectionsQuery->SetEntryTypeNames( entryType );
       
   478     hiddenCollectionsQuery->SetFlagsOff( EVisible );
       
   479     iStorage->GetEntriesL( hiddenCollectionsQuery, resultArray );
       
   480     CleanupStack::Pop( entryType );
       
   481     CleanupStack::PopAndDestroy( hiddenCollectionsQuery );
       
   482     if( resultArray.Count()>0 )
       
   483         {
       
   484         for( TInt i=0; i<resultArray.Count(); i++ )
       
   485             {
       
   486             // for any not visible collection
       
   487             MakeCollectionVisibleIfHasVisibleEntryL( resultArray[i] );
       
   488             }
       
   489         }
       
   490     CleanupStack::PopAndDestroy( &resultArray );
       
   491    }
       
   492 
       
   493 // ---------------------------------------------------------
       
   494 //
       
   495 // ---------------------------------------------------------
       
   496 //
       
   497 void CCaWidgetStorageHandler::MakeCollectionVisibleIfHasVisibleEntryL(
       
   498         CCaInnerEntry* aEntry )
       
   499     {
       
   500     RPointerArray<CCaInnerEntry> resultEntriesArray;
       
   501     CleanupResetAndDestroyPushL( resultEntriesArray );
       
   502     CCaInnerQuery* visibleEntriesQuery = CCaInnerQuery::NewLC();
       
   503     visibleEntriesQuery->SetParentId( aEntry->GetId() );
       
   504     visibleEntriesQuery->SetFlagsOn( EVisible );
       
   505     visibleEntriesQuery->SetFlagsOff( EMissing );
       
   506     iStorage->GetEntriesL( visibleEntriesQuery, resultEntriesArray );
       
   507     if( resultEntriesArray.Count()>0 )
       
   508         {
       
   509         // set collection visible if hidden
       
   510         if( !( aEntry->GetFlags() & EVisible ) )
       
   511             {
       
   512             aEntry->SetFlags( aEntry->GetFlags() | EVisible );
       
   513             // update here this collection
       
   514             iStorage->AddL( aEntry );
       
   515             }
       
   516         }
       
   517     CleanupStack::PopAndDestroy( visibleEntriesQuery );
       
   518     CleanupStack::PopAndDestroy( &resultEntriesArray );
       
   519     }
       
   520 
   465 //  End of File
   521 //  End of File