commonuis/CommonUi/src/FindItemMenu.cpp
changeset 30 56e9a0aaad89
parent 22 75713bee6484
child 49 31c16e0c5e3e
equal deleted inserted replaced
26:62ef28f7b435 30:56e9a0aaad89
    32 #include <CMessageData.h> // for CMessageData
    32 #include <CMessageData.h> // for CMessageData
    33 
    33 
    34 #include <commonphoneparser.h> // Phonenumber parser
    34 #include <commonphoneparser.h> // Phonenumber parser
    35 #include <SendUiConsts.h> // Mtm uids
    35 #include <SendUiConsts.h> // Mtm uids
    36 
    36 
    37 #include <FavouritesLimits.h> // KFavouritesMaxUrl
       
    38 #include <FavouritesItem.h> // for CBookmarkItem
       
    39 
       
    40 #include <FavouritesDb.h>
       
    41 
       
    42 #include <apgcli.h> // RApaLsSession for WMLBrowser launch
    37 #include <apgcli.h> // RApaLsSession for WMLBrowser launch
    43 #include <apgtask.h>
    38 #include <apgtask.h>
    44 
    39 
    45 #ifndef RD_VIRTUAL_PHONEBOOK
    40 #ifndef RD_VIRTUAL_PHONEBOOK
    46 #include <CPbkContactEngine.h> // Phonebook Engine
    41 #include <CPbkContactEngine.h> // Phonebook Engine
    60 
    55 
    61 #include <centralrepository.h>
    56 #include <centralrepository.h>
    62 #include <CommonUiInternalCRKeys.h>
    57 #include <CommonUiInternalCRKeys.h>
    63 
    58 
    64 #include <AiwCommon.hrh>
    59 #include <AiwCommon.hrh>
    65 #include <SchemeHandler.h>
       
    66 
    60 
    67 // Callback query
    61 // Callback query
    68 #include <aknlists.h>
    62 #include <aknlists.h>
    69 #include <aknPopup.h>
    63 #include <aknPopup.h>
    70 #include <StringLoader.h>
    64 #include <StringLoader.h>
   223     delete iCommonUiRepositoryWatcher;
   217     delete iCommonUiRepositoryWatcher;
   224     delete iCommonUiRepository;
   218     delete iCommonUiRepository;
   225 
   219 
   226 
   220 
   227     delete iCallbackNumber;
   221     delete iCallbackNumber;
   228     delete iSchemeHandler;
       
   229 
   222 
   230     delete iDialData;
   223     delete iDialData;
   231 
   224 
   232     delete iSenderDisplayText;
   225     delete iSenderDisplayText;
   233     }
   226     }
   956            break;
   949            break;
   957            }
   950            }
   958 
   951 
   959         case EFindItemCmdGoToUrl:
   952         case EFindItemCmdGoToUrl:
   960             {
   953             {
   961             LaunchGenericUriL();
   954             
   962             break;
   955             break;
   963             }
   956             }
   964         case EFindItemCmdGoToRstp:
   957         case EFindItemCmdGoToRstp:
   965             {
   958             {
   966             LaunchGenericUriL();
   959             
   967             break;
   960             break;
   968             }
   961             }
   969 
   962 
   970         case EFindItemCmdAddToBookmark:
   963         case EFindItemCmdAddToBookmark:
   971             {
   964             {
  1013             break;
  1006             break;
  1014             }
  1007             }
  1015 
  1008 
  1016         case EFindItemCmdUse:
  1009         case EFindItemCmdUse:
  1017             {
  1010             {
  1018             LaunchGenericUriL();
       
  1019             break;
  1011             break;
  1020             }
  1012             }
  1021 
  1013 
  1022         case EFindItemCmdCopy:
  1014         case EFindItemCmdCopy:
  1023             {
  1015             {
  1172     // Scheme handler can handle this
  1164     // Scheme handler can handle this
  1173    }
  1165    }
  1174 
  1166 
  1175 void CFindItemMenu::AddToBookmarkL()
  1167 void CFindItemMenu::AddToBookmarkL()
  1176     {
  1168     {
  1177     // Create an item
       
  1178     CFavouritesItem* item = CFavouritesItem::NewLC();
       
  1179     item->SetParentFolder( KFavouritesRootUid );
       
  1180     item->SetType( CFavouritesItem::EItem );
       
  1181     // Read default name from resources
  1169     // Read default name from resources
  1182     RConeResourceLoader ldr( *iCoeEnv );
  1170     RConeResourceLoader ldr( *iCoeEnv );
  1183 
  1171 
  1184     TFileName dialogResource( KDialogResourceName );
  1172     TFileName dialogResource( KDialogResourceName );
  1185 
  1173 
  1197     CAknTextQueryDialog* dlg = CAknTextQueryDialog::NewL( retName );
  1185     CAknTextQueryDialog* dlg = CAknTextQueryDialog::NewL( retName );
  1198     dlg->SetMaxLength( KMaxBookmarkNameLength );
  1186     dlg->SetMaxLength( KMaxBookmarkNameLength );
  1199     if ( !dlg->ExecuteLD( R_FINDITEM_BOOKMARK_QUERY_DIALOG ) )
  1187     if ( !dlg->ExecuteLD( R_FINDITEM_BOOKMARK_QUERY_DIALOG ) )
  1200         {
  1188         {
  1201         // User press cancel - do not add bookmark
  1189         // User press cancel - do not add bookmark
  1202         CleanupStack::PopAndDestroy( 3 ); // item, defaultName, resourceLoader
  1190         CleanupStack::PopAndDestroy( 2 ); // defaultName, resourceLoader
  1203         return;
  1191         return;
  1204         }
  1192         }
  1205 
       
  1206     item->SetNameL( retName );            
       
  1207     item->SetUrlL( iAutomaticFind->CurrentItemExt().iItemDescriptor->Des() );
       
  1208 
       
  1209     RFavouritesSession sess;
       
  1210     RFavouritesDb db;
       
  1211 
       
  1212     User::LeaveIfError( sess.Connect() );
       
  1213     CleanupClosePushL<RFavouritesSession>( sess );
       
  1214     User::LeaveIfError( db.Open( sess, KBrowserBookmarks ) );
       
  1215     CleanupClosePushL<RFavouritesDb>( db );
       
  1216 
       
  1217     // add item
       
  1218     db.Add( *item, ETrue );
       
  1219     // Close the database.
       
  1220     db.Close();
       
  1221 
  1193 
  1222     HBufC* msgBuffer = iCoeEnv->AllocReadResourceLC( R_FINDITEM_BOOKMARK_SAVED );
  1194     HBufC* msgBuffer = iCoeEnv->AllocReadResourceLC( R_FINDITEM_BOOKMARK_SAVED );
  1223     CAknConfirmationNote* note = new (ELeave)CAknConfirmationNote( ETrue );
  1195     CAknConfirmationNote* note = new (ELeave)CAknConfirmationNote( ETrue );
  1224     note->ExecuteLD( *msgBuffer );
  1196     note->ExecuteLD( *msgBuffer );
  1225 
  1197 
  1226     CleanupStack::PopAndDestroy( 6 ); // item, db, sess, resourceLoader,
  1198     CleanupStack::PopAndDestroy( 3 ); // resourceLoader,
  1227                                       // defaultName, msgBuffer
  1199                                       // defaultName, msgBuffer
  1228     }
  1200     }
  1229 
  1201 
  1230 void CFindItemMenu::CreateContactCardL( TInt aCommandId )
  1202 void CFindItemMenu::CreateContactCardL( TInt aCommandId )
  1231     {
  1203     {
  1531     return ETrue;
  1503     return ETrue;
  1532     }
  1504     }
  1533 
  1505 
  1534 void CFindItemMenu::LaunchGenericUriL()
  1506 void CFindItemMenu::LaunchGenericUriL()
  1535     {
  1507     {
  1536     if ( iSchemeHandler )
  1508 	
  1537         {
       
  1538         delete iSchemeHandler;
       
  1539         iSchemeHandler = 0;
       
  1540         }    
       
  1541     iSchemeHandler = CSchemeHandler::NewL( iAutomaticFind->CurrentItemExt().iItemDescriptor->Des() );
       
  1542     if ( iAutomaticFind->CurrentItemExt().iItemDescriptor->FindF( KRtspUrlAddress ) != KErrNotFound )
       
  1543         {
       
  1544         iSchemeHandler->HandleUrlEmbeddedL();
       
  1545         }
       
  1546     else
       
  1547         {
       
  1548         iSchemeHandler->HandleUrlStandaloneL();
       
  1549         }
       
  1550     }
  1509     }
  1551 
  1510 
  1552 EXPORT_C void CFindItemMenu::SetCallbackNumber( const TDesC& aPhoneNumber )
  1511 EXPORT_C void CFindItemMenu::SetCallbackNumber( const TDesC& aPhoneNumber )
  1553     {
  1512     {
  1554     delete iCallbackNumber;
  1513     delete iCallbackNumber;