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 |