92 // --------------------------------------------------------- |
92 // --------------------------------------------------------- |
93 // |
93 // |
94 CMenuSrvEng::~CMenuSrvEng() |
94 CMenuSrvEng::~CMenuSrvEng() |
95 { |
95 { |
96 __ASSERT_DEBUG( !iSessions.Count(), User::Invariant() ); |
96 __ASSERT_DEBUG( !iSessions.Count(), User::Invariant() ); |
|
97 //TODO iCMenuSrvEngUtils |
97 delete iGetlistHandler; |
98 delete iGetlistHandler; |
98 delete iDrmHander; |
99 delete iDrmHander; |
99 delete iChildrenHandler; |
100 delete iChildrenHandler; |
100 delete iTimedClose; |
101 delete iTimedClose; |
|
102 delete iCacheHandler; |
101 delete iCMenuSrvEngUtils; |
103 delete iCMenuSrvEngUtils; |
102 iSessions.Close(); |
104 iSessions.Close(); |
103 iContentName.Close(); |
105 iContentName.Close(); |
104 delete iAppScanner; |
106 delete iAppScanner; |
105 delete iFolderNotifier; |
107 delete iFolderNotifier; |
106 delete iMcsSatMonitor; |
108 delete iMcsSatMonitor; |
107 delete iRunningAppsHandler; |
109 delete iRunningAppsHandler; |
108 delete iCacheHandler; |
|
109 delete iSuiteHandler; |
110 delete iSuiteHandler; |
110 delete iEng; |
111 delete iEng; |
111 iMenuSrv.EngineDeleted(); |
112 iMenuSrv.EngineDeleted(); |
112 } |
113 } |
113 |
114 |
128 if ( !aContentName.Length() ) |
129 if ( !aContentName.Length() ) |
129 { |
130 { |
130 // A name is required - only dead engines have empty name. |
131 // A name is required - only dead engines have empty name. |
131 User::Leave( KErrArgument ); |
132 User::Leave( KErrArgument ); |
132 } |
133 } |
133 |
134 |
134 iContentName.CreateL( aContentName ); |
135 iContentName.CreateL( aContentName ); |
135 iTimedClose = CTimeout::NewL |
136 iTimedClose = CTimeout::NewL |
136 ( CActive::EPriorityStandard, TCallBack( CloseSrvEng, (TAny*)this ) ); |
137 ( CActive::EPriorityStandard, TCallBack( CloseSrvEng, (TAny*)this ) ); |
137 iEng = CMenuEng::NewL( iContentName, *this ); |
138 iEng = CMenuEng::NewL( iContentName, *this ); |
138 if (iContentName.Length()) |
139 if ( iContentName.Length() ) |
139 { |
140 { |
|
141 iCMenuSrvEngUtils = CMenuSrvEngUtils::NewL( *iEng ); |
|
142 |
140 iCacheHandler = CMcsCacheHandler::NewL( *iEng, *iCMenuSrvEngUtils ); |
143 iCacheHandler = CMcsCacheHandler::NewL( *iEng, *iCMenuSrvEngUtils ); |
141 |
144 |
142 iMcsSatMonitor = CMcsSatMonitor::NewL( *iEng ); |
145 iMcsSatMonitor = CMcsSatMonitor::NewL( *iEng ); |
143 |
|
144 iCMenuSrvEngUtils = CMenuSrvEngUtils::NewL( *iEng ); |
|
145 #ifndef __TEST_DISABLE_APPSCAN |
146 #ifndef __TEST_DISABLE_APPSCAN |
146 iAppScanner = CMenuSrvAppScanner::NewL( *iEng ); // Start automatic update. |
147 // Start automatic update. |
147 iFolderNotifier = CMenuSrvFolderCrNotifier::NewL( *iEng ); // Start automatic update. |
148 iAppScanner = CMenuSrvAppScanner::NewL( *iEng, *iCMenuSrvEngUtils ); |
|
149 // Start automatic update. |
|
150 iFolderNotifier = CMenuSrvFolderCrNotifier::NewL( *iEng ); |
148 #endif |
151 #endif |
149 |
152 iRunningAppsHandler = CMcsRunningAppsHandler::NewL( |
150 iRunningAppsHandler = CMcsRunningAppsHandler::NewL( *iEng, |
153 *iEng, *iCacheHandler ); |
151 *iCacheHandler ); |
154 |
152 |
155 iDrmHander = CMcsDrmHandler::NewL( |
153 iDrmHander = CMcsDrmHandler::NewL( |
156 *this, *iCMenuSrvEngUtils, *iCacheHandler ); |
154 *this, |
157 |
155 *iCMenuSrvEngUtils, |
158 iChildrenHandler = CMcsChildrenHandler::NewL( *this, *iCacheHandler); |
156 *iCacheHandler ); |
|
157 iChildrenHandler = CMcsChildrenHandler::NewL( |
|
158 *this, |
|
159 *iCacheHandler); |
|
160 iSuiteHandler = CMcsSuiteHandler::NewL(*iEng, iContentName); |
159 iSuiteHandler = CMcsSuiteHandler::NewL(*iEng, iContentName); |
161 |
160 |
162 iTimedClose->Cancel(); |
161 iTimedClose->Cancel(); |
163 iTimedClose->After( TTimeIntervalMicroSeconds32( KMenuSrvExitDelay ) ); |
162 iTimedClose->After( TTimeIntervalMicroSeconds32( KMenuSrvExitDelay ) ); |
164 } |
163 } |
165 } |
164 } |
166 |
165 |
221 // expect any session to remove itself during this. |
220 // expect any session to remove itself during this. |
222 for ( TInt i = 0; i < iSessions.Count(); i++ ) |
221 for ( TInt i = 0; i < iSessions.Count(); i++ ) |
223 { |
222 { |
224 iSessions[i]->EngineEvents( aFolder, aEvents ); |
223 iSessions[i]->EngineEvents( aFolder, aEvents ); |
225 } |
224 } |
226 if (iDrmHander) |
225 if (iDrmHander) |
227 { |
226 { |
228 iDrmHander->EngineEvents( aFolder, aEvents ); |
227 iDrmHander->EngineEvents( aFolder, aEvents ); |
229 } |
228 } |
230 if (iChildrenHandler) |
229 if (iChildrenHandler) |
231 { |
230 { |
232 iChildrenHandler->EngineEvents( aFolder, aEvents ); |
231 iChildrenHandler->EngineEvents( aFolder, aEvents ); |
233 } |
232 } |
234 if (iRunningAppsHandler) |
233 if (iRunningAppsHandler) |
235 { |
234 { |
236 iRunningAppsHandler->EngineEvents( aFolder, aEvents ); |
235 iRunningAppsHandler->EngineEvents( aFolder, aEvents ); |
237 } |
236 } |
238 if( iCacheHandler && iCacheHandler->iAttrCache.Count() > 0 ) |
237 if( iCacheHandler && iCacheHandler->iAttrCache.Count() > 0 ) |
239 { |
238 { |
240 iCacheHandler->EngineEvents( aEvents ); |
239 iCacheHandler->EngineEvents( aEvents ); |
241 } |
240 } |
242 } |
241 } |
266 delete iRunningAppsHandler; iRunningAppsHandler = NULL; |
265 delete iRunningAppsHandler; iRunningAppsHandler = NULL; |
267 delete iAppScanner; iAppScanner = NULL; |
266 delete iAppScanner; iAppScanner = NULL; |
268 delete iFolderNotifier; iFolderNotifier = NULL; |
267 delete iFolderNotifier; iFolderNotifier = NULL; |
269 delete iSuiteHandler; iSuiteHandler = NULL; |
268 delete iSuiteHandler; iSuiteHandler = NULL; |
270 delete iEng; iEng = NULL; |
269 delete iEng; iEng = NULL; |
271 |
270 |
272 iContentName.Close(); |
271 iContentName.Close(); |
273 iTimedClose->Cancel(); |
272 iTimedClose->Cancel(); |
274 iTimedClose->After( TTimeIntervalMicroSeconds32( KMenuSrvExitDelay ) ); |
273 iTimedClose->After( TTimeIntervalMicroSeconds32( KMenuSrvExitDelay ) ); |
275 } |
274 } |
276 |
275 |
340 } |
339 } |
341 |
340 |
342 // --------------------------------------------------------- |
341 // --------------------------------------------------------- |
343 // CMenuSrvEng::InstalledSuiteExist |
342 // CMenuSrvEng::InstalledSuiteExist |
344 // --------------------------------------------------------- |
343 // --------------------------------------------------------- |
345 // |
344 // |
346 TBool CMenuSrvEng::InstalledSuiteExist(const TDesC& aSuiteName) |
345 TBool CMenuSrvEng::InstalledSuiteExist(const TDesC& aSuiteName) |
347 { |
346 { |
348 return iSuiteHandler->HaveSuite(aSuiteName); |
347 return iSuiteHandler->HaveSuite(aSuiteName); |
349 } |
348 } |
350 |
349 |
351 // --------------------------------------------------------- |
350 // --------------------------------------------------------- |
352 // CMenuSrvEng::GetSuiteAttributeL |
351 // CMenuSrvEng::GetSuiteAttributeL |
353 // --------------------------------------------------------- |
352 // --------------------------------------------------------- |
354 // |
353 // |
355 void CMenuSrvEng::GetSuiteAttribute( const TDesC& aSuiteName, const TDesC& aAttrName, |
354 void CMenuSrvEng::GetSuiteAttribute( const TDesC& aSuiteName, const TDesC& aAttrName, |
356 TBool& aAttrExists, TDes& aAttrVal ) |
355 TBool& aAttrExists, TDes& aAttrVal ) |
357 { |
356 { |
358 iSuiteHandler->GetAttribute(aSuiteName, aAttrName, |
357 iSuiteHandler->GetAttribute(aSuiteName, aAttrName, |
359 aAttrExists, aAttrVal); |
358 aAttrExists, aAttrVal); |
360 } |
359 } |
361 |
360 |
362 // --------------------------------------------------------- |
361 // --------------------------------------------------------- |
363 // CMenuSrvEng::GetRunningAppsL() |
362 // CMenuSrvEng::GetRunningAppsL() |
364 // --------------------------------------------------------- |
363 // --------------------------------------------------------- |
365 // |
364 // |
366 void CMenuSrvEng::GetRunningAppsL( RArray<TUid>& aArray ) |
365 void CMenuSrvEng::GetRunningAppsL( RArray<TUid>& aArray ) |
367 { |
366 { |
368 iRunningAppsHandler->GetRunningAppsL( aArray ); |
367 iRunningAppsHandler->GetRunningAppsL( aArray ); |
369 } |
368 } |
370 |
369 |
371 // --------------------------------------------------------- |
370 // --------------------------------------------------------- |
372 // CMenuSrvEng::GetRunningAppsL() |
371 // CMenuSrvEng::GetRunningAppsL() |
373 // --------------------------------------------------------- |
372 // --------------------------------------------------------- |
374 // |
373 // |
375 void CMenuSrvEng::GetExtendedAttributesL(TInt aId, |
374 void CMenuSrvEng::GetExtendedAttributesL(TInt aId, |
376 const TDesC& aAttrName, TBool& aAttrExists, |
375 const TDesC& aAttrName, TBool& aAttrExists, |
377 TDes& aAttrVal ) |
376 TDes& aAttrVal ) |
378 { |
377 { |
379 TBool captionInfo(aAttrName.Compare( KMenuAttrShortName ) == KErrNone || |
378 TBool captionInfo(aAttrName.Compare( KMenuAttrShortName ) == KErrNone || |
380 aAttrName.Compare( KMenuAttrLongName ) == KErrNone || |
379 aAttrName.Compare( KMenuAttrLongName ) == KErrNone || |
381 aAttrName.Compare( KMenuAttrTitleName ) == KErrNone ); |
380 aAttrName.Compare( KMenuAttrTitleName ) == KErrNone ); |
382 |
381 |
383 TBool addToCache( ETrue ); |
382 TBool addToCache( ETrue ); |
384 if ( captionInfo ) |
383 if ( captionInfo ) |
385 { |
384 { |
386 CaptionInfoL( aId, aAttrName, aAttrExists, aAttrVal ); |
385 CaptionInfoL( aId, aAttrName, aAttrExists, aAttrVal ); |
387 addToCache = EFalse; |
386 addToCache = EFalse; |
418 // --------------------------------------------------------- |
417 // --------------------------------------------------------- |
419 // |
418 // |
420 void CMenuSrvEng::ApplicationNativeAttributeL( |
419 void CMenuSrvEng::ApplicationNativeAttributeL( |
421 TInt aId, TBool & aAttrExists, TDes & aAttrVal ) |
420 TInt aId, TBool & aAttrExists, TDes & aAttrVal ) |
422 { |
421 { |
423 const CMenuEngObject & obj = iEng->ObjectL(aId); |
422 const CMenuEngObject & aEngObj = iEng->ObjectL(aId); |
424 iCMenuSrvEngUtils->IsNative(obj, aAttrExists, aAttrVal); |
423 |
|
424 aAttrExists = EFalse; |
|
425 if( aEngObj.Type().CompareF( KMenuTypeApp ) == KErrNone ) |
|
426 { |
|
427 TInt err; |
|
428 TUid uid; |
|
429 err = iCMenuSrvEngUtils->GetAppUid( aEngObj, uid ); |
|
430 if( err == KErrNone ) |
|
431 { |
|
432 TBool native(EFalse); |
|
433 err = iCMenuSrvEngUtils->IsNativeL( uid, native ); |
|
434 if( !err ) |
|
435 { |
|
436 aAttrExists = ETrue; |
|
437 if( native ) |
|
438 { |
|
439 aAttrVal = KMenuTrue(); |
|
440 } |
|
441 else |
|
442 { |
|
443 aAttrVal = KMenuFalse(); |
|
444 } |
|
445 } |
|
446 } |
|
447 } |
|
448 if( !aAttrExists ) |
|
449 { |
|
450 aAttrVal = KNullDesC(); |
|
451 } |
425 } |
452 } |
426 |
453 |
427 // --------------------------------------------------------- |
454 // --------------------------------------------------------- |
428 // CMenuSrvEng::AddToCacheL |
455 // CMenuSrvEng::AddToCacheL |
429 // --------------------------------------------------------- |
456 // --------------------------------------------------------- |
435 attr->SetValueL( aAttrVal ); // Takes ownership. |
462 attr->SetValueL( aAttrVal ); // Takes ownership. |
436 attr->SetId( aId ); // New in cache -> not changed. |
463 attr->SetId( aId ); // New in cache -> not changed. |
437 iCacheHandler->iAttrCache.AppendL( attr ); |
464 iCacheHandler->iAttrCache.AppendL( attr ); |
438 CleanupStack::Pop( attr ); |
465 CleanupStack::Pop( attr ); |
439 } |
466 } |
440 |
467 |
441 // --------------------------------------------------------- |
468 // --------------------------------------------------------- |
442 // CMenuSrvEng::CaptionInfoL |
469 // CMenuSrvEng::CaptionInfoL |
443 // Functions only for KMenuTypeApp type. |
470 // Functions only for KMenuTypeApp type. |
444 // --------------------------------------------------------- |
471 // --------------------------------------------------------- |
445 // |
472 // |
446 void CMenuSrvEng::CaptionInfoL( TInt aId, const TDesC& aAttrName, |
473 void CMenuSrvEng::CaptionInfoL( TInt aId, const TDesC& aAttrName, |
447 TBool& aExists, TDes& aAttrVal ) |
474 TBool& aExists, TDes& aAttrVal ) |
448 { |
475 { |
449 const CMenuEngObject& obj = iEng->ObjectL(aId); |
476 const CMenuEngObject& obj = iEng->ObjectL(aId); |
450 if ( obj.Type().Compare( KMenuTypeFolder ) == KErrNone ) |
477 if ( obj.Type().Compare( KMenuTypeFolder ) == KErrNone ) |
451 { |
478 { |
452 TBool localized; |
479 TBool localized; |
453 TPtrC attrvalue; |
480 TPtrC attrvalue; |
454 TBool attrExists = obj.FindAttribute( KMenuAttrAppGroupName, attrvalue, localized ); |
481 TBool attrExists = obj.FindAttribute( KMenuAttrAppGroupName, attrvalue, localized ); |
455 if ( attrExists ) |
482 if ( attrExists ) |
456 { |
483 { |
457 aExists = ETrue; |
484 aExists = ETrue; |
458 aAttrVal = attrvalue; |
485 aAttrVal = attrvalue; |
527 // --------------------------------------------------------- |
554 // --------------------------------------------------------- |
528 // |
555 // |
529 TPtrC CMenuSrvEng::AppCaptionInfoL( const CMenuEngObject& aEngObj, |
556 TPtrC CMenuSrvEng::AppCaptionInfoL( const CMenuEngObject& aEngObj, |
530 const TDesC& aAttrName, TBool& aExists ) |
557 const TDesC& aAttrName, TBool& aExists ) |
531 { |
558 { |
532 TApaAppInfo info; |
559 TApaAppInfo info; |
533 TPtrC val( KNullDesC ); |
560 TPtrC val( KNullDesC ); |
534 if( KErrNone == iCMenuSrvEngUtils->GetAppInfo( aEngObj, info ) ) |
561 if( KErrNone == iCMenuSrvEngUtils->GetAppInfoL( aEngObj, info ) ) |
535 { |
562 { |
536 aExists = ETrue; |
563 aExists = ETrue; |
537 if( aAttrName.Compare( KMenuAttrTitleName ) == KErrNone || |
564 if( aAttrName.Compare( KMenuAttrTitleName ) == KErrNone || |
538 aAttrName.Compare( KMenuAttrShortName ) == KErrNone ) |
565 aAttrName.Compare( KMenuAttrShortName ) == KErrNone ) |
539 { |
566 { |
552 { |
579 { |
553 aExists = EFalse; |
580 aExists = EFalse; |
554 } |
581 } |
555 return val; |
582 return val; |
556 } |
583 } |
557 |
584 |
558 // --------------------------------------------------------- |
585 // --------------------------------------------------------- |
559 // CMenuSrvEng::FolderChildrenCountL |
586 // CMenuSrvEng::FolderChildrenCountL |
560 // --------------------------------------------------------- |
587 // --------------------------------------------------------- |
561 // |
588 // |
562 void CMenuSrvEng::FolderChildrenCountL( TInt aId, TBool& aExists, TDes& aAttrVal ) |
589 void CMenuSrvEng::FolderChildrenCountL( TInt aId, TBool& aExists, TDes& aAttrVal ) |
563 { |
590 { |
564 const CMenuEngObject& obj = iEng->ObjectL(aId); |
591 const CMenuEngObject& obj = iEng->ObjectL(aId); |
565 |
592 |
566 if( obj.Type().CompareF( KMenuTypeFolder ) == KErrNone ) |
593 if( obj.Type().CompareF( KMenuTypeFolder ) == KErrNone ) |
567 { |
594 { |
568 TUint32 childrenCount (0); |
595 TUint32 childrenCount (0); |
569 RArray<TMenuItem> childrenArray; |
596 RArray<TMenuItem> childrenArray; |
570 CleanupClosePushL( childrenArray ); |
597 CleanupClosePushL( childrenArray ); |
571 |
598 |
572 CMenuFilter* appFilter = CMenuFilter::NewLC(); |
599 CMenuFilter* appFilter = CMenuFilter::NewLC(); |
573 appFilter->SetFlags(0, TMenuItem::EMissing | TMenuItem::EHidden); |
600 appFilter->SetFlags(0, TMenuItem::EMissing | TMenuItem::EHidden); |
574 TMenuSrvObjectFilter engFilter( *appFilter ); |
601 TMenuSrvObjectFilter engFilter( *appFilter ); |
575 iEng->GetItemsL(childrenArray, aId, &engFilter, EFalse); |
602 iEng->GetItemsL(childrenArray, aId, &engFilter, EFalse); |
576 childrenCount = childrenArray.Count(); |
603 childrenCount = childrenArray.Count(); |
577 |
604 |
578 CleanupStack::PopAndDestroy( appFilter ); |
605 CleanupStack::PopAndDestroy( appFilter ); |
579 CleanupStack::PopAndDestroy( &childrenArray ); |
606 CleanupStack::PopAndDestroy( &childrenArray ); |
580 |
607 |
581 aAttrVal.Num(childrenCount, EDecimal); |
608 aAttrVal.Num(childrenCount, EDecimal); |
582 aExists = ETrue; |
609 aExists = ETrue; |
583 } |
610 } |
584 else |
611 else |
585 { |
612 { |
586 aAttrVal.Append(KNullDesC()); |
613 aAttrVal.Append(KNullDesC()); |
587 aExists = EFalse; |
614 aExists = EFalse; |
588 } |
615 } |
589 } |
616 } |
590 |
617 |
591 // --------------------------------------------------------- |
618 // --------------------------------------------------------- |
592 // CMenuSrvEngUtils::GetAppRunningL |
619 // CMenuSrvEngUtils::GetAppRunningL |
593 // --------------------------------------------------------- |
620 // --------------------------------------------------------- |
594 // |
621 // |
595 void CMenuSrvEng::GetAppRunningL( TInt aId, TBool& aExists, TDes& aAttrVal ) |
622 void CMenuSrvEng::GetAppRunningL( TInt aId, TBool& aExists, TDes& aAttrVal ) |
614 TBool attrExists (EFalse); |
641 TBool attrExists (EFalse); |
615 TUint count (0); |
642 TUint count (0); |
616 RBuf attrVal; |
643 RBuf attrVal; |
617 attrVal.CleanupClosePushL(); |
644 attrVal.CleanupClosePushL(); |
618 attrVal.CreateL(KMenuMaxAttrValueLen); |
645 attrVal.CreateL(KMenuMaxAttrValueLen); |
619 |
646 |
620 // Get folder children count |
647 // Get folder children count |
621 FolderChildrenCountL(aId, attrExists, attrVal); |
648 FolderChildrenCountL(aId, attrExists, attrVal); |
622 |
649 |
623 if (attrExists) |
650 if (attrExists) |
624 { |
651 { |
625 TLex lex(attrVal); |
652 TLex lex(attrVal); |
626 User::LeaveIfError( lex.Val(count) ); |
653 User::LeaveIfError( lex.Val(count) ); |
627 } |
654 } |
628 CleanupStack::PopAndDestroy( &attrVal ); |
655 CleanupStack::PopAndDestroy( &attrVal ); |
629 |
656 |
630 return count; |
657 return count; |
631 } |
658 } |
632 |
659 |
633 // --------------------------------------------------------- |
660 // --------------------------------------------------------- |
634 // CMenuSrvEng::GetlistSizeL |
661 // CMenuSrvEng::GetlistSizeL |
635 // --------------------------------------------------------- |
662 // --------------------------------------------------------- |
636 // |
663 // |
637 TInt CMenuSrvEng::GetListSizeL( const TDesC8& aSerializedInput ) |
664 TInt CMenuSrvEng::GetListSizeL( const TDesC8& aSerializedInput ) |
638 { |
665 { |
639 delete iGetlistHandler; |
666 delete iGetlistHandler; |
640 iGetlistHandler = NULL; |
667 iGetlistHandler = NULL; |
641 |
668 |
642 iGetlistHandler = CMcsGetlistHandler::NewL( *this ); |
669 iGetlistHandler = CMcsGetlistHandler::NewL( *this ); |
643 return iGetlistHandler->GetListSizeL( aSerializedInput ); |
670 return iGetlistHandler->GetListSizeL( aSerializedInput ); |
644 } |
671 } |
645 |
672 |
646 // --------------------------------------------------------- |
673 // --------------------------------------------------------- |
647 // CMenuSrvEng::CloseOutputBuffer |
674 // CMenuSrvEng::CloseOutputBuffer |
648 // --------------------------------------------------------- |
675 // --------------------------------------------------------- |
649 // |
676 // |
650 void CMenuSrvEng::CloseOutputBuffer() |
677 void CMenuSrvEng::CloseOutputBuffer() |
658 // |
685 // |
659 void CMenuSrvEng::CleanAttributeCache() |
686 void CMenuSrvEng::CleanAttributeCache() |
660 { |
687 { |
661 iCacheHandler->iAttrCache.ResetAndDestroy(); |
688 iCacheHandler->iAttrCache.ResetAndDestroy(); |
662 } |
689 } |
663 |
690 |
664 // --------------------------------------------------------- |
691 // --------------------------------------------------------- |
665 // CMenuSrvEng::GetlistSizeL |
692 // CMenuSrvEng::GetlistSizeL |
666 // --------------------------------------------------------- |
693 // --------------------------------------------------------- |
667 // |
694 // |
668 TPtrC8 CMenuSrvEng::GetListDataL( ) |
695 TPtrC8 CMenuSrvEng::GetListDataL( ) |
669 { |
696 { |
670 return iGetlistHandler->GetListDataL( ); |
697 return iGetlistHandler->GetListDataL( ); |
671 } |
698 } |
672 |
699 |
673 // --------------------------------------------------------- |
700 // --------------------------------------------------------- |
674 // CMenuSrvEng::AppendExtendedAttrributesL |
701 // CMenuSrvEng::AppendExtendedAttrributesL |
675 // --------------------------------------------------------- |
702 // --------------------------------------------------------- |
676 // |
703 // |
677 void CMenuSrvEng::AppendExtendedAttrributesL( |
704 void CMenuSrvEng::AppendExtendedAttrributesL( |
678 const TDesC& aType, |
705 const TDesC& aType, |
679 RArray<TPtrC>& aList ) |
706 RArray<TPtrC>& aList ) |
680 { |
707 { |
681 |
708 |
682 if ( KErrNone == aType.Compare( KMenuTypeApp ) ) |
709 if ( KErrNone == aType.Compare( KMenuTypeApp ) ) |
683 { |
710 { |
684 if( KErrNotFound == aList.Find( KMenuAttrTitleName(), TIdentityRelation<TPtrC>( CmpAttrName )) ) |
711 if( KErrNotFound == aList.Find( KMenuAttrTitleName(), TIdentityRelation<TPtrC>( CmpAttrName )) ) |
685 { |
712 { |
686 aList.AppendL( TPtrC( KMenuAttrTitleName ) ); |
713 aList.AppendL( TPtrC( KMenuAttrTitleName ) ); |
687 } |
714 } |
688 if( KErrNotFound == aList.Find( KMenuAttrShortName(), TIdentityRelation<TPtrC>( CmpAttrName )) ) |
715 if( KErrNotFound == aList.Find( KMenuAttrShortName(), TIdentityRelation<TPtrC>( CmpAttrName )) ) |
689 { |
716 { |
690 aList.AppendL( TPtrC( KMenuAttrShortName ) ); |
717 aList.AppendL( TPtrC( KMenuAttrShortName ) ); |
691 } |
718 } |
692 if( KErrNotFound == aList.Find( KMenuAttrLongName(), TIdentityRelation<TPtrC>( CmpAttrName )) ) |
719 if( KErrNotFound == aList.Find( KMenuAttrLongName(), TIdentityRelation<TPtrC>( CmpAttrName )) ) |
693 { |
720 { |
694 aList.AppendL( TPtrC( KMenuAttrLongName ) ); |
721 aList.AppendL( TPtrC( KMenuAttrLongName ) ); |
695 } |
722 } |
696 if( KErrNotFound == aList.Find( KMenuAttrDrmProtection(), TIdentityRelation<TPtrC>( CmpAttrName )) ) |
723 if( KErrNotFound == aList.Find( KMenuAttrDrmProtection(), TIdentityRelation<TPtrC>( CmpAttrName )) ) |
697 { |
724 { |
698 aList.AppendL( TPtrC( KMenuAttrDrmProtection ) ); |
725 aList.AppendL( TPtrC( KMenuAttrDrmProtection ) ); |
699 } |
726 } |
700 } |
727 } |
701 else if ( KErrNone == aType.Compare( KMenuTypeFolder ) ) |
728 else if ( KErrNone == aType.Compare( KMenuTypeFolder ) ) |
702 { |
729 { |
703 if( KErrNotFound == aList.Find( KMenuAttrTitleName(), TIdentityRelation<TPtrC>( CmpAttrName )) ) |
730 if( KErrNotFound == aList.Find( KMenuAttrTitleName(), TIdentityRelation<TPtrC>( CmpAttrName )) ) |
704 { |
731 { |
705 aList.AppendL( TPtrC( KMenuAttrTitleName ) ); |
732 aList.AppendL( TPtrC( KMenuAttrTitleName ) ); |
706 } |
733 } |
707 if( KErrNotFound == aList.Find( KMenuAttrShortName(), TIdentityRelation<TPtrC>( CmpAttrName )) ) |
734 if( KErrNotFound == aList.Find( KMenuAttrShortName(), TIdentityRelation<TPtrC>( CmpAttrName )) ) |
708 { |
735 { |
709 aList.AppendL( TPtrC( KMenuAttrShortName ) ); |
736 aList.AppendL( TPtrC( KMenuAttrShortName ) ); |
710 } |
737 } |
711 if( KErrNotFound == aList.Find( KMenuAttrLongName(), TIdentityRelation<TPtrC>( CmpAttrName )) ) |
738 if( KErrNotFound == aList.Find( KMenuAttrLongName(), TIdentityRelation<TPtrC>( CmpAttrName )) ) |
712 { |
739 { |
713 aList.AppendL( TPtrC( KMenuAttrLongName ) ); |
740 aList.AppendL( TPtrC( KMenuAttrLongName ) ); |
714 } |
741 } |
715 if( KErrNotFound == aList.Find( KChildrenCount(), TIdentityRelation<TPtrC>( CmpAttrName )) ) |
742 if( KErrNotFound == aList.Find( KChildrenCount(), TIdentityRelation<TPtrC>( CmpAttrName )) ) |
716 { |
743 { |
717 aList.AppendL( TPtrC( KChildrenCount ) ); |
744 aList.AppendL( TPtrC( KChildrenCount ) ); |
718 } |
745 } |
719 } |
746 } |
720 } |
747 } |
721 |
748 |
722 |
749 |
723 // End of File |
750 // End of File |