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 |