equal
deleted
inserted
replaced
565 // something else to allow item data update. |
565 // something else to allow item data update. |
566 return object; |
566 return object; |
567 } |
567 } |
568 |
568 |
569 |
569 |
570 |
570 |
571 // --------------------------------------------------------- |
571 // --------------------------------------------------------- |
572 // CMenuEng::AppendNotifyL |
572 // CMenuEng::AppendNotifyL |
573 // --------------------------------------------------------- |
573 // --------------------------------------------------------- |
574 // |
574 // |
575 EXPORT_C void CMenuEng::AppendNotifyL( TInt aFolder, TInt aEvents ) |
575 EXPORT_C void CMenuEng::AppendNotifyL( TInt aFolder, TInt aEvents ) |
589 // CMenuEng::NodeL |
589 // CMenuEng::NodeL |
590 // --------------------------------------------------------- |
590 // --------------------------------------------------------- |
591 // |
591 // |
592 EXPORT_C TBool CMenuEng::Exist( TInt aId ) const |
592 EXPORT_C TBool CMenuEng::Exist( TInt aId ) const |
593 { |
593 { |
594 MXCFWNode* node = NULL; |
594 TBool exists(EFalse); |
595 const RNodeArray& nodes = iTree->Nodes(); |
595 const RNodeArray& nodes = iTree->Nodes(); |
596 for ( TInt i = 0; i < nodes.Count(); i++ ) |
596 for ( TInt i = 0; i < nodes.Count(); i++ ) |
597 { |
597 { |
598 node = nodes[i]; |
598 CMenuEngObject& object = Object( *nodes[i] ); |
599 if ( aId == Object( *node ).Id() ) |
599 if ( aId == object.Id() |
600 { |
600 && !( ( object.Flags() & TMenuItem::EHidden ) |
601 return ETrue; |
601 || ( object.Flags() & TMenuItem::EMissing ) ) ) |
602 } |
602 { |
603 } |
603 exists = ETrue; |
604 return EFalse; |
604 } |
|
605 } |
|
606 return exists; |
605 } |
607 } |
606 // --------------------------------------------------------- |
608 // --------------------------------------------------------- |
607 // CMenuEng::RunL |
609 // CMenuEng::RunL |
608 // --------------------------------------------------------- |
610 // --------------------------------------------------------- |
609 // |
611 // |
716 // Error loading ROM tree is fatal. Nothing we can do. |
718 // Error loading ROM tree is fatal. Nothing we can do. |
717 // stop nested active scheduler loop if error in parsing |
719 // stop nested active scheduler loop if error in parsing |
718 if ( iActiveWait->IsStarted() ) |
720 if ( iActiveWait->IsStarted() ) |
719 { |
721 { |
720 iActiveWait->AsyncStop(); |
722 iActiveWait->AsyncStop(); |
721 } |
723 } |
722 |
724 |
723 iState = EDead; |
725 iState = EDead; |
724 iObserver.EngineError( aError ); |
726 iObserver.EngineError( aError ); |
725 // Can't delete the tree now, XCFW Engine keeps a pointer to it |
727 // Can't delete the tree now, XCFW Engine keeps a pointer to it |
726 // and still uses it even after reporting the error. :( |
728 // and still uses it even after reporting the error. :( |
727 |
729 |
728 break; |
730 break; |
729 } |
731 } |
730 |
732 |
731 case ESaveFile: |
733 case ESaveFile: |
732 { |
734 { |
783 // parsing operation complete |
785 // parsing operation complete |
784 // we can stop nested active scheduler loop |
786 // we can stop nested active scheduler loop |
785 if ( iActiveWait->IsStarted() ) |
787 if ( iActiveWait->IsStarted() ) |
786 { |
788 { |
787 iActiveWait->AsyncStop(); |
789 iActiveWait->AsyncStop(); |
788 } |
790 } |
789 |
791 |
790 TBool legacyFormat = iObjectFactory->IsLegacyFormat(); |
792 TBool legacyFormat = iObjectFactory->IsLegacyFormat(); |
791 // Reset object factory in all cases. |
793 // Reset object factory in all cases. |
792 iObjectFactory->Reset(); |
794 iObjectFactory->Reset(); |
793 // Tree is up (maybe unsaved yet). |
795 // Tree is up (maybe unsaved yet). |
794 // Check the structure and get the root folder node. |
796 // Check the structure and get the root folder node. |
795 MXCFWNode& rootNode = CheckTreeL( *iTree ); |
797 MXCFWNode& rootNode = CheckTreeL( *iTree ); |
1128 // Read ID-s to ID manager. |
1130 // Read ID-s to ID manager. |
1129 TMenuEngIdManagerInit idManagerInit( *iIdManager ); |
1131 TMenuEngIdManagerInit idManagerInit( *iIdManager ); |
1130 TraverseNodeL( aRootNode, idManagerInit ); |
1132 TraverseNodeL( aRootNode, idManagerInit ); |
1131 // Make sure all nodes have ID. |
1133 // Make sure all nodes have ID. |
1132 TMenuEngIdSetter idSetter( *iIdManager ); |
1134 TMenuEngIdSetter idSetter( *iIdManager ); |
1133 TraverseNodeL( aRootNode, idSetter ); |
1135 TraverseNodeL( aRootNode, idSetter ); |
1134 } |
1136 } |
1135 |
1137 |
1136 // --------------------------------------------------------- |
1138 // --------------------------------------------------------- |
1137 // CMenuEng::GetIdSeedL |
1139 // CMenuEng::GetIdSeedL |
1138 // --------------------------------------------------------- |
1140 // --------------------------------------------------------- |
1218 { |
1220 { |
1219 __ASSERT_DEBUG( ELoadRamFile == iState, User::Invariant() ); |
1221 __ASSERT_DEBUG( ELoadRamFile == iState, User::Invariant() ); |
1220 __ASSERT_DEBUG( !iTree, User::Invariant() ); |
1222 __ASSERT_DEBUG( !iTree, User::Invariant() ); |
1221 iTree = CXCFWTree::NewL(); |
1223 iTree = CXCFWTree::NewL(); |
1222 // Legacy xml format supported only if the xml is from rom: |
1224 // Legacy xml format supported only if the xml is from rom: |
1223 iObjectFactory->SupportLegacyFormat( EFalse ); |
1225 iObjectFactory->SupportLegacyFormat( EFalse ); |
1224 iEngine->LoadL( *iTree, iRamFileName ); |
1226 iEngine->LoadL( *iTree, iRamFileName ); |
1225 } |
1227 } |
1226 |
1228 |
1227 // --------------------------------------------------------- |
1229 // --------------------------------------------------------- |
1228 // CMenuEng::LoadRomFileL |
1230 // CMenuEng::LoadRomFileL |
1236 GetFileNameL( fname, ERomFile ); |
1238 GetFileNameL( fname, ERomFile ); |
1237 delete iIdManager; iIdManager = NULL; |
1239 delete iIdManager; iIdManager = NULL; |
1238 delete iTree; iTree = NULL; |
1240 delete iTree; iTree = NULL; |
1239 iTree = CXCFWTree::NewL(); |
1241 iTree = CXCFWTree::NewL(); |
1240 // Legacy xml format supported only if the xml is from rom: |
1242 // Legacy xml format supported only if the xml is from rom: |
1241 iObjectFactory->SupportLegacyFormat( ETrue ); |
1243 iObjectFactory->SupportLegacyFormat( ETrue ); |
1242 iEngine->LoadL( *iTree, fname ); |
1244 iEngine->LoadL( *iTree, fname ); |
1243 } |
1245 } |
1244 |
1246 |
1245 // --------------------------------------------------------- |
1247 // --------------------------------------------------------- |
1246 // CMenuEng::SaveTempFileL |
1248 // CMenuEng::SaveTempFileL |
1376 iState = EReady; |
1378 iState = EReady; |
1377 } |
1379 } |
1378 } |
1380 } |
1379 } |
1381 } |
1380 |
1382 |
1381 // End of File |
1383 // End of File |