menufw/hierarchynavigator/hnmetadatamodel/src/hnmdmodel.cpp
branchRCL_3
changeset 102 ba63c83f4716
parent 93 b01126ce0bec
equal deleted inserted replaced
93:b01126ce0bec 102:ba63c83f4716
    62     THnMdCommonPointers::SetStatic(&iCmnPtrs);
    62     THnMdCommonPointers::SetStatic(&iCmnPtrs);
    63 
    63 
    64     iMode = EMdModeNormal;
    64     iMode = EMdModeNormal;
    65     iRepositoryWidgetTypeObserver = CHnRepositoryWidgetTypeObserver::NewL( &iCmnPtrs, KMatrixRepositoryUid );
    65     iRepositoryWidgetTypeObserver = CHnRepositoryWidgetTypeObserver::NewL( &iCmnPtrs, KMatrixRepositoryUid );
    66     iRepositoryShowFolderObserver = CHnRepositoryShowFolderObserver::NewL( &iCmnPtrs, KCRUidMenu, KMenuShowFolder );
    66     iRepositoryShowFolderObserver = CHnRepositoryShowFolderObserver::NewL( &iCmnPtrs, KCRUidMenu, KMenuShowFolder );
    67     iRepositoryOpenItemObserver = CHnRepositoryOpenItemObserver::NewL( &iCmnPtrs, KCRUidMenu, KMenuOpenItem );
       
    68     MMPERF(("CHnMetaDataModel::ConstructL - rep. observer ready"));
    67     MMPERF(("CHnMetaDataModel::ConstructL - rep. observer ready"));
    69     }
    68     }
    70 
    69 
    71 // ---------------------------------------------------------------------------
    70 // ---------------------------------------------------------------------------
    72 //
    71 //
   110 //
   109 //
   111 CHnMdModel::~CHnMdModel()
   110 CHnMdModel::~CHnMdModel()
   112     {
   111     {
   113     delete iRepositoryWidgetTypeObserver;
   112     delete iRepositoryWidgetTypeObserver;
   114     delete iRepositoryShowFolderObserver;
   113     delete iRepositoryShowFolderObserver;
   115     delete iRepositoryOpenItemObserver;
       
   116     iLoadedSuites.ResetAndDestroy();
   114     iLoadedSuites.ResetAndDestroy();
   117     delete iXmlModelProvider;
   115     delete iXmlModelProvider;
   118     delete iLocalization;
   116     delete iLocalization;
   119     delete iBitmapIdCache;
   117     delete iBitmapIdCache;
   120     }
   118     }
   247 // ---------------------------------------------------------------------------
   245 // ---------------------------------------------------------------------------
   248 //
   246 //
   249 // ---------------------------------------------------------------------------
   247 // ---------------------------------------------------------------------------
   250 //
   248 //
   251 EXPORT_C TBool CHnMdModel::IsForegroundQueued() const
   249 EXPORT_C TBool CHnMdModel::IsForegroundQueued() const
   252     {
   250 	{
   253     return iForegroundQueued;
   251 	return iForegroundQueued;
   254     }
   252 	}
   255 
   253 
   256 // ---------------------------------------------------------------------------
   254 // ---------------------------------------------------------------------------
   257 //
   255 //
   258 // ---------------------------------------------------------------------------
   256 // ---------------------------------------------------------------------------
   259 //
   257 //
   264         User::Leave( KErrArgument );
   262         User::Leave( KErrArgument );
   265         }
   263         }
   266 
   264 
   267     if ( IsForegroundQueued() && ( !iForegroundTriggeringSuite ||
   265     if ( IsForegroundQueued() && ( !iForegroundTriggeringSuite ||
   268             iForegroundTriggeringSuite == aJustEvaluatedSuite ) )
   266             iForegroundTriggeringSuite == aJustEvaluatedSuite ) )
   269         {
   267     	{
   270         CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
   268     	CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
   271         CleanupStack::PushL( pl );
   269     	CleanupStack::PushL( pl );
   272         iCmnPtrs.iModelEventObserver->HandleModelEventL( KAppGainForeground, *pl );
   270     	iCmnPtrs.iModelEventObserver->HandleModelEventL( KAppGainForeground, *pl );
   273         CleanupStack::PopAndDestroy( pl );
   271     	CleanupStack::PopAndDestroy( pl );
   274         QueueForeground( ENever );
   272     	QueueForeground( ENever );
   275         }
   273     	}
   276     }
   274     }
   277 
   275 
   278 // ---------------------------------------------------------------------------
   276 // ---------------------------------------------------------------------------
   279 //
   277 //
   280 // ---------------------------------------------------------------------------
   278 // ---------------------------------------------------------------------------
   316 EXPORT_C TInt CHnMdModel::LoadSuiteL( const TDesC& aGenre,
   314 EXPORT_C TInt CHnMdModel::LoadSuiteL( const TDesC& aGenre,
   317         CLiwGenericParamList* aSuiteParams )
   315         CLiwGenericParamList* aSuiteParams )
   318     {
   316     {
   319     TInt err( KErrNone );
   317     TInt err( KErrNone );
   320 
   318 
   321     RXmlEngDocument xmlDoc;
   319 	RXmlEngDocument xmlDoc;
   322     // Xml model provider takes ownership of xmlDoc.
   320 	// Xml model provider takes ownership of xmlDoc.
   323     TRAP( err, iXmlModelProvider->GetModelL( aGenre, xmlDoc ) );
   321 	TRAP( err, iXmlModelProvider->GetModelL( aGenre, xmlDoc ) );
   324 
   322 
   325     TXmlEngElement element;
   323 	TXmlEngElement element;
   326     if ( !err )
   324     if ( !err )
   327         {
   325         {
   328         element = xmlDoc.DocumentElement().AsElement();
   326         element = xmlDoc.DocumentElement().AsElement();
   329         if ( element.Name() != KContentElementName8 )
   327         if ( element.Name() != KContentElementName8 )
   330             {
   328             {
   342             }
   340             }
   343 
   341 
   344         TInt pos( 0 );
   342         TInt pos( 0 );
   345         newSuite->GetSuiteParameters().FindFirst( pos, KSuiteName8);
   343         newSuite->GetSuiteParameters().FindFirst( pos, KSuiteName8);
   346         if ( pos == KErrNotFound )
   344         if ( pos == KErrNotFound )
   347             {
   345         	{
   348             newSuite->GetSuiteParameters().AppendL(
   346         	newSuite->GetSuiteParameters().AppendL(
   349                 TLiwGenericParam(KSuiteName8, TLiwVariant( aGenre ) ) );
   347         			TLiwGenericParam(KSuiteName8, TLiwVariant( aGenre ) ) );
   350             }
   348         	}
   351 
   349 
   352         iCmnPtrs.iContainer->PushNewSuiteModelL( newSuite->SuiteName() );
   350         iCmnPtrs.iContainer->PushNewSuiteModelL( newSuite->SuiteName() );
   353         iCmnPtrs.iContainer->GetLastSuiteModel()->GetItemsOrder()->
   351         iCmnPtrs.iContainer->GetLastSuiteModel()->GetItemsOrder()->
   354             SetSuiteId( iCmnPtrs.iIdGenerator->GetNextId() );
   352             SetSuiteId( iCmnPtrs.iIdGenerator->GetNextId() );
   355 
   353 
   356         CleanupStack::Pop( newSuite );
   354         CleanupStack::Pop( newSuite );
   357         iLoadedSuites.AppendL( newSuite );
   355         iLoadedSuites.AppendL( newSuite );
   358         }
   356         }
   359     else
   357     else
   360         {
   358     	{
   361         MMPERF(("CHnMdModel::LoadSuiteL - Error TRAPPED!"));
   359     	MMPERF(("CHnMdModel::LoadSuiteL - Error TRAPPED!"));
   362         }
   360     	}
   363 
   361 
   364     return err;
   362     return err;
   365     }
   363     }
   366 
   364 
   367 // ---------------------------------------------------------------------------
   365 // ---------------------------------------------------------------------------
   395 // ---------------------------------------------------------------------------
   393 // ---------------------------------------------------------------------------
   396 //
   394 //
   397 // ---------------------------------------------------------------------------
   395 // ---------------------------------------------------------------------------
   398 //
   396 //
   399 TInt CHnMdModel::LoadedSuitesCount()
   397 TInt CHnMdModel::LoadedSuitesCount()
   400     {
   398 	{
   401     return iLoadedSuites.Count();
   399 	return iLoadedSuites.Count();
   402     }
   400 	}
   403 
   401 
   404 
   402