diff -r 6cadd6867c17 -r 67f2ed48ad91 idlefw/plugins/mcsplugin/publisher/src/mcspluginengine.cpp --- a/idlefw/plugins/mcsplugin/publisher/src/mcspluginengine.cpp Wed Sep 15 12:32:36 2010 +0300 +++ b/idlefw/plugins/mcsplugin/publisher/src/mcspluginengine.cpp Wed Oct 13 14:53:46 2010 +0300 @@ -50,7 +50,9 @@ _LIT( KResourceFile, "mcspluginres.rsc" ); _LIT( KResPath, "\\resource\\" ); _LIT( KMMApplication, "mm://" ); -_LIT( KSetOpenItemString, "!openitem?id=" ); +_LIT( KHideExit2, "&exit=hide" ); +_LIT( KSetFocusString, "!setfocus?applicationgroup_name=" ); +_LIT( KApplicationGroupName, "applicationgroup_name" ); _LIT( KIcon, "icon" ); _LIT( KMenuAttrUndefUid, "0x99999991" ); _LIT( KMenuIconFile, "aimcsplugin.mif" ); @@ -60,7 +62,6 @@ _LIT( KMenuMailboxMaskId, "16389" ); _LIT( KMenuTypeMailbox, "menu:mailbox" ); _LIT( KPrefix, "0x" ); -_LIT( KMenuAttrInvokeSettingsUid, "0x99999990" ); const TUid KHomescreenUid = { AI_UID3_AIFW_COMMON }; const TUid KMMUid = { 0x101F4CD2 }; @@ -68,13 +69,6 @@ const TUid KMCSCmailMailboxViewIdValue = { 0x2 }; const TUid KBrowserUid = { 0x10008D39 }; -// maximum custom message length -const TInt KMaxCustomMsg = 256; -const TInt KUndefinedIndex = -1; - -// maximun integer character length -const TInt KMaxLength = 12; - // ======== LOCAL FUNCTIONS ======== // ---------------------------------------------------------------------------- // NextIdToken @@ -361,7 +355,7 @@ { item = CMenuItem::CreateL( iMenu, KMenuTypeUrl, 0, 0 ); CleanupStack::PushL( item ); - item->SetAttributeL( KMenuAttrLongName, *aData.Name() ); + item->SetAttributeL( KMenuAttrLongName, aData.Name() ); item->SetAttributeL( KMenuAttrIconFile, KMenuIconFile ); item->SetAttributeL( KMenuAttrIconId, KMenuBookmarkIconId ); item->SetAttributeL( KMenuAttrMaskId, KMenuBookmarkMaskId ); @@ -381,7 +375,7 @@ { item = CMenuItem::CreateL( iMenu, KMenuTypeMailbox, 0, 0 ); CleanupStack::PushL( item ); - item->SetAttributeL( KMenuAttrLongName, *aData.Name() ); + item->SetAttributeL( KMenuAttrLongName, aData.Name() ); item->SetAttributeL( KMenuAttrIconFile, KMenuIconFile ); item->SetAttributeL( KMenuAttrIconId, KMenuMailboxIconId ); item->SetAttributeL( KMenuAttrMaskId, KMenuMailboxMaskId ); @@ -409,14 +403,7 @@ TUint32 isHidden = flags & TMenuItem::EHidden; TUint32 isMissing = flags & TMenuItem::EMissing; - TBool attrExists = ETrue; - TPtrC uid = aMenuItem->GetAttributeL(KMenuAttrUid, attrExists); - - // if item is hidden or missing (mmc card removed) - // use "Undefined" icon instead - // for empty item it's own icon is shown - if ( iUndefinedItem && uid.Compare(KMenuAttrInvokeSettingsUid) != 0 && - ( isHidden || isMissing ) ) + if ( iUndefinedItem && ( isHidden || isMissing ) ) { menuItem = iUndefinedItem; } @@ -484,14 +471,9 @@ TUint32 isHidden = flags & TMenuItem::EHidden; TUint32 isMissing = flags & TMenuItem::EMissing; - TBool attrExists = ETrue; - TPtrC uid = aMenuItem->GetAttributeL(KMenuAttrUid, attrExists); - // if item is hidden or missing (mmc card removed) // use "Undefined" text instead - // for empty item it's own icon is shown - if ( iUndefinedItem && uid.Compare(KMenuAttrInvokeSettingsUid) != 0 && - ( isHidden || isMissing ) ) + if ( iUndefinedItem && ( isHidden || isMissing ) ) { menuItem = iUndefinedItem; } @@ -550,23 +532,7 @@ } else { - CMenuItem* item(CMenuItem::OpenL(iMenu, dataItem.MenuItem().Id())); - CleanupStack::PushL(item); - - TBool attrExists = ETrue; - - TPtrC uid = item->GetAttributeL(KMenuAttrUid, attrExists); - - // Show selected shortcut settings - if (uid.Compare(KMenuAttrInvokeSettingsUid) == 0) - { - TRAP_IGNORE( ShowSettingsL(aIndex + 1) ); - } - else - { - LaunchMCSItemL(dataItem); - } - CleanupStack::PopAndDestroy(item); + LaunchMCSItemL( dataItem ); } } @@ -594,15 +560,25 @@ HBufC8* message; // prepare message for launching folder - TBuf itemId; - itemId.Num( item->Id() ); + TBool hasApplicationGroupName( EFalse ); + + TPtrC applicationGroupName( item->GetAttributeL( + KApplicationGroupName, hasApplicationGroupName ) ); + + if ( !hasApplicationGroupName ) + { + return; + } - message = HBufC8::NewLC( KMMApplication().Length() - + KSetOpenItemString().Length() - + itemId.Length() ); + message = HBufC8::NewLC( KMMApplication().Length() + + KSetFocusString().Length() + + applicationGroupName.Length() + + KHideExit2().Length() ); + message->Des().Copy( KMMApplication ); - message->Des().Append( KSetOpenItemString ); - message->Des().Append( itemId ); + message->Des().Append( KSetFocusString ); + message->Des().Append( applicationGroupName ); + message->Des().Append( KHideExit2 ); // find MM application TApaTaskList taskList( CCoeEnv::Static()->WsSession() ); @@ -648,7 +624,7 @@ { StartEffect( KBrowserUid ); - CSchemeHandler* urlHandler = CSchemeHandler::NewL( *aData.Value()); + CSchemeHandler* urlHandler = CSchemeHandler::NewL( aData.Value()); CleanupStack::PushL( urlHandler ); urlHandler->HandleUrlStandaloneL(); CleanupStack::PopAndDestroy( urlHandler ); @@ -740,6 +716,7 @@ CMCSData& data( iPluginData->DataItemL( i ) ); data.SetDirty( ETrue ); } + iPluginData->UpdateDataL(); iPlugin.PublishL(); @@ -792,22 +769,12 @@ // Launch General Settings plugin // --------------------------------------------------------------------------- // -void CMCSPluginEngine::ShowSettingsL( const TInt aEditIdx ) +void CMCSPluginEngine::ShowSettingsL() { TUid uid = {AI_UID_ECOM_IMPLEMENTATION_SETTINGS_MCSPLUGIN}; - // format the custom message - // iInstanceUid/aEditIdx is the format - TBuf8 msg; - msg.Append(iInstanceUid); - if( aEditIdx != KUndefinedIndex ) - { - msg.Append('//'); - msg.AppendFormat(_L8("%d"), aEditIdx); - } - CGSLauncher* launcher = CGSLauncher::NewLC(); - launcher->LaunchGSViewL ( uid, KHomescreenUid, msg ); + launcher->LaunchGSViewL ( uid, KHomescreenUid, iInstanceUid ); CleanupStack::PopAndDestroy( launcher ); }