commonuis/CommonUi/src/FindItemMenu.cpp
branchRCL_3
changeset 16 71dd06cfe933
parent 15 08e69e956a8c
child 51 fcdfafb36fe7
--- a/commonuis/CommonUi/src/FindItemMenu.cpp	Wed Mar 31 21:59:52 2010 +0300
+++ b/commonuis/CommonUi/src/FindItemMenu.cpp	Wed Apr 14 16:14:00 2010 +0300
@@ -53,7 +53,7 @@
 #endif // !RD_VIRTUAL_PHONEBOOK
 
 #include "finditem.hrh"
-#include <FindItemui.rsg>
+#include <finditemui.rsg>
 #include <aknnotewrappers.h>
 
 // add to gallery related
@@ -356,21 +356,6 @@
             *iFindItemUrlItemString );
         }
     }
-	
-// -----------------------------------------------------------------------------
-// HasSelection
-//  Returns ETrue if editor has highlighted text
-// -----------------------------------------------------------------------------
-//
-TBool CFindItemMenu::HasSelection() const
-    {
-    TBool retval ( EFalse );
-    if ( iAutomaticFind )
-        {
-        retval = iAutomaticFind->HasSelection();
-        }
-    return retval;
-    }
 
 // -----------------------------------------------------------------------------
 // AddMenuItemL
@@ -556,41 +541,15 @@
     TBuf<KMaxMenuTextLength> tempBuf;
 
     // Adds menu items depending the selected item
-    if ( HasSelection() )
+    switch ( itemType )
         {
-        switch ( itemType )
+        case CItemFinder::EPhoneNumber:
             {
-            case CItemFinder::EPhoneNumber:
-                {
 #ifdef RD_VOIP_REL_2_2
-                if ( FeatureManager::FeatureSupported(KFeatureIdCommonVoip ) )
-                    {
-                    // show call menu if allowed
-                    if ( !( iMenuItemFlags & CFindItemMenu::ECallItem ) )
-                        {
-                        // Call
-                        iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL );
-                        AddMenuItemL(
-                            *iMenuPane,
-                            EFindItemCmdCall,
-                            ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ),
-                            0,
-                            tempBuf );
-                        }
-                     // if context menu, we will show call item anyway
-                     else if ( iIsContextMenu )
-                        {
-                        // Call
-                        iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL );
-                        AddMenuItemL(
-                            *iMenuPane,
-                            EFindItemCmdCall,
-                            EFindItemContextMenuPlaceHolder,
-                            0,
-                            tempBuf );
-                        }
-                    }
-                else
+            if ( FeatureManager::FeatureSupported(KFeatureIdCommonVoip ) )
+                {
+                // show call menu if allowed
+                if ( !( iMenuItemFlags & CFindItemMenu::ECallItem ) )
                     {
                     // Call
                     iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL );
@@ -601,8 +560,21 @@
                         0,
                         tempBuf );
                     }
-                index = EFindItemCmdCall;
-#else
+                 // if context menu, we will show call item anyway
+                 else if ( iIsContextMenu )
+                    {
+                    // Call
+                    iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL );
+                    AddMenuItemL(
+                        *iMenuPane,
+                        EFindItemCmdCall,
+                        EFindItemContextMenuPlaceHolder,
+                        0,
+                        tempBuf );
+                    }
+                }
+            else
+                {
                 // Call
                 iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL );
                 AddMenuItemL(
@@ -611,132 +583,141 @@
                     ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ),
                     0,
                     tempBuf );
-                index = EFindItemCmdCall;
+                }
+            index = EFindItemCmdCall;
+#else
+            // Call
+            iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL );
+            AddMenuItemL(
+                *iMenuPane,
+                EFindItemCmdCall,
+                ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ),
+                0,
+                tempBuf );
+            index = EFindItemCmdCall;
 #endif // RD_VOIP_REL_2_2
-                // Write
+            // Write
+            iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_MESSAGE_SUB );
+            AddMenuItemL(
+                *iMenuPane,
+                EFindItemSubMenuSend,
+                index,
+               0,//R_FINDITEM_NUMBER_MESSAGE_SUBMENU,
+                tempBuf );
+            index = EFindItemSubMenuSend;
+
+            break;
+            }
+        case CItemFinder::EUrlAddress:
+            {
+            iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_GOTO_URL );
+
+            // check if not rstp    
+            if ( iAutomaticFind->CurrentItemExt().iItemDescriptor->FindF( KRtspUrlAddress ) == KErrNotFound )
+                {
+                AddMenuItemL(
+                    *iMenuPane,
+                    EFindItemCmdGoToUrl,
+                    ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ),
+                    0,
+                    tempBuf);
+                index = EFindItemCmdGoToUrl;
+
+                if ( !iIsContextMenu )
+                    {
+                    // Add bookmark
+                    iCoeEnv->ReadResourceL(
+                        tempBuf, R_FINDITEMMENU_ADD_BOOKMARK );
+                    AddMenuItemL(
+                        *iMenuPane,
+                        EFindItemCmdAddToBookmark,
+                        index,
+                        0,
+                        tempBuf );
+                    index = EFindItemCmdAddToBookmark;
+                    }
+                }
+            else
+                {
+                AddMenuItemL(
+                    *iMenuPane,
+                    EFindItemCmdGoToRstp,
+                    ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ),
+                    0,
+                    tempBuf );
+                index = EFindItemCmdGoToRstp;
+
+                if ( !iIsContextMenu )
+                    {
+                    iCoeEnv->ReadResourceL(
+                        tempBuf, R_FINDITEMMENU_ADD_TO_GALLERY );
+                    AddMenuItemL(
+                        *iMenuPane,
+                        EFindItemCmdAddToGallery,
+                        index,
+                        0,
+                        tempBuf );
+                    index = EFindItemCmdAddToGallery;
+                    }
+                }
+            break;
+            }
+        case CItemFinder::EEmailAddress:
+            {
+            // Checks VoIP profile count and local variation
+            if ( iIsContextMenu && iFindItemVoIPExtension->VoIPProfilesExistL() )
+                {
+                //Call
+                iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL );
+                AddMenuItemL(
+                    *iMenuPane,
+                    EFindItemCmdCall,
+                    EFindItemContextMenuPlaceHolder,
+                    0,
+                    tempBuf );
+                index = EFindItemCmdCall; // Replaces the call ui menu when email
+                                          // field is selected.
+                }
+
+            // Write
+            if( iEmailOverSmsFeatureSupported || iMMSFeatureSupported ||
+                iEmailUiFeatureSupported ) // Sometimes submenu can be empty.
+                {
                 iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_MESSAGE_SUB );
                 AddMenuItemL(
                     *iMenuPane,
                     EFindItemSubMenuSend,
-                    index,
-                   0,//R_FINDITEM_NUMBER_MESSAGE_SUBMENU,
+                    ( ( iIsContextMenu &&
+                        !iFindItemVoIPExtension->VoIPProfilesExistL() ) ?
+                            EFindItemContextMenuPlaceHolder : index ),
+                    0,//R_FINDITEM_EMAIL_MESSAGE_SUBMENU,
                     tempBuf );
                 index = EFindItemSubMenuSend;
-    
-                break;
                 }
-            case CItemFinder::EUrlAddress:
-                {
-                iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_GOTO_URL );
-    
-                // check if not rstp    
-                if ( iAutomaticFind->CurrentItemExt().iItemDescriptor->FindF( KRtspUrlAddress ) == KErrNotFound )
-                    {
-                    AddMenuItemL(
-                        *iMenuPane,
-                        EFindItemCmdGoToUrl,
-                        ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ),
-                        0,
-                        tempBuf);
-                    index = EFindItemCmdGoToUrl;
-    
-                    if ( !iIsContextMenu )
-                        {
-                        // Add bookmark
-                        iCoeEnv->ReadResourceL(
-                            tempBuf, R_FINDITEMMENU_ADD_BOOKMARK );
-                        AddMenuItemL(
-                            *iMenuPane,
-                            EFindItemCmdAddToBookmark,
-                            index,
-                            0,
-                            tempBuf );
-                        index = EFindItemCmdAddToBookmark;
-                        }
-                    }
-                else
-                    {
-                    AddMenuItemL(
-                        *iMenuPane,
-                        EFindItemCmdGoToRstp,
-                        ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ),
-                        0,
-                        tempBuf );
-                    index = EFindItemCmdGoToRstp;
-    
-                    if ( !iIsContextMenu )
-                        {
-                        iCoeEnv->ReadResourceL(
-                            tempBuf, R_FINDITEMMENU_ADD_TO_GALLERY );
-                        AddMenuItemL(
-                            *iMenuPane,
-                            EFindItemCmdAddToGallery,
-                            index,
-                            0,
-                            tempBuf );
-                        index = EFindItemCmdAddToGallery;
-                        }
-                    }
-                break;
-                }
-            case CItemFinder::EEmailAddress:
-                {
-                // Checks VoIP profile count and local variation
-                if ( iIsContextMenu && iFindItemVoIPExtension->VoIPProfilesExistL() )
-                    {
-                    //Call
-                    iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_CALL );
-                    AddMenuItemL(
-                        *iMenuPane,
-                        EFindItemCmdCall,
-                        EFindItemContextMenuPlaceHolder,
-                        0,
-                        tempBuf );
-                    index = EFindItemCmdCall; // Replaces the call ui menu when email
-                                              // field is selected.
-                    }
-    
-                // Write
-                if( iEmailOverSmsFeatureSupported || iMMSFeatureSupported ||
-                    iEmailUiFeatureSupported ) // Sometimes submenu can be empty.
-                    {
-                    iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_MESSAGE_SUB );
-                    AddMenuItemL(
-                        *iMenuPane,
-                        EFindItemSubMenuSend,
-                        ( ( iIsContextMenu &&
-                            !iFindItemVoIPExtension->VoIPProfilesExistL() ) ?
-                                EFindItemContextMenuPlaceHolder : index ),
-                        0,//R_FINDITEM_EMAIL_MESSAGE_SUBMENU,
-                        tempBuf );
-                    index = EFindItemSubMenuSend;
-                    }
-                break;
-                }
-            case CItemFinder::EUriScheme:
-                {
-                // Use
-                iCoeEnv->ReadResourceL( tempBuf, R_QTN_OPTIONS_SCHEME_USE );
-                AddMenuItemL(
-                    *iMenuPane,
-                    EFindItemCmdUse,
-                    ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ),
-                    0,
-                    tempBuf );
-                index = EFindItemCmdUse;
-                break;
-                }
-            default:
-                {
-                // Something else, probably nothing selected or new type which we
-                // don't support.
-                break;
-                }
+            break;
+            }
+        case CItemFinder::EUriScheme:
+            {
+            // Use
+            iCoeEnv->ReadResourceL( tempBuf, R_QTN_OPTIONS_SCHEME_USE );
+            AddMenuItemL(
+                *iMenuPane,
+                EFindItemCmdUse,
+                ( iIsContextMenu ? EFindItemContextMenuPlaceHolder : index ),
+                0,
+                tempBuf );
+            index = EFindItemCmdUse;
+            break;
+            }
+        default:
+            {
+            // Something else, probably nothing selected or new type which we
+            // don't support.
+            break;
             }
         }
-    
     // Call
-    if ( HasSelection() && (
+    if (
         ( itemType == CItemFinder::ENoneSelected ) &&
         (
             (
@@ -752,7 +733,7 @@
         ||
             ( itemType == CItemFinder::EEmailAddress &&
             iFindItemVoIPExtension->VoIPProfilesExistL() &&
-            !iIsContextMenu ) )
+            !iIsContextMenu )
         )
         {
 #ifdef RD_VOIP_REL_2_2
@@ -842,10 +823,10 @@
               CleanupStack::PopAndDestroy( ); 
               }
 
-        if( HasSelection() && ( (!iAutomaticFind || len != 0) && 
+        if( (!iAutomaticFind || len != 0) && 
             highlight &&        
             ( itemType != CItemFinder::ENoneSelected || 
-            iSenderHighlighted ) ) )
+            iSenderHighlighted ) )
             {
             iCoeEnv->ReadResourceL( tempBuf, R_FINDITEMMENU_COPY );
             AddMenuItemL(
@@ -860,14 +841,14 @@
         }
 
      // Add to contacts
-     if ( HasSelection() && ( ( itemType != CItemFinder::EUriScheme ) &&
+     if ( ( itemType != CItemFinder::EUriScheme ) &&
         !( itemType == CItemFinder::EUrlAddress &&
         iIsContextMenu ) &&
         ( ( ( ( !iIsSenderKnown &&
         iSenderDescriptor->Length() ) ||
         iCallbackNumber ) &&
         itemType == CItemFinder::ENoneSelected ) ||
-        itemType != CItemFinder::ENoneSelected ) ) )
+        itemType != CItemFinder::ENoneSelected ) )
         {
         AddMenuItemL(
             *iMenuPane,
@@ -1699,16 +1680,11 @@
     {       
     HBufC* item = 0;
     TInt len = 0;
-    if ( iAutomaticFind && iAutomaticFind->CurrentSelection().Length() > 0 )
+    if ( iAutomaticFind && iAutomaticFind->CurrentItemExt().iItemType != CItemFinder::ENoneSelected )
         {
         item = iAutomaticFind->CurrentSelection().AllocLC();                        
         len = item->Length();
         }
-    else if ( iAutomaticFind && iAutomaticFind->CurrentItemExt().iItemDescriptor )
-        {
-        item = iAutomaticFind->CurrentItemExt().iItemDescriptor->AllocLC();
-        len = item->Length();
-        }
     else if( iSenderHighlighted )
         {
         item = iSenderDisplayText->AllocLC();