idlefw/plugins/mcsplugin/publisher/src/mcspluginengine.cpp
changeset 1 844b978f8d5e
parent 0 79c6a41cd166
child 8 d0529222e3f0
equal deleted inserted replaced
0:79c6a41cd166 1:844b978f8d5e
    26 
    26 
    27 #include <mcsmenuitem.h>
    27 #include <mcsmenuitem.h>
    28 #include <mcsmenufilter.h>
    28 #include <mcsmenufilter.h>
    29 #include <mcsmenuoperation.h>
    29 #include <mcsmenuoperation.h>
    30 #include <mcsmenuiconutility.h>
    30 #include <mcsmenuiconutility.h>
    31 #include <ActiveFavouritesDbNotifier.h>
    31 #include <activefavouritesdbnotifier.h>
    32 #include <FavouritesItemList.h>
    32 #include <favouritesitemlist.h>
    33 
    33 
    34 #include <bautils.h>
    34 #include <bautils.h>
    35 #include <StringLoader.h>
    35 #include <StringLoader.h>
    36 #include <aknnotedialog.h>
    36 #include <aknnotedialog.h>
    37 #include <avkon.rsg>
    37 #include <avkon.rsg>
    53 _LIT( KResourceDrive, "Z:" );
    53 _LIT( KResourceDrive, "Z:" );
    54 _LIT( KResourceFile, "mcspluginres.rsc" );
    54 _LIT( KResourceFile, "mcspluginres.rsc" );
    55 _LIT( KResPath, "\\resource\\" );
    55 _LIT( KResPath, "\\resource\\" );
    56 _LIT( KMenuAttrRefcount, "ref_count" );
    56 _LIT( KMenuAttrRefcount, "ref_count" );
    57 _LIT( KMMApplication, "mm://" );
    57 _LIT( KMMApplication, "mm://" );
    58 _LIT( KHideExit, "?exit=hide" );
       
    59 _LIT( KHideExit2, "&exit=hide" );
    58 _LIT( KHideExit2, "&exit=hide" );
    60 _LIT( KSetFocusString, "!setfocus?applicationgroup_name=" );
    59 _LIT( KSetFocusString, "!setfocus?applicationgroup_name=" );
    61 _LIT( KApplicationGroupName, "applicationgroup_name" );
    60 _LIT( KApplicationGroupName, "applicationgroup_name" );
    62 _LIT( KSuiteName, "suite_name" );
       
    63 _LIT( KIcon, "icon" );
    61 _LIT( KIcon, "icon" );
    64 _LIT( KMenuAttrUndefUid, "0x99999991" );
    62 _LIT( KMenuAttrUndefUid, "0x99999991" );
    65 
    63 
    66 const TUid KHomescreenUid = { AI_UID3_AIFW_COMMON };
    64 const TUid KHomescreenUid = { AI_UID3_AIFW_COMMON };
    67 const TUid KMMUid = { 0x101F4CD2 };
    65 const TUid KMMUid = { 0x101F4CD2 };
   332     TMCSData& dataItem = iPluginData->DataItemL( aIndex );
   330     TMCSData& dataItem = iPluginData->DataItemL( aIndex );
   333     CMenuItem* item = CMenuItem::OpenL( iMenu, dataItem.MenuItem());
   331     CMenuItem* item = CMenuItem::OpenL( iMenu, dataItem.MenuItem());
   334     CleanupStack::PushL( item );
   332     CleanupStack::PushL( item );
   335     TPtrC type = item->Type();
   333     TPtrC type = item->Type();
   336 
   334 
   337     // run suite/folder
   335     // run folder
   338     if ( type == KMenuTypeSuite || type == KMenuTypeFolder )
   336     if ( type == KMenuTypeFolder )
   339         {
   337         {
   340 
   338 
   341         // message for MM application
   339         // message for MM application
   342         HBufC8* message; 
   340         HBufC8* message; 
   343 
   341 
   344         if ( type == KMenuTypeSuite )
   342         // prepare message for launching folder
       
   343         TBool hasApplicationGroupName = EFalse;
       
   344         TPtrC applicationGroupName = item->GetAttributeL( KApplicationGroupName, 
       
   345                                                           hasApplicationGroupName );
       
   346         if ( !hasApplicationGroupName )
   345             {
   347             {
   346             // prepare message for launching suite
   348             CleanupStack::PopAndDestroy( item );
   347             TBool hasSuiteName = EFalse;
   349             return;
   348             TPtrC suiteName = item->GetAttributeL( KSuiteName, hasSuiteName );
   350             }
   349             if ( !hasSuiteName )
   351         message = HBufC8::NewLC( KMMApplication().Length() + 
   350                 { 
   352                                  KSetFocusString().Length() +
   351                 CleanupStack::PopAndDestroy( item );
   353                                  applicationGroupName.Length() + 
   352                 return;
   354                                  KHideExit2().Length() );
   353                 }
   355 
   354             message = HBufC8::NewLC( KMMApplication().Length() + 
   356         message->Des().Copy( KMMApplication );
   355                                      suiteName.Length() + 
   357         message->Des().Append( KSetFocusString );
   356                                      KHideExit().Length() );
   358         message->Des().Append( applicationGroupName );
   357 
   359         message->Des().Append( KHideExit2 );
   358             message->Des().Copy( KMMApplication );
       
   359             message->Des().Append( suiteName );
       
   360             message->Des().Append( KHideExit );
       
   361             }
       
   362         else 
       
   363             {
       
   364             // prepare message for launching folder
       
   365             TBool hasApplicationGroupName = EFalse;
       
   366             TPtrC applicationGroupName = item->GetAttributeL( KApplicationGroupName, 
       
   367                                                               hasApplicationGroupName );
       
   368             if ( !hasApplicationGroupName )
       
   369                 {
       
   370                 CleanupStack::PopAndDestroy( item );
       
   371                 return;
       
   372                 }
       
   373             message = HBufC8::NewLC( KMMApplication().Length() + 
       
   374                                      KSetFocusString().Length() +
       
   375                                      applicationGroupName.Length() + 
       
   376                                      KHideExit2().Length() );
       
   377 
       
   378             message->Des().Copy( KMMApplication );
       
   379             message->Des().Append( KSetFocusString );
       
   380             message->Des().Append( applicationGroupName );
       
   381             message->Des().Append( KHideExit2 );
       
   382             }
       
   383 
   360 
   384         // find MM application
   361         // find MM application
   385         TApaTaskList taskList( CCoeEnv::Static()->WsSession() );
   362         TApaTaskList taskList( CCoeEnv::Static()->WsSession() );
   386         TApaTask task = taskList.FindApp( KMMUid );
   363         TApaTask task = taskList.FindApp( KMMUid );
   387 
   364