meetingrequest/mrgui/src/cesmrcontactmenuurlhandler.cpp
branchRCL_3
changeset 8 e1b6206813b4
parent 1 12c456ceeff2
equal deleted inserted replaced
4:e7aa27f58ae1 8:e1b6206813b4
    30 //</cmail>
    30 //</cmail>
    31 #include <eikmenup.h>
    31 #include <eikmenup.h>
    32 #include <coemain.h>
    32 #include <coemain.h>
    33 #include <gulicon.h>
    33 #include <gulicon.h>
    34 #include <AknsUtils.h>
    34 #include <AknsUtils.h>
    35 #include <FavouritesDb.h>
    35 #include <favouritesdb.h>
    36 #include <apgtask.h>
    36 #include <apgtask.h>
    37 #include <apgcli.h>
    37 #include <apgcli.h>
    38 #include <AknQueryDialog.h>
    38 #include <AknQueryDialog.h>
    39 #include <aknnotewrappers.h>
    39 #include <aknnotewrappers.h>
    40 #include <FeatMgr.h>
    40 #include <featmgr.h>
    41 // for intranet application opening
    41 // for intranet application opening
    42 #include <AiwServiceHandler.h>
    42 #include <AiwServiceHandler.h>
    43 #include <data_caging_path_literals.hrh>
    43 #include <data_caging_path_literals.hrh>
    44 #include <publicruntimeids.hrh>
    44 #include <publicruntimeids.hrh>
    45 
    45 
    47 // DEBUG
    47 // DEBUG
    48 #include "emailtrace.h"
    48 #include "emailtrace.h"
    49 
    49 
    50 /// Unnamed namespace for local definitions
    50 /// Unnamed namespace for local definitions
    51 namespace // codescanner::namespace
    51 namespace // codescanner::namespace
    52 	{
    52     {
    53 // URL actionmenu uids
    53 // URL actionmenu uids
    54 const TUid KUidOpenInBrowser =
    54 const TUid KUidOpenInBrowser =
    55     {
    55     {
    56     1
    56     1
    57     };
    57     };
    85 // ---------------------------------------------------------------------------
    85 // ---------------------------------------------------------------------------
    86 // CESMRContactMenuUrlHandler::CESMRContactMenuUrlHandler
    86 // CESMRContactMenuUrlHandler::CESMRContactMenuUrlHandler
    87 // ---------------------------------------------------------------------------
    87 // ---------------------------------------------------------------------------
    88 //
    88 //
    89 CESMRContactMenuUrlHandler::CESMRContactMenuUrlHandler( 
    89 CESMRContactMenuUrlHandler::CESMRContactMenuUrlHandler( 
    90 		CFscContactActionMenu& aContactActionMenu ) :
    90         CFscContactActionMenu& aContactActionMenu ) :
    91     iContactActionMenu( aContactActionMenu )
    91     iContactActionMenu( aContactActionMenu )
    92     {
    92     {
    93     FUNC_LOG;
    93     FUNC_LOG;
    94     // Do nothing
    94     // Do nothing
    95     }
    95     }
   101 CESMRContactMenuUrlHandler* CESMRContactMenuUrlHandler::NewL(
   101 CESMRContactMenuUrlHandler* CESMRContactMenuUrlHandler::NewL(
   102         CFscContactActionMenu& aContactActionMenu )
   102         CFscContactActionMenu& aContactActionMenu )
   103     {
   103     {
   104     FUNC_LOG;
   104     FUNC_LOG;
   105     CESMRContactMenuUrlHandler* self = 
   105     CESMRContactMenuUrlHandler* self = 
   106 		new (ELeave) CESMRContactMenuUrlHandler( aContactActionMenu );
   106         new (ELeave) CESMRContactMenuUrlHandler( aContactActionMenu );
   107     return self;
   107     return self;
   108     }
   108     }
   109 
   109 
   110 // ---------------------------------------------------------------------------
   110 // ---------------------------------------------------------------------------
   111 // CESMRContactMenuUrlHandler::~CESMRContactMenuUrlHandler( )
   111 // CESMRContactMenuUrlHandler::~CESMRContactMenuUrlHandler( )
   145 // ---------------------------------------------------------------------------
   145 // ---------------------------------------------------------------------------
   146 // CESMRContactMenuUrlHandler::CreateMenuItemL
   146 // CESMRContactMenuUrlHandler::CreateMenuItemL
   147 // ---------------------------------------------------------------------------
   147 // ---------------------------------------------------------------------------
   148 //
   148 //
   149 void CESMRContactMenuUrlHandler::CreateMenuItemL( 
   149 void CESMRContactMenuUrlHandler::CreateMenuItemL( 
   150 		TInt aResourceId, 
   150         TInt aResourceId, 
   151 		TUid aCommandUid )
   151         TUid aCommandUid )
   152     {
   152     {
   153     FUNC_LOG;
   153     FUNC_LOG;
   154     CGulIcon* itemIcon = CreateIconL(aCommandUid);
   154     CGulIcon* itemIcon = CreateIconL(aCommandUid);
   155     //ownership transferred
   155     //ownership transferred
   156     CleanupStack::PushL( itemIcon );
   156     CleanupStack::PushL( itemIcon );
   157     iIconArray.AppendL( itemIcon );
   157     iIconArray.AppendL( itemIcon );
   158     CleanupStack::Pop( itemIcon );
   158     CleanupStack::Pop( itemIcon );
   159 
   159 
   160     HBufC* text = CCoeEnv::Static()->AllocReadResourceLC( aResourceId );
   160     HBufC* text = CCoeEnv::Static()->AllocReadResourceLC( aResourceId );
   161     CFscContactActionMenuItem* newItem = 
   161     CFscContactActionMenuItem* newItem = 
   162 		iContactActionMenu.Model().NewMenuItemL( *text,
   162         iContactActionMenu.Model().NewMenuItemL( *text,
   163 												 itemIcon,
   163                                                  itemIcon,
   164                                                  1,
   164                                                  1,
   165                                                  EFalse,
   165                                                  EFalse,
   166                                                  aCommandUid );
   166                                                  aCommandUid );
   167 
   167 
   168     CleanupStack::PopAndDestroy( text );
   168     CleanupStack::PopAndDestroy( text );
   224 // ---------------------------------------------------------------------------
   224 // ---------------------------------------------------------------------------
   225 // CESMRContactMenuUrlHandler::InitOptionsMenuL
   225 // CESMRContactMenuUrlHandler::InitOptionsMenuL
   226 // ---------------------------------------------------------------------------
   226 // ---------------------------------------------------------------------------
   227 //
   227 //
   228 void CESMRContactMenuUrlHandler::InitOptionsMenuL( 
   228 void CESMRContactMenuUrlHandler::InitOptionsMenuL( 
   229 		CEikMenuPane* aActionMenuPane )
   229         CEikMenuPane* aActionMenuPane )
   230     {
   230     {
   231     FUNC_LOG;
   231     FUNC_LOG;
   232     CEikMenuPaneItem::SData data;
   232     CEikMenuPaneItem::SData data;
   233     data.iFlags = 0;
   233     data.iFlags = 0;
   234     data.iCascadeId = 0;
   234     data.iCascadeId = 0;
   237     TInt command = EESMRCmdActionMenuFirst;
   237     TInt command = EESMRCmdActionMenuFirst;
   238 
   238 
   239     data.iCommandId = command;
   239     data.iCommandId = command;
   240     command++;//dynamic command ids
   240     command++;//dynamic command ids
   241     CCoeEnv::Static()->ReadResourceL( 
   241     CCoeEnv::Static()->ReadResourceL( 
   242     		data.iText, R_QTN_MEET_REQ_VIEWER_OPTIONS_OPEN_IN_WEB );
   242             data.iText, R_QTN_MEET_REQ_VIEWER_OPTIONS_OPEN_IN_WEB );
   243     aActionMenuPane->AddMenuItemL( data );
   243     aActionMenuPane->AddMenuItemL( data );
   244 
   244 
   245     if(IsServiceAvailableL(R_INTRANET_AIW_INTEREST) &&
   245     if(IsServiceAvailableL(R_INTRANET_AIW_INTEREST) &&
   246        FeatureManager::FeatureSupported( KFeatureIdFfIntranetBrowsing ) )
   246        FeatureManager::FeatureSupported( KFeatureIdFfIntranetBrowsing ) )
   247         {
   247         {
   248         data.iCommandId = command;
   248         data.iCommandId = command;
   249         command++;//dynamic command ids
   249         command++;//dynamic command ids
   250         CCoeEnv::Static()->ReadResourceL( 
   250         CCoeEnv::Static()->ReadResourceL( 
   251         		data.iText, R_QTN_MEET_REQ_FSOPTIONS_OPEN_IN_INTRA );
   251                 data.iText, R_QTN_MEET_REQ_FSOPTIONS_OPEN_IN_INTRA );
   252         aActionMenuPane->AddMenuItemL( data );
   252         aActionMenuPane->AddMenuItemL( data );
   253         }
   253         }
   254 
   254 
   255     data.iCommandId = command;
   255     data.iCommandId = command;
   256     CCoeEnv::Static()->ReadResourceL( 
   256     CCoeEnv::Static()->ReadResourceL( 
   257     		data.iText, R_QTN_MEET_REQ_VIEWER_OPTIONS_BOOKMARK );
   257             data.iText, R_QTN_MEET_REQ_VIEWER_OPTIONS_BOOKMARK );
   258     aActionMenuPane->AddMenuItemL( data );
   258     aActionMenuPane->AddMenuItemL( data );
   259     }
   259     }
   260 
   260 
   261 // ---------------------------------------------------------------------------
   261 // ---------------------------------------------------------------------------
   262 // CESMRContactMenuUrlHandler::IsServiceAvailableL
   262 // CESMRContactMenuUrlHandler::IsServiceAvailableL
   324     iIconArray.ResetAndDestroy();
   324     iIconArray.ResetAndDestroy();
   325     iContactActionMenu.Model().RemoveAll();
   325     iContactActionMenu.Model().RemoveAll();
   326 
   326 
   327     //fill list
   327     //fill list
   328     CreateMenuItemL( R_QTN_MEET_REQ_VIEWER_OPTIONS_OPEN_IN_WEB, 
   328     CreateMenuItemL( R_QTN_MEET_REQ_VIEWER_OPTIONS_OPEN_IN_WEB, 
   329 					 KUidOpenInBrowser);
   329                      KUidOpenInBrowser);
   330 
   330 
   331     if(IsServiceAvailableL(R_INTRANET_AIW_INTEREST) &&
   331     if(IsServiceAvailableL(R_INTRANET_AIW_INTEREST) &&
   332        FeatureManager::FeatureSupported( KFeatureIdFfIntranetBrowsing ) )
   332        FeatureManager::FeatureSupported( KFeatureIdFfIntranetBrowsing ) )
   333         {
   333         {
   334         CreateMenuItemL( R_QTN_MEET_REQ_FSOPTIONS_OPEN_IN_INTRA, 
   334         CreateMenuItemL( R_QTN_MEET_REQ_FSOPTIONS_OPEN_IN_INTRA, 
   335 						 KUidOpenInIntranet);
   335                          KUidOpenInIntranet);
   336         }
   336         }
   337 
   337 
   338     CreateMenuItemL(R_QTN_MEET_REQ_VIEWER_OPTIONS_BOOKMARK, KUidBookmark);
   338     CreateMenuItemL(R_QTN_MEET_REQ_VIEWER_OPTIONS_BOOKMARK, KUidBookmark);
   339 
   339 
   340     //show list
   340     //show list
   373         CleanupClosePushL( appArcSession );
   373         CleanupClosePushL( appArcSession );
   374         // connect to AppArc server
   374         // connect to AppArc server
   375         User::LeaveIfError( appArcSession.Connect() ); 
   375         User::LeaveIfError( appArcSession.Connect() ); 
   376         TThreadId id;
   376         TThreadId id;
   377         User::LeaveIfError( appArcSession.StartDocument ( 
   377         User::LeaveIfError( appArcSession.StartDocument ( 
   378         		*param, KUidBrowser, id ) );
   378                 *param, KUidBrowser, id ) );
   379         CleanupStack::PopAndDestroy( &appArcSession );
   379         CleanupStack::PopAndDestroy( &appArcSession );
   380         }
   380         }
   381     CleanupStack::PopAndDestroy( param );
   381     CleanupStack::PopAndDestroy( param );
   382     }
   382     }
   383 
   383 
   394     TAiwGenericParam inParam(EGenericParamURL, TAiwVariant(*eightBitUrl));
   394     TAiwGenericParam inParam(EGenericParamURL, TAiwVariant(*eightBitUrl));
   395     CAiwGenericParamList& inParamList = ServiceHandlerL().InParamListL();
   395     CAiwGenericParamList& inParamList = ServiceHandlerL().InParamListL();
   396     inParamList.AppendL( inParam );
   396     inParamList.AppendL( inParam );
   397 
   397 
   398     ServiceHandlerL().ExecuteServiceCmdL( 
   398     ServiceHandlerL().ExecuteServiceCmdL( 
   399 							KAiwCmdView, 
   399                             KAiwCmdView, 
   400 							inParamList, 
   400                             inParamList, 
   401 							ServiceHandlerL().OutParamListL() );
   401                             ServiceHandlerL().OutParamListL() );
   402     CleanupStack::PopAndDestroy( eightBitUrl );
   402     CleanupStack::PopAndDestroy( eightBitUrl );
   403     }
   403     }
   404 
   404 
   405 // ---------------------------------------------------------------------------
   405 // ---------------------------------------------------------------------------
   406 // CESMRContactMenuUrlHandler::BookmarkUrlL( )
   406 // CESMRContactMenuUrlHandler::BookmarkUrlL( )
   414     item->SetParentFolder( KFavouritesRootUid );
   414     item->SetParentFolder( KFavouritesRootUid );
   415     item->SetType( CFavouritesItem::EItem );
   415     item->SetType( CFavouritesItem::EItem );
   416 
   416 
   417     // Read default name from resources
   417     // Read default name from resources
   418     HBufC* defaultName =CCoeEnv::Static()->AllocReadResourceLC ( 
   418     HBufC* defaultName =CCoeEnv::Static()->AllocReadResourceLC ( 
   419 									R_QTN_CALENDAR_DEFAULT_BOOKMARK );
   419                                     R_QTN_CALENDAR_DEFAULT_BOOKMARK );
   420 
   420 
   421     TBuf<KMaxBookmarkNameLength> retName;
   421     TBuf<KMaxBookmarkNameLength> retName;
   422     retName.Copy( defaultName->Des() );
   422     retName.Copy( defaultName->Des() );
   423 
   423 
   424     // Query bookmark name from user
   424     // Query bookmark name from user
   428         {
   428         {
   429         // User press cancel - do not add bookmark
   429         // User press cancel - do not add bookmark
   430         CleanupStack::PopAndDestroy ( 2, item ); // item, defaultName
   430         CleanupStack::PopAndDestroy ( 2, item ); // item, defaultName
   431         }
   431         }
   432     else
   432     else
   433     	{
   433         {
   434     	item->SetNameL( retName );
   434         item->SetNameL( retName );
   435 		item->SetUrlL( *iUrl );
   435         item->SetUrlL( *iUrl );
   436 
   436 
   437 		RFavouritesSession sess; // codescanner::resourcenotoncleanupstack
   437         RFavouritesSession sess; // codescanner::resourcenotoncleanupstack
   438 		RFavouritesDb db; // codescanner::resourcenotoncleanupstack
   438         RFavouritesDb db; // codescanner::resourcenotoncleanupstack
   439 
   439 
   440 		User::LeaveIfError( sess.Connect() );
   440         User::LeaveIfError( sess.Connect() );
   441 		CleanupClosePushL<RFavouritesSession> ( sess );
   441         CleanupClosePushL<RFavouritesSession> ( sess );
   442 		User::LeaveIfError( db.Open( sess, KBrowserBookmarks ) );
   442         User::LeaveIfError( db.Open( sess, KBrowserBookmarks ) );
   443 		CleanupClosePushL<RFavouritesDb> ( db );
   443         CleanupClosePushL<RFavouritesDb> ( db );
   444 
   444 
   445 		// add item
   445         // add item
   446 		db.Add( *item, ETrue );
   446         db.Add( *item, ETrue );
   447 		// Close the database.
   447         // Close the database.
   448 		db.Close();
   448         db.Close();
   449 
   449 
   450 		HBufC * msgBuffer = CCoeEnv::Static()->AllocReadResourceLC( 
   450         HBufC * msgBuffer = CCoeEnv::Static()->AllocReadResourceLC( 
   451 										R_QTN_CALENDAR_BOOKMARK_SAVED );
   451                                         R_QTN_CALENDAR_BOOKMARK_SAVED );
   452 		CAknConfirmationNote* note = new(ELeave)CAknConfirmationNote( ETrue );
   452         CAknConfirmationNote* note = new(ELeave)CAknConfirmationNote( ETrue );
   453 		note->ExecuteLD ( *msgBuffer );
   453         note->ExecuteLD ( *msgBuffer );
   454 
   454 
   455 		// item, db, sess, defaultName, msgBuffer
   455         // item, db, sess, defaultName, msgBuffer
   456 		CleanupStack::PopAndDestroy ( 5, item ); // codescanner::magicnumbers
   456         CleanupStack::PopAndDestroy ( 5, item ); // codescanner::magicnumbers
   457     	}
   457         }
   458     }
   458     }
   459 
   459 
   460 // ---------------------------------------------------------------------------
   460 // ---------------------------------------------------------------------------
   461 // CESMRContactMenuUrlHandler::ServiceHandlerL
   461 // CESMRContactMenuUrlHandler::ServiceHandlerL
   462 // ---------------------------------------------------------------------------
   462 // ---------------------------------------------------------------------------